From 192f798d08ecc615649cf0d244b263d77b43264a Mon Sep 17 00:00:00 2001
From: David Cussans <David.Cussans@bristol.ac.uk>
Date: Thu, 15 Feb 2018 17:14:08 +0000
Subject: [PATCH] Moved all existing HDL files to "legacy" subdirectory.
 Created directories in ipbb "standard" layout

---
 .../base_fw/sim/firmware/cfg/lib_mappings.tcl |    9 +
 .../sim/firmware/cfg/pc051a_infra_sim.dep     |    5 +
 .../base_fw/sim/firmware/cfg/pc051a_sim.dep   |    9 +
 .../sim/firmware/hdl/pc051a_infra_sim.vhd     |   99 +
 .../sim/firmware/hdl/top_pc051a_sim.vhd       |   50 +
 .../firmware/cfg/enclustra_ax3_pm3_a35.dep    |   11 +
 .../firmware/cfg/enclustra_ax3_pm3_a50.dep    |   11 +
 .../firmware/cfg/enclustra_ax3_pm3_infra.dep  |    5 +
 .../synth/firmware/cfg/settings_v7.tcl        |    5 +
 .../firmware/hdl/enclustra_ax3_pm3_infra.vhd  |  132 +
 .../firmware/hdl/top_enclustra_ax3_pm3.vhd    |   83 +
 .../synth/firmware/ucf/enclustra_ax3_pm3.tcl  |   55 +
 components/tlu/hdl/GPL_doxygen_header.vhdl    |   77 +
 components/tlu/hdl/GPP_rtl.vhd                |  312 +
 components/tlu/hdl/IPBusInterface_rtl.vhd     |  261 +
 components/tlu/hdl/Reg_2clks.vhd              |   56 +
 components/tlu/hdl/T0_Shutter_Iface_rtl.vhd   |  114 +
 components/tlu/hdl/TPx3Logic_rtl.vhd          |  177 +
 components/tlu/hdl/TPx3_iface_rtl.vhd         |  160 +
 components/tlu/hdl/coincidenceLogic_rtl.vhd   |  158 +
 .../tlu/hdl/coincidenceLogic_rtl_BKP.vhd      |  108 +
 components/tlu/hdl/counterDown.vhd            |   50 +
 components/tlu/hdl/counterWithReset_rtl.vhd   |   84 +
 .../tlu/hdl/dut/DUTInterface_AIDA_rtl.vhd     |  152 +
 .../tlu/hdl/dut/DUTInterface_EUDET_rtl.vhd    |  277 +
 components/tlu/hdl/dut/DUTInterfaces_rtl.vhd  |  358 +
 .../tlu/hdl/dut/DUTInterfaces_rtl_BKP.vhd     |  328 +
 components/tlu/hdl/dut/DUTs_outputs.vhd       |   62 +
 .../tlu/hdl/enclustra_ax3_pm3_infra.vhd       |  131 +
 components/tlu/hdl/eth_7s_gmii.vhd            |  183 +
 components/tlu/hdl/eth_7s_rgmii.vhd           |  184 +
 components/tlu/hdl/eventBuffer_rtl.vhd        |  167 +
 components/tlu/hdl/eventFormatter_rtl.vhd     |  385 +
 components/tlu/hdl/fmcTLU_pkg.vhd             |   27 +
 components/tlu/hdl/fmcTLU_pkg_body.vhd        |   13 +
 components/tlu/hdl/handshakes_rtl.vhd         |  248 +
 components/tlu/hdl/ipbus_addr_decode.vhd      |   50 +
 .../tlu/hdl/ipbus_decode_ipbus_example.vhd    |   69 +
 components/tlu/hdl/ipbus_decode_tlu.vhd       |   73 +
 components/tlu/hdl/ipbus_example.vhd          |  174 +
 components/tlu/hdl/ipbus_fabric_sel.vhd       |   61 +
 components/tlu/hdl/ipbus_slaves.vhd           |  170 +
 components/tlu/hdl/ipbus_ver.vhd              |   46 +
 components/tlu/hdl/led_stretcher.vhd          |   74 +
 components/tlu/hdl/logic_clocks_rtl.vhd       |  344 +
 .../tlu/hdl/pulseClockDomainCrossing_rtl.vhd  |  100 +
 components/tlu/hdl/registerCounter_rtl.vhd    |  113 +
 components/tlu/hdl/serdes_1_to_n_SDR.vhd      |  235 +
 components/tlu/hdl/single_pulse_rtl.vhd       |   93 +
 components/tlu/hdl/stretchPulse_rtl.vhd       |   92 +
 .../tlu/hdl/sychronizedIPBusCtrlRegV_rtl.vhd  |   83 +
 components/tlu/hdl/sync_reg.vhd               |   50 +
 .../tlu/hdl/synchronizeRegisters_fifo.vhd     |  110 +
 .../tlu/hdl/synchronizeRegisters_rtl.vhd      |  103 +
 components/tlu/hdl/test_inToOut.vhd           |  106 +
 components/tlu/hdl/test_inputToOutput.vhd     |   53 +
 components/tlu/hdl/test_toggleLines.vhd       |   70 +
 components/tlu/hdl/testbench_clocks.vhd       |   43 +
 components/tlu/hdl/testbench_myclocks.vhd     |   99 +
 components/tlu/hdl/top_enclustra_ax3_pm3.vhd  |  173 +
 components/tlu/hdl/top_enclustra_tlu_v1e.vhd  |  758 ++
 .../tlu/hdl/trigger/IODELAYCal_FSM_rtl.vhd    |  102 +
 .../tlu/hdl/trigger/arrivalTimeLUT_rtl.vhd    |  187 +
 .../tlu/hdl/trigger/dualSERDES_1to4_rtl.vhd   |  421 +
 .../hdl/trigger/triggerInputs_newTLU_rtl.vhd  |  291 +
 .../trigger/triggerInputs_newTLU_rtl_BKP.vhd  |  335 +
 .../triggerInputs_newTLU_rtl_fastClock.vhd    |  301 +
 .../tlu/hdl/trigger/triggerInputs_rtl.vhd     |  338 +
 .../tlu/hdl/trigger/triggerLogic_rtl.vhd      |  355 +
 .../constraints/EUDET_dummy_constr.xdc        |  108 +
 legacy/EUDETdummy/constraints/I2C_constr.xdc  |   40 +
 .../constraints/enclustra_ax3_pm3.tcl         |   52 +
 legacy/EUDETdummy/hdl/Dummy_DUT.vhd           |  235 +
 legacy/EUDETdummy/hdl/Dummy_DUT_Toplevel.vhd  |  627 ++
 legacy/EUDETdummy/hdl/Register_Controller.vhd |  601 ++
 legacy/EUDETdummy/hdl/TLU_Address_Map.vhd     |  144 +
 .../EUDETdummy/hdl/TLU_address_map_v0-2.vhdl  |  263 +
 .../hdl/Trigger_Number_Error_Checker.vhd      |  116 +
 legacy/EUDETdummy/hdl/ZestSC1_Host.vhd        |  652 ++
 legacy/EUDETdummy/hdl/ZestSC1_Interfaces.vhd  |  329 +
 legacy/EUDETdummy/hdl/clocks_7s_extphy_se.vhd |  151 +
 legacy/EUDETdummy/hdl/delay.vhd               |   52 +
 legacy/EUDETdummy/hdl/delay_word.vhd          |   43 +
 legacy/EUDETdummy/hdl/dtype.vhdl              |   34 +
 .../hdl/enclustra_ax3_pm3_infra.vhd           |  131 +
 legacy/EUDETdummy/hdl/eth_7s_rgmii.vhd        |  184 +
 legacy/EUDETdummy/hdl/fmcTLU_pkg.vhd          |   27 +
 legacy/EUDETdummy/hdl/fmcTLU_pkg_body.vhd     |   13 +
 .../hdl/i2c/i2c_master_bit_ctrl.vhd           |  492 +
 .../hdl/i2c/i2c_master_byte_ctrl.vhd          |  286 +
 .../hdl/i2c/i2c_master_registers.vhd          |  196 +
 legacy/EUDETdummy/hdl/i2c/i2c_master_rtl.vhd  |   97 +
 legacy/EUDETdummy/hdl/i2c/i2c_master_top.vhd  |  344 +
 legacy/EUDETdummy/hdl/ipbus_addr_decode.vhd   |   50 +
 .../hdl/ipbus_decode_ipbus_example.vhd        |   69 +
 legacy/EUDETdummy/hdl/ipbus_decode_tlu.vhd    |   73 +
 legacy/EUDETdummy/hdl/ipbus_example.vhd       |  174 +
 legacy/EUDETdummy/hdl/ipbus_fabric_sel.vhd    |   61 +
 legacy/EUDETdummy/hdl/ipbus_slaves.vhd        |  170 +
 legacy/EUDETdummy/hdl/ipbus_ver.vhd           |   46 +
 legacy/EUDETdummy/hdl/led_stretcher.vhd       |   74 +
 legacy/EUDETdummy/hdl/logic_clocks_rtl.vhd    |  344 +
 legacy/EUDETdummy/hdl/top_EUDET_dummy.vhd     |  783 ++
 legacy/EUDETdummy/scripts/EUDETdummy.py       |  587 ++
 .../EUDETdummy/scripts/EUDETdummyaddrmap.xml  |   96 +
 .../scripts/EUDETdummyconnection.xml          |    6 +
 .../EUDETdummy/scripts/EUDummy_testscript.py  |  155 +
 legacy/EUDETdummy/scripts/initTLU.py          |  184 +
 legacy/EUDETdummy/scripts/startDUMMY.sh       |   24 +
 legacy/EUDETdummy/scripts/startEUDETdummy.py  |   72 +
 legacy/EUDETdummy/scripts/testTLU_script.py   |   79 +
 .../TLU_v1c/common/DUTInterface_AIDA_rtl.vhd  |  149 +
 .../TLU_v1c/common/DUTInterface_EUDET_rtl.vhd |  275 +
 legacy/TLU_v1c/common/DUTInterfaces_rtl.vhd   |  353 +
 .../TLU_v1c/common/DUTInterfaces_rtl_BKP.vhd  |  328 +
 legacy/TLU_v1c/common/DUTs_outputs.vhd        |   62 +
 legacy/TLU_v1c/common/GPL_doxygen_header.vhdl |   77 +
 legacy/TLU_v1c/common/GPP_rtl.vhd             |  312 +
 legacy/TLU_v1c/common/IODELAYCal_FSM_rtl.vhd  |  102 +
 legacy/TLU_v1c/common/IPBusInterface_rtl.vhd  |  261 +
 legacy/TLU_v1c/common/Reg_2clks.vhd           |   56 +
 .../TLU_v1c/common/T0_Shutter_Iface_rtl.vhd   |  114 +
 legacy/TLU_v1c/common/TPx3Logic_rtl.vhd       |  177 +
 legacy/TLU_v1c/common/TPx3_iface_rtl.vhd      |  160 +
 legacy/TLU_v1c/common/arrivalTimeLUT_rtl.vhd  |  187 +
 legacy/TLU_v1c/common/ax3_pm3_mTLUvC.xdc      |  377 +
 legacy/TLU_v1c/common/clock_sim.vhd           |   47 +
 legacy/TLU_v1c/common/clocks_7s_extphy.vhd    |  148 +
 legacy/TLU_v1c/common/clocks_7s_extphy_se.vhd |  151 +
 .../common/clocks_7s_extphy_se_MOD.vhd        |  158 +
 legacy/TLU_v1c/common/clocks_s6_extphy.vhd    |  137 +
 .../TLU_v1c/common/coincidenceLogic_rtl.vhd   |  158 +
 .../common/coincidenceLogic_rtl_BKP.vhd       |  108 +
 legacy/TLU_v1c/common/counterDown.vhd         |   50 +
 .../TLU_v1c/common/counterWithReset_rtl.vhd   |   84 +
 legacy/TLU_v1c/common/dualSERDES_1to4_rtl.vhd |  421 +
 .../common/enclustra_ax3_pm3_infra.vhd        |  131 +
 legacy/TLU_v1c/common/eth_7s_gmii.vhd         |  183 +
 legacy/TLU_v1c/common/eth_7s_rgmii.vhd        |  184 +
 legacy/TLU_v1c/common/eventBuffer_rtl.vhd     |  167 +
 legacy/TLU_v1c/common/eventFormatter_rtl.vhd  |  385 +
 legacy/TLU_v1c/common/fmcTLU_pkg.vhd          |   27 +
 legacy/TLU_v1c/common/fmcTLU_pkg_body.vhd     |   13 +
 legacy/TLU_v1c/common/handshakes_rtl.vhd      |  248 +
 legacy/TLU_v1c/common/i2c_master_rtl.vhd      |   97 +
 legacy/TLU_v1c/common/ipbus_addr_decode.vhd   |   50 +
 .../common/ipbus_decode_ipbus_example.vhd     |   69 +
 legacy/TLU_v1c/common/ipbus_decode_tlu.vhd    |   73 +
 legacy/TLU_v1c/common/ipbus_example.vhd       |  174 +
 legacy/TLU_v1c/common/ipbus_fabric_sel.vhd    |   61 +
 legacy/TLU_v1c/common/ipbus_slaves.vhd        |  170 +
 legacy/TLU_v1c/common/ipbus_ver.vhd           |   46 +
 legacy/TLU_v1c/common/led_stretcher.vhd       |   74 +
 legacy/TLU_v1c/common/logic_clocks_rtl.vhd    |  344 +
 .../common/pulseClockDomainCrossing_rtl.vhd   |  100 +
 legacy/TLU_v1c/common/registerCounter_rtl.vhd |  113 +
 legacy/TLU_v1c/common/serdes_1_to_n_SDR.vhd   |  235 +
 legacy/TLU_v1c/common/single_pulse_rtl.vhd    |   93 +
 legacy/TLU_v1c/common/stretchPulse_rtl.vhd    |   92 +
 .../common/sychronizedIPBusCtrlRegV_rtl.vhd   |   83 +
 legacy/TLU_v1c/common/sync_reg.vhd            |   50 +
 .../common/synchronizeRegisters_fifo.vhd      |  110 +
 .../common/synchronizeRegisters_rtl.vhd       |  103 +
 legacy/TLU_v1c/common/test_inToOut.vhd        |  106 +
 legacy/TLU_v1c/common/test_inputToOutput.vhd  |   53 +
 legacy/TLU_v1c/common/test_toggleLines.vhd    |   70 +
 legacy/TLU_v1c/common/testbench_clocks.vhd    |   43 +
 legacy/TLU_v1c/common/testbench_myclocks.vhd  |   99 +
 .../TLU_v1c/common/top_enclustra_ax3_pm3.vhd  |  173 +
 legacy/TLU_v1c/common/top_enclustra_tlu.vhd   |  752 ++
 .../common/triggerInputs_newTLU_rtl.vhd       |  291 +
 .../common/triggerInputs_newTLU_rtl_BKP.vhd   |  335 +
 .../triggerInputs_newTLU_rtl_fastClock.vhd    |  301 +
 legacy/TLU_v1c/common/triggerInputs_rtl.vhd   |  338 +
 legacy/TLU_v1c/common/triggerLogic_rtl.vhd    |  355 +
 legacy/TLU_v1c/scripts/500ns_23ns.txt         | 8048 +++++++++++++++++
 legacy/TLU_v1c/scripts/500ns_24ns.txt         |  665 ++
 legacy/TLU_v1c/scripts/AIDA_testScript.py     |  183 +
 legacy/TLU_v1c/scripts/TLU.py                 |  748 ++
 legacy/TLU_v1c/scripts/TLUaddrmap.xml         |  105 +
 legacy/TLU_v1c/scripts/TLUconnection.xml      |    6 +
 legacy/TLU_v1c/scripts/initTLU.py             |  184 +
 legacy/TLU_v1c/scripts/output.csv             |    0
 legacy/TLU_v1c/scripts/output_check.csv       | 2727 ++++++
 legacy/TLU_v1c/scripts/startTLU.sh            |   25 +
 legacy/TLU_v1c/scripts/startTLU_v6.py         |  232 +
 legacy/TLU_v1c/scripts/startTLU_v8.py         |   72 +
 legacy/TLU_v1c/scripts/test.py                |   34 +
 legacy/TLU_v1c/scripts/testTLU_script.py      |   79 +
 legacy/TLU_v1c/scripts/test_T0.py             |   92 +
 legacy/TLU_v1c/test/clock_divider_s6.v        |   47 +
 legacy/TLU_v1c/test/clocks_s6_extphy.vhd      |  110 +
 legacy/TLU_v1c/test/comb_generator_rtl.vhd    |   90 +
 legacy/TLU_v1c/test/dtype_fd.vhdl             |   38 +
 legacy/TLU_v1c/test/dtype_fdpe.vhdl           |   43 +
 legacy/TLU_v1c/test/dtype_fdr.vhdl            |   75 +
 legacy/TLU_v1c/test/dtype_fds.vhdl            |   76 +
 .../test/fmc-tlu_sp601_pulse_shaper.vhdl      |   65 +
 legacy/TLU_v1c/test/fmc_tlu_pin_test.vhd      |  216 +
 legacy/TLU_v1c/test/fmc_tlu_sp601_tb.vhdl     |  160 +
 legacy/TLU_v1c/test/fmc_tlu_top_sp601.vhd     |  164 +
 legacy/TLU_v1c/test/i2c_chipscope_debug.cdc   |   41 +
 legacy/TLU_v1c/test/ipbus_addr_decode.vhd     |   46 +
 legacy/TLU_v1c/test/ipbus_ver.vhd             |   41 +
 legacy/TLU_v1c/test/pulse_shaper.vhdl         |  200 +
 .../test/pulse_shaper_async_dtypes.vhdl       |   92 +
 legacy/TLU_v1c/test/pulse_shaper_scorer.vhdl  |   67 +
 legacy/TLU_v1c/test/slaves.vhd                |  199 +
 legacy/TLU_v1c/test/sp601_FMC_mTLU.ucf        |  176 +
 legacy/TLU_v1c/test/sp601_FMC_mTLU_v1a.ucf    |  279 +
 legacy/TLU_v1c/test/sp605_FMC_mTLU.ucf        |  164 +
 legacy/TLU_v1c/test/sp605_FMC_mTLU_v1a.ucf    |  164 +
 legacy/TLU_v1c/top_extphy_struct.vhd          |  668 ++
 legacy/TLU_v1e/.svn/entries                   |   28 +
 legacy/TLU_v1e/constraints/I2C_constr.xdc     |   26 +
 .../TLU_v1e/constraints/TLU_enclustra_v1e.xdc |  109 +
 .../TLU_v1e/constraints/enclustra_ax3_pm3.tcl |   52 +
 .../documents/FMC_TLU_TOPLEVEL_E.SCH.1.pdf    |  Bin 0 -> 1476373 bytes
 .../TLU_v1e/documents/TLU_v1E_TestPoints.pdf  |  Bin 0 -> 358019 bytes
 legacy/TLU_v1e/hdl/GPL_doxygen_header.vhdl    |   77 +
 legacy/TLU_v1e/hdl/GPP_rtl.vhd                |  312 +
 legacy/TLU_v1e/hdl/IPBusInterface_rtl.vhd     |  261 +
 legacy/TLU_v1e/hdl/Reg_2clks.vhd              |   56 +
 legacy/TLU_v1e/hdl/T0_Shutter_Iface_rtl.vhd   |  114 +
 legacy/TLU_v1e/hdl/TPx3Logic_rtl.vhd          |  177 +
 legacy/TLU_v1e/hdl/TPx3_iface_rtl.vhd         |  160 +
 legacy/TLU_v1e/hdl/ax3_pm3_mTLUvC.xdc         |  377 +
 legacy/TLU_v1e/hdl/clocks/clock_sim.vhd       |   47 +
 .../TLU_v1e/hdl/clocks/clocks_7s_extphy.vhd   |  148 +
 .../hdl/clocks/clocks_7s_extphy_se.vhd        |  151 +
 .../hdl/clocks/clocks_7s_extphy_se_MOD.vhd    |  158 +
 .../TLU_v1e/hdl/clocks/clocks_s6_extphy.vhd   |  137 +
 legacy/TLU_v1e/hdl/coincidenceLogic_rtl.vhd   |  158 +
 .../TLU_v1e/hdl/coincidenceLogic_rtl_BKP.vhd  |  108 +
 legacy/TLU_v1e/hdl/counterDown.vhd            |   50 +
 legacy/TLU_v1e/hdl/counterWithReset_rtl.vhd   |   84 +
 .../TLU_v1e/hdl/dut/DUTInterface_AIDA_rtl.vhd |  152 +
 .../hdl/dut/DUTInterface_EUDET_rtl.vhd        |  277 +
 legacy/TLU_v1e/hdl/dut/DUTInterfaces_rtl.vhd  |  358 +
 .../TLU_v1e/hdl/dut/DUTInterfaces_rtl_BKP.vhd |  328 +
 legacy/TLU_v1e/hdl/dut/DUTs_outputs.vhd       |   62 +
 .../TLU_v1e/hdl/enclustra_ax3_pm3_infra.vhd   |  131 +
 legacy/TLU_v1e/hdl/eth_7s_gmii.vhd            |  183 +
 legacy/TLU_v1e/hdl/eth_7s_rgmii.vhd           |  184 +
 legacy/TLU_v1e/hdl/eventBuffer_rtl.vhd        |  167 +
 legacy/TLU_v1e/hdl/eventFormatter_rtl.vhd     |  385 +
 legacy/TLU_v1e/hdl/fmcTLU_pkg.vhd             |   27 +
 legacy/TLU_v1e/hdl/fmcTLU_pkg_body.vhd        |   13 +
 legacy/TLU_v1e/hdl/handshakes_rtl.vhd         |  248 +
 .../TLU_v1e/hdl/i2c/i2c_master_bit_ctrl.vhd   |  492 +
 .../TLU_v1e/hdl/i2c/i2c_master_byte_ctrl.vhd  |  286 +
 .../TLU_v1e/hdl/i2c/i2c_master_registers.vhd  |  196 +
 legacy/TLU_v1e/hdl/i2c/i2c_master_rtl.vhd     |   97 +
 legacy/TLU_v1e/hdl/i2c/i2c_master_top.vhd     |  344 +
 legacy/TLU_v1e/hdl/ipbus_addr_decode.vhd      |   50 +
 .../hdl/ipbus_decode_ipbus_example.vhd        |   69 +
 legacy/TLU_v1e/hdl/ipbus_decode_tlu.vhd       |   73 +
 legacy/TLU_v1e/hdl/ipbus_example.vhd          |  174 +
 legacy/TLU_v1e/hdl/ipbus_fabric_sel.vhd       |   61 +
 legacy/TLU_v1e/hdl/ipbus_slaves.vhd           |  170 +
 legacy/TLU_v1e/hdl/ipbus_ver.vhd              |   46 +
 legacy/TLU_v1e/hdl/led_stretcher.vhd          |   74 +
 legacy/TLU_v1e/hdl/logic_clocks_rtl.vhd       |  344 +
 .../hdl/pulseClockDomainCrossing_rtl.vhd      |  100 +
 legacy/TLU_v1e/hdl/registerCounter_rtl.vhd    |  113 +
 legacy/TLU_v1e/hdl/serdes_1_to_n_SDR.vhd      |  235 +
 legacy/TLU_v1e/hdl/single_pulse_rtl.vhd       |   93 +
 legacy/TLU_v1e/hdl/stretchPulse_rtl.vhd       |   92 +
 .../hdl/sychronizedIPBusCtrlRegV_rtl.vhd      |   83 +
 legacy/TLU_v1e/hdl/sync_reg.vhd               |   50 +
 .../TLU_v1e/hdl/synchronizeRegisters_fifo.vhd |  110 +
 .../TLU_v1e/hdl/synchronizeRegisters_rtl.vhd  |  103 +
 legacy/TLU_v1e/hdl/test_inToOut.vhd           |  106 +
 legacy/TLU_v1e/hdl/test_inputToOutput.vhd     |   53 +
 legacy/TLU_v1e/hdl/test_toggleLines.vhd       |   70 +
 legacy/TLU_v1e/hdl/testbench_clocks.vhd       |   43 +
 legacy/TLU_v1e/hdl/testbench_myclocks.vhd     |   99 +
 legacy/TLU_v1e/hdl/top_enclustra_ax3_pm3.vhd  |  173 +
 legacy/TLU_v1e/hdl/top_enclustra_tlu_v1e.vhd  |  758 ++
 .../hdl/trigger/IODELAYCal_FSM_rtl.vhd        |  102 +
 .../hdl/trigger/arrivalTimeLUT_rtl.vhd        |  187 +
 .../hdl/trigger/dualSERDES_1to4_rtl.vhd       |  421 +
 .../hdl/trigger/triggerInputs_newTLU_rtl.vhd  |  291 +
 .../trigger/triggerInputs_newTLU_rtl_BKP.vhd  |  335 +
 .../triggerInputs_newTLU_rtl_fastClock.vhd    |  301 +
 .../TLU_v1e/hdl/trigger/triggerInputs_rtl.vhd |  338 +
 .../TLU_v1e/hdl/trigger/triggerLogic_rtl.vhd  |  355 +
 legacy/TLU_v1e/scripts/AIDA_testScript.py     |  183 +
 legacy/TLU_v1e/scripts/TLU_v1e.py             |  898 ++
 legacy/TLU_v1e/scripts/TLUaddrmap.xml         |  105 +
 legacy/TLU_v1e/scripts/TLUconnection.xml      |    6 +
 .../datafiles/20171020_122611_tluData_1.root  |  Bin 0 -> 6068 bytes
 legacy/TLU_v1e/scripts/initTLU.py             |  184 +
 legacy/TLU_v1e/scripts/localClock.txt         |  394 +
 legacy/TLU_v1e/scripts/localConf.conf         |   86 +
 legacy/TLU_v1e/scripts/localIni.ini           |   43 +
 legacy/TLU_v1e/scripts/startTLU_v1e.py        |  235 +
 legacy/TLU_v1e/scripts/startTLU_v1e.sh        |   25 +
 legacy/TLU_v1e/scripts/startTLU_v6.py         |  232 +
 legacy/TLU_v1e/scripts/test.py                |   34 +
 legacy/TLU_v1e/scripts/testTLU_script.py      |   79 +
 legacy/TLU_v1e/scripts/test_T0.py             |   92 +
 legacy/miniTLU/.ftpconfig                     |   20 +
 legacy/miniTLU/FmcTluI2c.py                   |  132 +
 legacy/miniTLU/I2CuHal.py                     | 1000 ++
 legacy/miniTLU/I2cBusProperties.py            |  122 +
 legacy/miniTLU/RawI2cAccess.py                |  261 +
 legacy/miniTLU/aida_mini_tlu_addr_map.txt     |   72 +
 legacy/miniTLU/connection.xml                 |    6 +
 legacy/miniTLU/initTLU.py                     |  184 +
 legacy/miniTLU/miniTLU.py                     |  462 +
 legacy/miniTLU/miniTLU.xml                    |   87 +
 legacy/miniTLU/miniTLU_old.xml                |   74 +
 legacy/miniTLU/startTLU_v6.py                 |  232 +
 legacy/miniTLU/startTLU_v6.sh                 |   24 +
 legacy/miniTLU/startTLU_v8.py                 |   70 +
 legacy/miniTLU/testTLU_script.py              |   79 +
 legacy/miniTLU/test_T0.py                     |   92 +
 legacy/packages/AD5665R.py                    |   45 +
 legacy/packages/E24AA025E48T.py               |   20 +
 legacy/packages/FmcTluI2c.py                  |  132 +
 legacy/packages/I2CuHal.py                    |  281 +
 legacy/packages/I2cBusProperties.py           |  122 +
 legacy/packages/PCA9539PW.py                  |   94 +
 legacy/packages/RawI2cAccess.py               |  261 +
 legacy/packages/TLU_v1e/output.csv            |    0
 legacy/packages/TLUaddrmap_BKP.xml            |  105 +
 legacy/packages/TLUconnection_BKP.xml         |    6 +
 legacy/packages/si5345.py                     |  140 +
 329 files changed, 64857 insertions(+)
 create mode 100644 boards/enclustra_ax3_pm3/base_fw/sim/firmware/cfg/lib_mappings.tcl
 create mode 100644 boards/enclustra_ax3_pm3/base_fw/sim/firmware/cfg/pc051a_infra_sim.dep
 create mode 100644 boards/enclustra_ax3_pm3/base_fw/sim/firmware/cfg/pc051a_sim.dep
 create mode 100644 boards/enclustra_ax3_pm3/base_fw/sim/firmware/hdl/pc051a_infra_sim.vhd
 create mode 100644 boards/enclustra_ax3_pm3/base_fw/sim/firmware/hdl/top_pc051a_sim.vhd
 create mode 100644 boards/enclustra_ax3_pm3/base_fw/synth/firmware/cfg/enclustra_ax3_pm3_a35.dep
 create mode 100644 boards/enclustra_ax3_pm3/base_fw/synth/firmware/cfg/enclustra_ax3_pm3_a50.dep
 create mode 100644 boards/enclustra_ax3_pm3/base_fw/synth/firmware/cfg/enclustra_ax3_pm3_infra.dep
 create mode 100644 boards/enclustra_ax3_pm3/base_fw/synth/firmware/cfg/settings_v7.tcl
 create mode 100644 boards/enclustra_ax3_pm3/base_fw/synth/firmware/hdl/enclustra_ax3_pm3_infra.vhd
 create mode 100644 boards/enclustra_ax3_pm3/base_fw/synth/firmware/hdl/top_enclustra_ax3_pm3.vhd
 create mode 100644 boards/enclustra_ax3_pm3/base_fw/synth/firmware/ucf/enclustra_ax3_pm3.tcl
 create mode 100644 components/tlu/hdl/GPL_doxygen_header.vhdl
 create mode 100644 components/tlu/hdl/GPP_rtl.vhd
 create mode 100644 components/tlu/hdl/IPBusInterface_rtl.vhd
 create mode 100644 components/tlu/hdl/Reg_2clks.vhd
 create mode 100644 components/tlu/hdl/T0_Shutter_Iface_rtl.vhd
 create mode 100644 components/tlu/hdl/TPx3Logic_rtl.vhd
 create mode 100644 components/tlu/hdl/TPx3_iface_rtl.vhd
 create mode 100644 components/tlu/hdl/coincidenceLogic_rtl.vhd
 create mode 100644 components/tlu/hdl/coincidenceLogic_rtl_BKP.vhd
 create mode 100644 components/tlu/hdl/counterDown.vhd
 create mode 100644 components/tlu/hdl/counterWithReset_rtl.vhd
 create mode 100644 components/tlu/hdl/dut/DUTInterface_AIDA_rtl.vhd
 create mode 100644 components/tlu/hdl/dut/DUTInterface_EUDET_rtl.vhd
 create mode 100644 components/tlu/hdl/dut/DUTInterfaces_rtl.vhd
 create mode 100644 components/tlu/hdl/dut/DUTInterfaces_rtl_BKP.vhd
 create mode 100644 components/tlu/hdl/dut/DUTs_outputs.vhd
 create mode 100644 components/tlu/hdl/enclustra_ax3_pm3_infra.vhd
 create mode 100644 components/tlu/hdl/eth_7s_gmii.vhd
 create mode 100644 components/tlu/hdl/eth_7s_rgmii.vhd
 create mode 100644 components/tlu/hdl/eventBuffer_rtl.vhd
 create mode 100644 components/tlu/hdl/eventFormatter_rtl.vhd
 create mode 100644 components/tlu/hdl/fmcTLU_pkg.vhd
 create mode 100644 components/tlu/hdl/fmcTLU_pkg_body.vhd
 create mode 100644 components/tlu/hdl/handshakes_rtl.vhd
 create mode 100644 components/tlu/hdl/ipbus_addr_decode.vhd
 create mode 100644 components/tlu/hdl/ipbus_decode_ipbus_example.vhd
 create mode 100644 components/tlu/hdl/ipbus_decode_tlu.vhd
 create mode 100644 components/tlu/hdl/ipbus_example.vhd
 create mode 100644 components/tlu/hdl/ipbus_fabric_sel.vhd
 create mode 100644 components/tlu/hdl/ipbus_slaves.vhd
 create mode 100644 components/tlu/hdl/ipbus_ver.vhd
 create mode 100644 components/tlu/hdl/led_stretcher.vhd
 create mode 100644 components/tlu/hdl/logic_clocks_rtl.vhd
 create mode 100644 components/tlu/hdl/pulseClockDomainCrossing_rtl.vhd
 create mode 100644 components/tlu/hdl/registerCounter_rtl.vhd
 create mode 100644 components/tlu/hdl/serdes_1_to_n_SDR.vhd
 create mode 100644 components/tlu/hdl/single_pulse_rtl.vhd
 create mode 100644 components/tlu/hdl/stretchPulse_rtl.vhd
 create mode 100644 components/tlu/hdl/sychronizedIPBusCtrlRegV_rtl.vhd
 create mode 100644 components/tlu/hdl/sync_reg.vhd
 create mode 100644 components/tlu/hdl/synchronizeRegisters_fifo.vhd
 create mode 100644 components/tlu/hdl/synchronizeRegisters_rtl.vhd
 create mode 100644 components/tlu/hdl/test_inToOut.vhd
 create mode 100644 components/tlu/hdl/test_inputToOutput.vhd
 create mode 100644 components/tlu/hdl/test_toggleLines.vhd
 create mode 100644 components/tlu/hdl/testbench_clocks.vhd
 create mode 100644 components/tlu/hdl/testbench_myclocks.vhd
 create mode 100644 components/tlu/hdl/top_enclustra_ax3_pm3.vhd
 create mode 100644 components/tlu/hdl/top_enclustra_tlu_v1e.vhd
 create mode 100644 components/tlu/hdl/trigger/IODELAYCal_FSM_rtl.vhd
 create mode 100644 components/tlu/hdl/trigger/arrivalTimeLUT_rtl.vhd
 create mode 100644 components/tlu/hdl/trigger/dualSERDES_1to4_rtl.vhd
 create mode 100644 components/tlu/hdl/trigger/triggerInputs_newTLU_rtl.vhd
 create mode 100644 components/tlu/hdl/trigger/triggerInputs_newTLU_rtl_BKP.vhd
 create mode 100644 components/tlu/hdl/trigger/triggerInputs_newTLU_rtl_fastClock.vhd
 create mode 100644 components/tlu/hdl/trigger/triggerInputs_rtl.vhd
 create mode 100644 components/tlu/hdl/trigger/triggerLogic_rtl.vhd
 create mode 100644 legacy/EUDETdummy/constraints/EUDET_dummy_constr.xdc
 create mode 100644 legacy/EUDETdummy/constraints/I2C_constr.xdc
 create mode 100644 legacy/EUDETdummy/constraints/enclustra_ax3_pm3.tcl
 create mode 100644 legacy/EUDETdummy/hdl/Dummy_DUT.vhd
 create mode 100755 legacy/EUDETdummy/hdl/Dummy_DUT_Toplevel.vhd
 create mode 100644 legacy/EUDETdummy/hdl/Register_Controller.vhd
 create mode 100644 legacy/EUDETdummy/hdl/TLU_Address_Map.vhd
 create mode 100644 legacy/EUDETdummy/hdl/TLU_address_map_v0-2.vhdl
 create mode 100755 legacy/EUDETdummy/hdl/Trigger_Number_Error_Checker.vhd
 create mode 100644 legacy/EUDETdummy/hdl/ZestSC1_Host.vhd
 create mode 100644 legacy/EUDETdummy/hdl/ZestSC1_Interfaces.vhd
 create mode 100644 legacy/EUDETdummy/hdl/clocks_7s_extphy_se.vhd
 create mode 100644 legacy/EUDETdummy/hdl/delay.vhd
 create mode 100644 legacy/EUDETdummy/hdl/delay_word.vhd
 create mode 100644 legacy/EUDETdummy/hdl/dtype.vhdl
 create mode 100644 legacy/EUDETdummy/hdl/enclustra_ax3_pm3_infra.vhd
 create mode 100644 legacy/EUDETdummy/hdl/eth_7s_rgmii.vhd
 create mode 100644 legacy/EUDETdummy/hdl/fmcTLU_pkg.vhd
 create mode 100644 legacy/EUDETdummy/hdl/fmcTLU_pkg_body.vhd
 create mode 100644 legacy/EUDETdummy/hdl/i2c/i2c_master_bit_ctrl.vhd
 create mode 100644 legacy/EUDETdummy/hdl/i2c/i2c_master_byte_ctrl.vhd
 create mode 100644 legacy/EUDETdummy/hdl/i2c/i2c_master_registers.vhd
 create mode 100644 legacy/EUDETdummy/hdl/i2c/i2c_master_rtl.vhd
 create mode 100644 legacy/EUDETdummy/hdl/i2c/i2c_master_top.vhd
 create mode 100644 legacy/EUDETdummy/hdl/ipbus_addr_decode.vhd
 create mode 100644 legacy/EUDETdummy/hdl/ipbus_decode_ipbus_example.vhd
 create mode 100644 legacy/EUDETdummy/hdl/ipbus_decode_tlu.vhd
 create mode 100644 legacy/EUDETdummy/hdl/ipbus_example.vhd
 create mode 100644 legacy/EUDETdummy/hdl/ipbus_fabric_sel.vhd
 create mode 100644 legacy/EUDETdummy/hdl/ipbus_slaves.vhd
 create mode 100644 legacy/EUDETdummy/hdl/ipbus_ver.vhd
 create mode 100644 legacy/EUDETdummy/hdl/led_stretcher.vhd
 create mode 100644 legacy/EUDETdummy/hdl/logic_clocks_rtl.vhd
 create mode 100644 legacy/EUDETdummy/hdl/top_EUDET_dummy.vhd
 create mode 100644 legacy/EUDETdummy/scripts/EUDETdummy.py
 create mode 100644 legacy/EUDETdummy/scripts/EUDETdummyaddrmap.xml
 create mode 100644 legacy/EUDETdummy/scripts/EUDETdummyconnection.xml
 create mode 100644 legacy/EUDETdummy/scripts/EUDummy_testscript.py
 create mode 100644 legacy/EUDETdummy/scripts/initTLU.py
 create mode 100644 legacy/EUDETdummy/scripts/startDUMMY.sh
 create mode 100644 legacy/EUDETdummy/scripts/startEUDETdummy.py
 create mode 100644 legacy/EUDETdummy/scripts/testTLU_script.py
 create mode 100644 legacy/TLU_v1c/common/DUTInterface_AIDA_rtl.vhd
 create mode 100644 legacy/TLU_v1c/common/DUTInterface_EUDET_rtl.vhd
 create mode 100644 legacy/TLU_v1c/common/DUTInterfaces_rtl.vhd
 create mode 100644 legacy/TLU_v1c/common/DUTInterfaces_rtl_BKP.vhd
 create mode 100644 legacy/TLU_v1c/common/DUTs_outputs.vhd
 create mode 100644 legacy/TLU_v1c/common/GPL_doxygen_header.vhdl
 create mode 100644 legacy/TLU_v1c/common/GPP_rtl.vhd
 create mode 100644 legacy/TLU_v1c/common/IODELAYCal_FSM_rtl.vhd
 create mode 100644 legacy/TLU_v1c/common/IPBusInterface_rtl.vhd
 create mode 100644 legacy/TLU_v1c/common/Reg_2clks.vhd
 create mode 100644 legacy/TLU_v1c/common/T0_Shutter_Iface_rtl.vhd
 create mode 100644 legacy/TLU_v1c/common/TPx3Logic_rtl.vhd
 create mode 100644 legacy/TLU_v1c/common/TPx3_iface_rtl.vhd
 create mode 100644 legacy/TLU_v1c/common/arrivalTimeLUT_rtl.vhd
 create mode 100644 legacy/TLU_v1c/common/ax3_pm3_mTLUvC.xdc
 create mode 100644 legacy/TLU_v1c/common/clock_sim.vhd
 create mode 100644 legacy/TLU_v1c/common/clocks_7s_extphy.vhd
 create mode 100644 legacy/TLU_v1c/common/clocks_7s_extphy_se.vhd
 create mode 100644 legacy/TLU_v1c/common/clocks_7s_extphy_se_MOD.vhd
 create mode 100644 legacy/TLU_v1c/common/clocks_s6_extphy.vhd
 create mode 100644 legacy/TLU_v1c/common/coincidenceLogic_rtl.vhd
 create mode 100644 legacy/TLU_v1c/common/coincidenceLogic_rtl_BKP.vhd
 create mode 100644 legacy/TLU_v1c/common/counterDown.vhd
 create mode 100644 legacy/TLU_v1c/common/counterWithReset_rtl.vhd
 create mode 100644 legacy/TLU_v1c/common/dualSERDES_1to4_rtl.vhd
 create mode 100644 legacy/TLU_v1c/common/enclustra_ax3_pm3_infra.vhd
 create mode 100644 legacy/TLU_v1c/common/eth_7s_gmii.vhd
 create mode 100644 legacy/TLU_v1c/common/eth_7s_rgmii.vhd
 create mode 100644 legacy/TLU_v1c/common/eventBuffer_rtl.vhd
 create mode 100644 legacy/TLU_v1c/common/eventFormatter_rtl.vhd
 create mode 100644 legacy/TLU_v1c/common/fmcTLU_pkg.vhd
 create mode 100644 legacy/TLU_v1c/common/fmcTLU_pkg_body.vhd
 create mode 100644 legacy/TLU_v1c/common/handshakes_rtl.vhd
 create mode 100644 legacy/TLU_v1c/common/i2c_master_rtl.vhd
 create mode 100644 legacy/TLU_v1c/common/ipbus_addr_decode.vhd
 create mode 100644 legacy/TLU_v1c/common/ipbus_decode_ipbus_example.vhd
 create mode 100644 legacy/TLU_v1c/common/ipbus_decode_tlu.vhd
 create mode 100644 legacy/TLU_v1c/common/ipbus_example.vhd
 create mode 100644 legacy/TLU_v1c/common/ipbus_fabric_sel.vhd
 create mode 100644 legacy/TLU_v1c/common/ipbus_slaves.vhd
 create mode 100644 legacy/TLU_v1c/common/ipbus_ver.vhd
 create mode 100644 legacy/TLU_v1c/common/led_stretcher.vhd
 create mode 100644 legacy/TLU_v1c/common/logic_clocks_rtl.vhd
 create mode 100644 legacy/TLU_v1c/common/pulseClockDomainCrossing_rtl.vhd
 create mode 100644 legacy/TLU_v1c/common/registerCounter_rtl.vhd
 create mode 100644 legacy/TLU_v1c/common/serdes_1_to_n_SDR.vhd
 create mode 100644 legacy/TLU_v1c/common/single_pulse_rtl.vhd
 create mode 100644 legacy/TLU_v1c/common/stretchPulse_rtl.vhd
 create mode 100644 legacy/TLU_v1c/common/sychronizedIPBusCtrlRegV_rtl.vhd
 create mode 100644 legacy/TLU_v1c/common/sync_reg.vhd
 create mode 100644 legacy/TLU_v1c/common/synchronizeRegisters_fifo.vhd
 create mode 100644 legacy/TLU_v1c/common/synchronizeRegisters_rtl.vhd
 create mode 100644 legacy/TLU_v1c/common/test_inToOut.vhd
 create mode 100644 legacy/TLU_v1c/common/test_inputToOutput.vhd
 create mode 100644 legacy/TLU_v1c/common/test_toggleLines.vhd
 create mode 100644 legacy/TLU_v1c/common/testbench_clocks.vhd
 create mode 100644 legacy/TLU_v1c/common/testbench_myclocks.vhd
 create mode 100644 legacy/TLU_v1c/common/top_enclustra_ax3_pm3.vhd
 create mode 100644 legacy/TLU_v1c/common/top_enclustra_tlu.vhd
 create mode 100644 legacy/TLU_v1c/common/triggerInputs_newTLU_rtl.vhd
 create mode 100644 legacy/TLU_v1c/common/triggerInputs_newTLU_rtl_BKP.vhd
 create mode 100644 legacy/TLU_v1c/common/triggerInputs_newTLU_rtl_fastClock.vhd
 create mode 100644 legacy/TLU_v1c/common/triggerInputs_rtl.vhd
 create mode 100644 legacy/TLU_v1c/common/triggerLogic_rtl.vhd
 create mode 100644 legacy/TLU_v1c/scripts/500ns_23ns.txt
 create mode 100644 legacy/TLU_v1c/scripts/500ns_24ns.txt
 create mode 100644 legacy/TLU_v1c/scripts/AIDA_testScript.py
 create mode 100644 legacy/TLU_v1c/scripts/TLU.py
 create mode 100644 legacy/TLU_v1c/scripts/TLUaddrmap.xml
 create mode 100644 legacy/TLU_v1c/scripts/TLUconnection.xml
 create mode 100644 legacy/TLU_v1c/scripts/initTLU.py
 create mode 100644 legacy/TLU_v1c/scripts/output.csv
 create mode 100644 legacy/TLU_v1c/scripts/output_check.csv
 create mode 100755 legacy/TLU_v1c/scripts/startTLU.sh
 create mode 100644 legacy/TLU_v1c/scripts/startTLU_v6.py
 create mode 100644 legacy/TLU_v1c/scripts/startTLU_v8.py
 create mode 100644 legacy/TLU_v1c/scripts/test.py
 create mode 100644 legacy/TLU_v1c/scripts/testTLU_script.py
 create mode 100644 legacy/TLU_v1c/scripts/test_T0.py
 create mode 100644 legacy/TLU_v1c/test/clock_divider_s6.v
 create mode 100644 legacy/TLU_v1c/test/clocks_s6_extphy.vhd
 create mode 100644 legacy/TLU_v1c/test/comb_generator_rtl.vhd
 create mode 100644 legacy/TLU_v1c/test/dtype_fd.vhdl
 create mode 100644 legacy/TLU_v1c/test/dtype_fdpe.vhdl
 create mode 100644 legacy/TLU_v1c/test/dtype_fdr.vhdl
 create mode 100644 legacy/TLU_v1c/test/dtype_fds.vhdl
 create mode 100644 legacy/TLU_v1c/test/fmc-tlu_sp601_pulse_shaper.vhdl
 create mode 100644 legacy/TLU_v1c/test/fmc_tlu_pin_test.vhd
 create mode 100644 legacy/TLU_v1c/test/fmc_tlu_sp601_tb.vhdl
 create mode 100644 legacy/TLU_v1c/test/fmc_tlu_top_sp601.vhd
 create mode 100644 legacy/TLU_v1c/test/i2c_chipscope_debug.cdc
 create mode 100644 legacy/TLU_v1c/test/ipbus_addr_decode.vhd
 create mode 100644 legacy/TLU_v1c/test/ipbus_ver.vhd
 create mode 100644 legacy/TLU_v1c/test/pulse_shaper.vhdl
 create mode 100644 legacy/TLU_v1c/test/pulse_shaper_async_dtypes.vhdl
 create mode 100644 legacy/TLU_v1c/test/pulse_shaper_scorer.vhdl
 create mode 100644 legacy/TLU_v1c/test/slaves.vhd
 create mode 100644 legacy/TLU_v1c/test/sp601_FMC_mTLU.ucf
 create mode 100644 legacy/TLU_v1c/test/sp601_FMC_mTLU_v1a.ucf
 create mode 100644 legacy/TLU_v1c/test/sp605_FMC_mTLU.ucf
 create mode 100644 legacy/TLU_v1c/test/sp605_FMC_mTLU_v1a.ucf
 create mode 100644 legacy/TLU_v1c/top_extphy_struct.vhd
 create mode 100644 legacy/TLU_v1e/.svn/entries
 create mode 100644 legacy/TLU_v1e/constraints/I2C_constr.xdc
 create mode 100644 legacy/TLU_v1e/constraints/TLU_enclustra_v1e.xdc
 create mode 100644 legacy/TLU_v1e/constraints/enclustra_ax3_pm3.tcl
 create mode 100644 legacy/TLU_v1e/documents/FMC_TLU_TOPLEVEL_E.SCH.1.pdf
 create mode 100644 legacy/TLU_v1e/documents/TLU_v1E_TestPoints.pdf
 create mode 100644 legacy/TLU_v1e/hdl/GPL_doxygen_header.vhdl
 create mode 100644 legacy/TLU_v1e/hdl/GPP_rtl.vhd
 create mode 100644 legacy/TLU_v1e/hdl/IPBusInterface_rtl.vhd
 create mode 100644 legacy/TLU_v1e/hdl/Reg_2clks.vhd
 create mode 100644 legacy/TLU_v1e/hdl/T0_Shutter_Iface_rtl.vhd
 create mode 100644 legacy/TLU_v1e/hdl/TPx3Logic_rtl.vhd
 create mode 100644 legacy/TLU_v1e/hdl/TPx3_iface_rtl.vhd
 create mode 100644 legacy/TLU_v1e/hdl/ax3_pm3_mTLUvC.xdc
 create mode 100644 legacy/TLU_v1e/hdl/clocks/clock_sim.vhd
 create mode 100644 legacy/TLU_v1e/hdl/clocks/clocks_7s_extphy.vhd
 create mode 100644 legacy/TLU_v1e/hdl/clocks/clocks_7s_extphy_se.vhd
 create mode 100644 legacy/TLU_v1e/hdl/clocks/clocks_7s_extphy_se_MOD.vhd
 create mode 100644 legacy/TLU_v1e/hdl/clocks/clocks_s6_extphy.vhd
 create mode 100644 legacy/TLU_v1e/hdl/coincidenceLogic_rtl.vhd
 create mode 100644 legacy/TLU_v1e/hdl/coincidenceLogic_rtl_BKP.vhd
 create mode 100644 legacy/TLU_v1e/hdl/counterDown.vhd
 create mode 100644 legacy/TLU_v1e/hdl/counterWithReset_rtl.vhd
 create mode 100644 legacy/TLU_v1e/hdl/dut/DUTInterface_AIDA_rtl.vhd
 create mode 100644 legacy/TLU_v1e/hdl/dut/DUTInterface_EUDET_rtl.vhd
 create mode 100644 legacy/TLU_v1e/hdl/dut/DUTInterfaces_rtl.vhd
 create mode 100644 legacy/TLU_v1e/hdl/dut/DUTInterfaces_rtl_BKP.vhd
 create mode 100644 legacy/TLU_v1e/hdl/dut/DUTs_outputs.vhd
 create mode 100644 legacy/TLU_v1e/hdl/enclustra_ax3_pm3_infra.vhd
 create mode 100644 legacy/TLU_v1e/hdl/eth_7s_gmii.vhd
 create mode 100644 legacy/TLU_v1e/hdl/eth_7s_rgmii.vhd
 create mode 100644 legacy/TLU_v1e/hdl/eventBuffer_rtl.vhd
 create mode 100644 legacy/TLU_v1e/hdl/eventFormatter_rtl.vhd
 create mode 100644 legacy/TLU_v1e/hdl/fmcTLU_pkg.vhd
 create mode 100644 legacy/TLU_v1e/hdl/fmcTLU_pkg_body.vhd
 create mode 100644 legacy/TLU_v1e/hdl/handshakes_rtl.vhd
 create mode 100644 legacy/TLU_v1e/hdl/i2c/i2c_master_bit_ctrl.vhd
 create mode 100644 legacy/TLU_v1e/hdl/i2c/i2c_master_byte_ctrl.vhd
 create mode 100644 legacy/TLU_v1e/hdl/i2c/i2c_master_registers.vhd
 create mode 100644 legacy/TLU_v1e/hdl/i2c/i2c_master_rtl.vhd
 create mode 100644 legacy/TLU_v1e/hdl/i2c/i2c_master_top.vhd
 create mode 100644 legacy/TLU_v1e/hdl/ipbus_addr_decode.vhd
 create mode 100644 legacy/TLU_v1e/hdl/ipbus_decode_ipbus_example.vhd
 create mode 100644 legacy/TLU_v1e/hdl/ipbus_decode_tlu.vhd
 create mode 100644 legacy/TLU_v1e/hdl/ipbus_example.vhd
 create mode 100644 legacy/TLU_v1e/hdl/ipbus_fabric_sel.vhd
 create mode 100644 legacy/TLU_v1e/hdl/ipbus_slaves.vhd
 create mode 100644 legacy/TLU_v1e/hdl/ipbus_ver.vhd
 create mode 100644 legacy/TLU_v1e/hdl/led_stretcher.vhd
 create mode 100644 legacy/TLU_v1e/hdl/logic_clocks_rtl.vhd
 create mode 100644 legacy/TLU_v1e/hdl/pulseClockDomainCrossing_rtl.vhd
 create mode 100644 legacy/TLU_v1e/hdl/registerCounter_rtl.vhd
 create mode 100644 legacy/TLU_v1e/hdl/serdes_1_to_n_SDR.vhd
 create mode 100644 legacy/TLU_v1e/hdl/single_pulse_rtl.vhd
 create mode 100644 legacy/TLU_v1e/hdl/stretchPulse_rtl.vhd
 create mode 100644 legacy/TLU_v1e/hdl/sychronizedIPBusCtrlRegV_rtl.vhd
 create mode 100644 legacy/TLU_v1e/hdl/sync_reg.vhd
 create mode 100644 legacy/TLU_v1e/hdl/synchronizeRegisters_fifo.vhd
 create mode 100644 legacy/TLU_v1e/hdl/synchronizeRegisters_rtl.vhd
 create mode 100644 legacy/TLU_v1e/hdl/test_inToOut.vhd
 create mode 100644 legacy/TLU_v1e/hdl/test_inputToOutput.vhd
 create mode 100644 legacy/TLU_v1e/hdl/test_toggleLines.vhd
 create mode 100644 legacy/TLU_v1e/hdl/testbench_clocks.vhd
 create mode 100644 legacy/TLU_v1e/hdl/testbench_myclocks.vhd
 create mode 100644 legacy/TLU_v1e/hdl/top_enclustra_ax3_pm3.vhd
 create mode 100644 legacy/TLU_v1e/hdl/top_enclustra_tlu_v1e.vhd
 create mode 100644 legacy/TLU_v1e/hdl/trigger/IODELAYCal_FSM_rtl.vhd
 create mode 100644 legacy/TLU_v1e/hdl/trigger/arrivalTimeLUT_rtl.vhd
 create mode 100644 legacy/TLU_v1e/hdl/trigger/dualSERDES_1to4_rtl.vhd
 create mode 100644 legacy/TLU_v1e/hdl/trigger/triggerInputs_newTLU_rtl.vhd
 create mode 100644 legacy/TLU_v1e/hdl/trigger/triggerInputs_newTLU_rtl_BKP.vhd
 create mode 100644 legacy/TLU_v1e/hdl/trigger/triggerInputs_newTLU_rtl_fastClock.vhd
 create mode 100644 legacy/TLU_v1e/hdl/trigger/triggerInputs_rtl.vhd
 create mode 100644 legacy/TLU_v1e/hdl/trigger/triggerLogic_rtl.vhd
 create mode 100644 legacy/TLU_v1e/scripts/AIDA_testScript.py
 create mode 100644 legacy/TLU_v1e/scripts/TLU_v1e.py
 create mode 100644 legacy/TLU_v1e/scripts/TLUaddrmap.xml
 create mode 100644 legacy/TLU_v1e/scripts/TLUconnection.xml
 create mode 100644 legacy/TLU_v1e/scripts/datafiles/20171020_122611_tluData_1.root
 create mode 100644 legacy/TLU_v1e/scripts/initTLU.py
 create mode 100644 legacy/TLU_v1e/scripts/localClock.txt
 create mode 100644 legacy/TLU_v1e/scripts/localConf.conf
 create mode 100644 legacy/TLU_v1e/scripts/localIni.ini
 create mode 100644 legacy/TLU_v1e/scripts/startTLU_v1e.py
 create mode 100644 legacy/TLU_v1e/scripts/startTLU_v1e.sh
 create mode 100644 legacy/TLU_v1e/scripts/startTLU_v6.py
 create mode 100644 legacy/TLU_v1e/scripts/test.py
 create mode 100644 legacy/TLU_v1e/scripts/testTLU_script.py
 create mode 100644 legacy/TLU_v1e/scripts/test_T0.py
 create mode 100644 legacy/miniTLU/.ftpconfig
 create mode 100644 legacy/miniTLU/FmcTluI2c.py
 create mode 100644 legacy/miniTLU/I2CuHal.py
 create mode 100644 legacy/miniTLU/I2cBusProperties.py
 create mode 100644 legacy/miniTLU/RawI2cAccess.py
 create mode 100644 legacy/miniTLU/aida_mini_tlu_addr_map.txt
 create mode 100644 legacy/miniTLU/connection.xml
 create mode 100644 legacy/miniTLU/initTLU.py
 create mode 100644 legacy/miniTLU/miniTLU.py
 create mode 100644 legacy/miniTLU/miniTLU.xml
 create mode 100644 legacy/miniTLU/miniTLU_old.xml
 create mode 100644 legacy/miniTLU/startTLU_v6.py
 create mode 100755 legacy/miniTLU/startTLU_v6.sh
 create mode 100644 legacy/miniTLU/startTLU_v8.py
 create mode 100644 legacy/miniTLU/testTLU_script.py
 create mode 100644 legacy/miniTLU/test_T0.py
 create mode 100644 legacy/packages/AD5665R.py
 create mode 100644 legacy/packages/E24AA025E48T.py
 create mode 100644 legacy/packages/FmcTluI2c.py
 create mode 100644 legacy/packages/I2CuHal.py
 create mode 100644 legacy/packages/I2cBusProperties.py
 create mode 100644 legacy/packages/PCA9539PW.py
 create mode 100644 legacy/packages/RawI2cAccess.py
 create mode 100644 legacy/packages/TLU_v1e/output.csv
 create mode 100644 legacy/packages/TLUaddrmap_BKP.xml
 create mode 100644 legacy/packages/TLUconnection_BKP.xml
 create mode 100644 legacy/packages/si5345.py

diff --git a/boards/enclustra_ax3_pm3/base_fw/sim/firmware/cfg/lib_mappings.tcl b/boards/enclustra_ax3_pm3/base_fw/sim/firmware/cfg/lib_mappings.tcl
new file mode 100644
index 00000000..e12b5343
--- /dev/null
+++ b/boards/enclustra_ax3_pm3/base_fw/sim/firmware/cfg/lib_mappings.tcl
@@ -0,0 +1,9 @@
+set xlib $::env(XILINX_SIMLIBS)
+vmap secureip $xlib/secureip
+vmap unisim $xlib/unisim
+vmap unimacro $xlib/unimacro
+vmap unifast $xlib/unifast
+vmap unisims_ver $xlib/unisims_ver
+vmap unimacro_ver $xlib/unimacro_ver
+vmap unifast_ver $xlib/unifast_ver
+vmap simprims_ver $xlib/simprims_ver
diff --git a/boards/enclustra_ax3_pm3/base_fw/sim/firmware/cfg/pc051a_infra_sim.dep b/boards/enclustra_ax3_pm3/base_fw/sim/firmware/cfg/pc051a_infra_sim.dep
new file mode 100644
index 00000000..3718c211
--- /dev/null
+++ b/boards/enclustra_ax3_pm3/base_fw/sim/firmware/cfg/pc051a_infra_sim.dep
@@ -0,0 +1,5 @@
+src pc051a_infra_sim.vhd
+src -c ipbus-firmware:components/ipbus_util ../sim_hdl/clock_sim_7s.vhd
+src -c ipbus-firmware:components/ipbus_eth ../sim/eth_mac_sim.vhd
+include -c ipbus-firmware:components/ipbus_core
+src -c ipbus-firmware:components/ipbus_core ipbus_package.vhd
diff --git a/boards/enclustra_ax3_pm3/base_fw/sim/firmware/cfg/pc051a_sim.dep b/boards/enclustra_ax3_pm3/base_fw/sim/firmware/cfg/pc051a_sim.dep
new file mode 100644
index 00000000..6ac2be2b
--- /dev/null
+++ b/boards/enclustra_ax3_pm3/base_fw/sim/firmware/cfg/pc051a_sim.dep
@@ -0,0 +1,9 @@
+@device_family = "artix7"
+@device_name = "xc7a200t"
+@device_package = "fbg484"
+@device_speed = "-2"
+@boardname = "pc051a"
+
+src top_pc051a_sim.vhd
+include pc051a_infra_sim.dep
+src -c ipbus-firmware:components/ipbus_core ipbus_package.vhd
diff --git a/boards/enclustra_ax3_pm3/base_fw/sim/firmware/hdl/pc051a_infra_sim.vhd b/boards/enclustra_ax3_pm3/base_fw/sim/firmware/hdl/pc051a_infra_sim.vhd
new file mode 100644
index 00000000..967d14b0
--- /dev/null
+++ b/boards/enclustra_ax3_pm3/base_fw/sim/firmware/hdl/pc051a_infra_sim.vhd
@@ -0,0 +1,99 @@
+-- kc705_basex_infra
+--
+-- All board-specific stuff goes here.
+--
+-- Dave Newbold, June 2013
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+
+use work.ipbus.all;
+
+entity pc051a_infra_sim is
+	port(
+		clk_ipb_o: out std_logic; -- IPbus clock
+		rst_ipb_o: out std_logic;
+		clk125_o: out std_logic;
+		rst125_o: out std_logic;
+		nuke: in std_logic; -- The signal of doom
+		soft_rst: in std_logic; -- The signal of lesser doom
+		mac_addr: in std_logic_vector(47 downto 0); -- MAC address
+		ip_addr: in std_logic_vector(31 downto 0); -- IP address
+		ipb_in: in ipb_rbus; -- ipbus
+		ipb_out: out ipb_wbus
+	);
+
+end pc051a_infra_sim;
+
+architecture rtl of pc051a_infra_sim is
+
+	signal clk125_fr, clk125, clk_ipb, clk_ipb_i, rst125, rst_ipb, rst_ipb_ctrl: std_logic;
+	signal mac_tx_data, mac_rx_data: std_logic_vector(7 downto 0);
+	signal mac_tx_valid, mac_tx_last, mac_tx_error, mac_tx_ready, mac_rx_valid, mac_rx_last, mac_rx_error: std_logic;
+	
+begin
+
+--	DCM clock generation for internal bus, ethernet
+
+	clocks: entity work.clock_sim_7s
+		port map(
+			clko_125 => clk125,
+			clko_ipb => clk_ipb_i,
+			locked => open,
+			nuke => nuke,
+			soft_rst => soft_rst,
+			rsto_125 => rst125,
+			rsto_ipb => rst_ipb,
+			rsto_ipb_ctrl => rst_ipb_ctrl
+		);
+
+	clk_ipb <= clk_ipb_i; -- Best to align delta delays on all clocks for simulation
+	clk_ipb_o <= clk_ipb_i;
+	rst_ipb_o <= rst_ipb;
+	clk125_o <= clk125;
+	rst125_o <= rst125;
+	
+-- Ethernet MAC core and PHY interface
+	
+	eth: entity work.eth_mac_sim
+		generic map(
+			MULTI_PACKET => true
+		)			
+		port map(
+			clk => clk125,
+			rst => rst125,
+			tx_data => mac_tx_data,
+			tx_valid => mac_tx_valid,
+			tx_last => mac_tx_last,
+			tx_error => mac_tx_error,
+			tx_ready => mac_tx_ready,
+			rx_data => mac_rx_data,
+			rx_valid => mac_rx_valid,
+			rx_last => mac_rx_last,
+			rx_error => mac_rx_error
+		);
+	
+-- ipbus control logic
+
+	ipbus: entity work.ipbus_ctrl
+		port map(
+			mac_clk => clk125,
+			rst_macclk => rst125,
+			ipb_clk => clk_ipb,
+			rst_ipb => rst_ipb_ctrl,
+			mac_rx_data => mac_rx_data,
+			mac_rx_valid => mac_rx_valid,
+			mac_rx_last => mac_rx_last,
+			mac_rx_error => mac_rx_error,
+			mac_tx_data => mac_tx_data,
+			mac_tx_valid => mac_tx_valid,
+			mac_tx_last => mac_tx_last,
+			mac_tx_error => mac_tx_error,
+			mac_tx_ready => mac_tx_ready,
+			ipb_out => ipb_out,
+			ipb_in => ipb_in,
+			mac_addr => mac_addr,
+			ip_addr => ip_addr
+		);
+
+end rtl;
diff --git a/boards/enclustra_ax3_pm3/base_fw/sim/firmware/hdl/top_pc051a_sim.vhd b/boards/enclustra_ax3_pm3/base_fw/sim/firmware/hdl/top_pc051a_sim.vhd
new file mode 100644
index 00000000..f59d5efa
--- /dev/null
+++ b/boards/enclustra_ax3_pm3/base_fw/sim/firmware/hdl/top_pc051a_sim.vhd
@@ -0,0 +1,50 @@
+-- Top-level design for ipbus demo
+--
+-- You must edit this file to set the IP and MAC addresses
+--
+-- Dave Newbold, 08/01/16
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+
+use work.ipbus.all;
+
+entity top is
+
+end top;
+
+architecture rtl of top is
+
+	signal clk_ipb, rst_ipb, clk125, nuke, soft_rst, userled, clk200: std_logic;
+	signal ipb_out: ipb_wbus;
+	signal ipb_in: ipb_rbus;
+	
+begin
+
+-- Infrastructure
+
+	infra: entity work.pc051a_infra_sim -- Should work for artix also...
+		port map(
+			clk_ipb_o => clk_ipb,
+			rst_ipb_o => rst_ipb,
+			clk125_o => clk125,
+			nuke => nuke,
+			soft_rst => soft_rst,
+			mac_addr => X"020ddba11610",
+			ip_addr => X"c0a8c910", -- 192.168.201.16
+			ipb_in => ipb_in,
+			ipb_out => ipb_out
+		);
+
+	payload: entity work.payload_sim
+		port map(
+			ipb_clk => clk_ipb,
+			ipb_rst => rst_ipb,
+			ipb_in => ipb_out,
+			ipb_out => ipb_in,
+			clk125 => clk125,
+			nuke => nuke,
+			soft_rst => soft_rst
+		);
+
+end rtl;
diff --git a/boards/enclustra_ax3_pm3/base_fw/synth/firmware/cfg/enclustra_ax3_pm3_a35.dep b/boards/enclustra_ax3_pm3/base_fw/synth/firmware/cfg/enclustra_ax3_pm3_a35.dep
new file mode 100644
index 00000000..7dbd068f
--- /dev/null
+++ b/boards/enclustra_ax3_pm3/base_fw/synth/firmware/cfg/enclustra_ax3_pm3_a35.dep
@@ -0,0 +1,11 @@
+@device_family = "artix7"
+@device_name = "xc7a35t"
+@device_package = "csg324"
+@device_speed = "-2"
+@boardname = "enclustra_ax3_pm3"
+
+setup settings_v7.tcl
+src top_enclustra_ax3_pm3.vhd
+include enclustra_ax3_pm3_infra.dep
+src -c ipbus-firmware:components/ipbus_core ipbus_package.vhd
+src --cd ../ucf enclustra_ax3_pm3.tcl
diff --git a/boards/enclustra_ax3_pm3/base_fw/synth/firmware/cfg/enclustra_ax3_pm3_a50.dep b/boards/enclustra_ax3_pm3/base_fw/synth/firmware/cfg/enclustra_ax3_pm3_a50.dep
new file mode 100644
index 00000000..0f93b8f0
--- /dev/null
+++ b/boards/enclustra_ax3_pm3/base_fw/synth/firmware/cfg/enclustra_ax3_pm3_a50.dep
@@ -0,0 +1,11 @@
+@device_family = "artix7"
+@device_name = "xc7a50t"
+@device_package = "csg324"
+@device_speed = "-2"
+@boardname = "enclustra_ax3_pm3"
+
+setup settings_v7.tcl
+src top_enclustra_ax3_pm3.vhd
+include enclustra_ax3_pm3_infra.dep
+src -c ipbus-firmware:components/ipbus_core ipbus_package.vhd
+src --cd ../ucf enclustra_ax3_pm3.tcl
diff --git a/boards/enclustra_ax3_pm3/base_fw/synth/firmware/cfg/enclustra_ax3_pm3_infra.dep b/boards/enclustra_ax3_pm3/base_fw/synth/firmware/cfg/enclustra_ax3_pm3_infra.dep
new file mode 100644
index 00000000..fa48bce1
--- /dev/null
+++ b/boards/enclustra_ax3_pm3/base_fw/synth/firmware/cfg/enclustra_ax3_pm3_infra.dep
@@ -0,0 +1,5 @@
+src enclustra_ax3_pm3_infra.vhd
+src -c ipbus-firmware:components/ipbus_util clocks_7s_extphy_se.vhd ipbus_clock_div.vhd led_stretcher.vhd
+include -c ipbus-firmware:components/ipbus_core
+include -c ipbus-firmware:components/ipbus_eth artix_rgmii.dep
+src -c ipbus-firmware:components/ipbus_core ipbus_fabric_sel.vhd ipbus_package.vhd
diff --git a/boards/enclustra_ax3_pm3/base_fw/synth/firmware/cfg/settings_v7.tcl b/boards/enclustra_ax3_pm3/base_fw/synth/firmware/cfg/settings_v7.tcl
new file mode 100644
index 00000000..c4ddcf29
--- /dev/null
+++ b/boards/enclustra_ax3_pm3/base_fw/synth/firmware/cfg/settings_v7.tcl
@@ -0,0 +1,5 @@
+set obj [get_projects top]
+set_property "default_lib" "xil_defaultlib" $obj
+set_property "simulator_language" "Mixed" $obj
+set_property "source_mgmt_mode" "DisplayOnly" $obj
+set_property "target_language" "VHDL" $obj
diff --git a/boards/enclustra_ax3_pm3/base_fw/synth/firmware/hdl/enclustra_ax3_pm3_infra.vhd b/boards/enclustra_ax3_pm3/base_fw/synth/firmware/hdl/enclustra_ax3_pm3_infra.vhd
new file mode 100644
index 00000000..0a09bea6
--- /dev/null
+++ b/boards/enclustra_ax3_pm3/base_fw/synth/firmware/hdl/enclustra_ax3_pm3_infra.vhd
@@ -0,0 +1,132 @@
+-- enclustra_ax3_pm3_infra
+--
+-- All board-specific stuff goes here
+--
+-- Dave Newbold, June 2013
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+
+use work.ipbus.all;
+
+entity enclustra_ax3_pm3_infra is
+	port(
+		sysclk: in std_logic; -- 50MHz board crystal clock
+		clk_ipb_o: out std_logic; -- IPbus clock
+		rst_ipb_o: out std_logic;
+		clk125_o: out std_logic;
+		rst125_o: out std_logic;
+		clk_aux_o: out std_logic; -- 50MHz clock
+		rst_aux_o: out std_logic;
+		nuke: in std_logic; -- The signal of doom
+		soft_rst: in std_logic; -- The signal of lesser doom
+		leds: out std_logic_vector(1 downto 0); -- status LEDs
+		rgmii_txd: out std_logic_vector(3 downto 0);
+		rgmii_tx_ctl: out std_logic;
+		rgmii_txc: out std_logic;
+		rgmii_rxd: in std_logic_vector(3 downto 0);
+		rgmii_rx_ctl: in std_logic;
+		rgmii_rxc: in std_logic;
+		mac_addr: in std_logic_vector(47 downto 0); -- MAC address
+		ip_addr: in std_logic_vector(31 downto 0); -- IP address
+		ipb_in: in ipb_rbus; -- ipbus
+		ipb_out: out ipb_wbus
+	);
+
+end enclustra_ax3_pm3_infra;
+
+architecture rtl of enclustra_ax3_pm3_infra is
+
+	signal clk125_fr, clk125, clk125_90, clk200, clk_ipb, clk_ipb_i, locked, rst125, rst_ipb, rst_ipb_ctrl, rst_eth, onehz, pkt: std_logic;
+	signal mac_tx_data, mac_rx_data: std_logic_vector(7 downto 0);
+	signal mac_tx_valid, mac_tx_last, mac_tx_error, mac_tx_ready, mac_rx_valid, mac_rx_last, mac_rx_error: std_logic;
+	signal led_p: std_logic_vector(0 downto 0);
+	
+begin
+
+--	DCM clock generation for internal bus, ethernet
+
+	clocks: entity work.clocks_7s_extphy_se
+		port map(
+			sysclk => sysclk,
+			clko_125 => clk125,
+			clko_125_90 => clk125_90,
+			clko_200 => clk200,
+			clko_ipb => clk_ipb_i,
+			locked => locked,
+			nuke => nuke,
+			soft_rst => soft_rst,
+			rsto_125 => rst125,
+			rsto_ipb => rst_ipb,
+			rsto_ipb_ctrl => rst_ipb_ctrl,
+			onehz => onehz
+		);
+
+	clk_ipb <= clk_ipb_i; -- Best to align delta delays on all clocks for simulation
+	clk_ipb_o <= clk_ipb_i;
+	rst_ipb_o <= rst_ipb;
+	clk125_o <= clk125;	
+	rst125_o <= rst125;
+	
+	stretch: entity work.led_stretcher
+		generic map(
+			WIDTH => 1
+		)
+		port map(
+			clk => clk125,
+			d(0) => pkt,
+			q => led_p
+		);
+
+	leds <= (led_p(0), locked and onehz);
+	
+-- Ethernet MAC core and PHY interface
+	
+	eth: entity work.eth_7s_rgmii
+		port map(
+			clk125 => clk125,
+			clk125_90 => clk125_90,
+			clk200 => clk200,
+			rst => rst125,
+			rgmii_txd => rgmii_txd,
+			rgmii_tx_ctl => rgmii_tx_ctl,
+			rgmii_txc => rgmii_txc,
+			rgmii_rxd => rgmii_rxd,
+			rgmii_rx_ctl => rgmii_rx_ctl,
+			rgmii_rxc => rgmii_rxc,
+			tx_data => mac_tx_data,
+			tx_valid => mac_tx_valid,
+			tx_last => mac_tx_last,
+			tx_error => mac_tx_error,
+			tx_ready => mac_tx_ready,
+			rx_data => mac_rx_data,
+			rx_valid => mac_rx_valid,
+			rx_last => mac_rx_last,
+			rx_error => mac_rx_error
+		);
+	
+-- ipbus control logic
+
+	ipbus: entity work.ipbus_ctrl
+		port map(
+			mac_clk => clk125,
+			rst_macclk => rst125,
+			ipb_clk => clk_ipb,
+			rst_ipb => rst_ipb_ctrl,
+			mac_rx_data => mac_rx_data,
+			mac_rx_valid => mac_rx_valid,
+			mac_rx_last => mac_rx_last,
+			mac_rx_error => mac_rx_error,
+			mac_tx_data => mac_tx_data,
+			mac_tx_valid => mac_tx_valid,
+			mac_tx_last => mac_tx_last,
+			mac_tx_error => mac_tx_error,
+			mac_tx_ready => mac_tx_ready,
+			ipb_out => ipb_out,
+			ipb_in => ipb_in,
+			mac_addr => mac_addr,
+			ip_addr => ip_addr,
+			pkt => pkt
+		);
+
+end rtl;
diff --git a/boards/enclustra_ax3_pm3/base_fw/synth/firmware/hdl/top_enclustra_ax3_pm3.vhd b/boards/enclustra_ax3_pm3/base_fw/synth/firmware/hdl/top_enclustra_ax3_pm3.vhd
new file mode 100644
index 00000000..e53b33b3
--- /dev/null
+++ b/boards/enclustra_ax3_pm3/base_fw/synth/firmware/hdl/top_enclustra_ax3_pm3.vhd
@@ -0,0 +1,83 @@
+-- Top-level design for ipbus demo
+--
+-- This version is for Enclustra AX3 module, using the RGMII PHY on the PM3 baseboard
+--
+-- You must edit this file to set the IP and MAC addresses
+--
+-- Dave Newbold, 4/10/16
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+
+use work.ipbus.ALL;
+
+entity top is port(
+		sysclk: in std_logic;
+		leds: out std_logic_vector(3 downto 0); -- status LEDs
+		cfg: in std_logic_vector(3 downto 0); -- switches
+		rgmii_txd: out std_logic_vector(3 downto 0);
+		rgmii_tx_ctl: out std_logic;
+		rgmii_txc: out std_logic;
+		rgmii_rxd: in std_logic_vector(3 downto 0);
+		rgmii_rx_ctl: in std_logic;
+		rgmii_rxc: in std_logic;
+		phy_rstn: out std_logic
+	);
+
+end top;
+
+architecture rtl of top is
+
+	signal clk_ipb, rst_ipb, nuke, soft_rst, phy_rst_e, userled: std_logic;
+	signal mac_addr: std_logic_vector(47 downto 0);
+	signal ip_addr: std_logic_vector(31 downto 0);
+	signal ipb_out: ipb_wbus;
+	signal ipb_in: ipb_rbus;
+	signal inf_leds: std_logic_vector(1 downto 0);
+	
+begin
+
+-- Infrastructure
+
+	infra: entity work.enclustra_ax3_pm3_infra
+		port map(
+			sysclk => sysclk,
+			clk_ipb_o => clk_ipb,
+			rst_ipb_o => rst_ipb,
+			rst125_o => phy_rst_e,
+			nuke => nuke,
+			soft_rst => soft_rst,
+			leds => inf_leds,
+			rgmii_txd => rgmii_txd,
+			rgmii_tx_ctl => rgmii_tx_ctl,
+			rgmii_txc => rgmii_txc,
+			rgmii_rxd => rgmii_rxd,
+			rgmii_rx_ctl => rgmii_rx_ctl,
+			rgmii_rxc => rgmii_rxc,
+			mac_addr => mac_addr,
+			ip_addr => ip_addr,
+			ipb_in => ipb_in,
+			ipb_out => ipb_out
+		);
+		
+	leds <= not ('0' & userled & inf_leds);
+	phy_rstn <= not phy_rst_e;
+
+	mac_addr <= X"020ddba1151" & not cfg; -- Careful here, arbitrary addresses do not always work
+	ip_addr <= X"c0a8c81" & not cfg; -- 192.168.200.16+n
+
+-- ipbus slaves live in the entity below, and can expose top-level ports
+-- The ipbus fabric is instantiated within.
+
+	slaves: entity work.ipbus_example
+		port map(
+			ipb_clk => clk_ipb,
+			ipb_rst => rst_ipb,
+			ipb_in => ipb_out,
+			ipb_out => ipb_in,
+			nuke => nuke,
+			soft_rst => soft_rst,
+			userled => userled
+		);
+
+end rtl;
diff --git a/boards/enclustra_ax3_pm3/base_fw/synth/firmware/ucf/enclustra_ax3_pm3.tcl b/boards/enclustra_ax3_pm3/base_fw/synth/firmware/ucf/enclustra_ax3_pm3.tcl
new file mode 100644
index 00000000..44fa5fee
--- /dev/null
+++ b/boards/enclustra_ax3_pm3/base_fw/synth/firmware/ucf/enclustra_ax3_pm3.tcl
@@ -0,0 +1,55 @@
+set_property BITSTREAM.GENERAL.COMPRESS TRUE [current_design]
+
+proc false_path {patt clk} {
+    set p [get_ports -quiet $patt -filter {direction != out}]
+    if {[llength $p] != 0} {
+        set_input_delay 0 -clock [get_clocks $clk] [get_ports $patt -filter {direction != out}]
+        set_false_path -from [get_ports $patt -filter {direction != out}]
+    }
+    set p [get_ports -quiet $patt -filter {direction != in}]
+    if {[llength $p] != 0} {
+       	set_output_delay 0 -clock [get_clocks $clk] [get_ports $patt -filter {direction != in}]
+	    set_false_path -to [get_ports $patt -filter {direction != in}]
+	}
+}
+
+# System clock (200MHz)
+create_clock -period 20.000 -name sysclk [get_ports sysclk]
+
+set_false_path -through [get_pins infra/clocks/rst_reg/Q]
+set_false_path -through [get_nets infra/clocks/nuke_i]
+
+set_property IOSTANDARD LVCMOS25 [get_ports sysclk]
+set_property PACKAGE_PIN P17 [get_ports sysclk]
+
+set_property IOSTANDARD LVCMOS25 [get_ports {leds[*]}]
+set_property SLEW SLOW [get_ports {leds[*]}]
+set_property PACKAGE_PIN M16 [get_ports {leds[0]}]
+set_property PACKAGE_PIN M17 [get_ports {leds[1]}]
+set_property PACKAGE_PIN L18 [get_ports {leds[2]}]
+set_property PACKAGE_PIN M18 [get_ports {leds[3]}]
+false_path {leds[*]} sysclk
+
+set_property IOSTANDARD LVCMOS25 [get_ports {rgmii_* phy_rstn}]
+set_property PACKAGE_PIN R18 [get_ports {rgmii_txd[0]}]
+set_property PACKAGE_PIN T18 [get_ports {rgmii_txd[1]}]
+set_property PACKAGE_PIN U17 [get_ports {rgmii_txd[2]}]
+set_property PACKAGE_PIN U18 [get_ports {rgmii_txd[3]}]
+set_property PACKAGE_PIN T16 [get_ports {rgmii_tx_ctl}]
+set_property PACKAGE_PIN N16 [get_ports {rgmii_txc}]
+set_property PACKAGE_PIN U16 [get_ports {rgmii_rxd[0]}]
+set_property PACKAGE_PIN V17 [get_ports {rgmii_rxd[1]}]
+set_property PACKAGE_PIN V15 [get_ports {rgmii_rxd[2]}]
+set_property PACKAGE_PIN V16 [get_ports {rgmii_rxd[3]}]
+set_property PACKAGE_PIN R16 [get_ports {rgmii_rx_ctl}]
+set_property PACKAGE_PIN T14 [get_ports {rgmii_rxc}]
+set_property PACKAGE_PIN M13 [get_ports {phy_rstn}]
+false_path {phy_rstn} sysclk
+
+set_property IOSTANDARD LVCMOS25 [get_ports {cfg[*]}]
+set_property PULLUP TRUE [get_ports {cfg[*]}]
+set_property PACKAGE_PIN K2 [get_ports {cfg[0]}]
+set_property PACKAGE_PIN K1 [get_ports {cfg[1]}]
+set_property PACKAGE_PIN J4 [get_ports {cfg[2]}]
+set_property PACKAGE_PIN H4 [get_ports {cfg[3]}]
+
diff --git a/components/tlu/hdl/GPL_doxygen_header.vhdl b/components/tlu/hdl/GPL_doxygen_header.vhdl
new file mode 100644
index 00000000..d9fdc487
--- /dev/null
+++ b/components/tlu/hdl/GPL_doxygen_header.vhdl
@@ -0,0 +1,77 @@
+--! @file dtype_fds.vhdl
+--
+-------------------------------------------------------------------------------
+-- --
+-- (c) University of Bristol, High Energy Physics Group --
+-- --
+-------------------------------------------------------------------------------
+--
+--
+-- This file is part of IPBus.
+--
+--    IPBus is free software: you can redistribute it and/or modify
+--    it under the terms of the GNU General Public License as published by
+--    the Free Software Foundation, either version 3 of the License, or
+--    (at your option) any later version.
+--
+--    IPBus is distributed in the hope that it will be useful,
+--    but WITHOUT ANY WARRANTY; without even the implied warranty of
+--    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+--    GNU General Public License for more details.
+--
+--    You should have received a copy of the GNU General Public License
+--    along with IPBus.  If not, see <http://www.gnu.org/licenses/>.
+--
+--    IPBus is free software: you can redistribute it and/or modify
+--    it under the terms of the GNU General Public License as published by
+--    the Free Software Foundation, either version 3 of the License, or
+--    (at your option) any later version.
+--
+--    IPBus is distributed in the hope that it will be useful,
+--    but WITHOUT ANY WARRANTY; without even the implied warranty of
+--    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+--    GNU General Public License for more details.
+--
+--    You should have received a copy of the GNU General Public License
+--    along with IPBus.  If not, see <http://www.gnu.org/licenses/>.
+--
+--
+--! Standard library
+library IEEE;
+
+-- Standard logic defintions.
+use IEEE.STD_LOGIC_1164.all;
+
+--
+-- unit name: dtype_fds
+--
+--! @brief   Aims to be the same as the Xilinx "FDS" primitive - D-Type flip-flop
+--
+--
+--! @author David.Cussans@bristol.ac.uk
+--
+--! @date 7/May/2011
+--
+--! @version 0.1
+--
+--! @details -- Modified from D-type example in VHDL book.
+--! See Xilinx spartan6_scm.pdf
+--! Output goes high when input goes high ( asyncnronous to system clock).
+--
+--! <b>Dependencies:</b>\n
+--!
+--! <b>References:</b>\n
+--! <reference one> \n
+--! <reference two>
+--!
+--! <b>Modified by:</b>\n
+--! Author: <name>
+-------------------------------------------------------------------------------
+--! \n\n<b>Last changes:</b>\n
+--! <date> <initials> <log>\n
+--! <extended description>
+-------------------------------------------------------------------------------
+--! @todo <next thing to do> \n
+--! <another thing to do> \n
+--
+-------------------------------------------------------------------------------
diff --git a/components/tlu/hdl/GPP_rtl.vhd b/components/tlu/hdl/GPP_rtl.vhd
new file mode 100644
index 00000000..bc02a5ef
--- /dev/null
+++ b/components/tlu/hdl/GPP_rtl.vhd
@@ -0,0 +1,312 @@
+--=============================================================================
+--! @file GPP_rtl.vhd
+--=============================================================================
+--
+-------------------------------------------------------------------------------
+-- --
+-- University of Santiago de Compostela, High Energy Physics Group.
+-- --
+------------------------------------------------------------------------------- --
+-- 
+--
+--! @brief GPP - General purpose pulser. Generates a sycronous custom pulse \n
+--! IPBus address map:\n
+--
+--! @author Alvaro Dosil , alvaro.dosil@usc.es
+--
+--! @date 15:42:31 01/15/2013 
+--
+--! @version v0.1
+--
+--! @details
+--!
+--!
+--! <b>Dependencies:</b>\n
+--!
+--! <b>References:</b>\n
+--!
+--! <b>Modified by: 
+--! Author: 
+-------------------------------------------------------------------------------
+--! \n\n<b>Last changes:</b>\n
+-------------------------------------------------------------------------------
+--! @todo <next thing to do> \n
+--! <another thing to do> \n
+--
+--------------------------------------------------------------------------------
+library ieee;
+use ieee.std_logic_1164.all;
+use ieee.numeric_std.all;
+
+entity GPP is
+   GENERIC( 
+      g_IPBUS_WIDTH      : positive := 32
+   );
+	PORT( clk_i       		: IN     std_logic;                                          		--! Rising edge active
+			Enable_i          : IN     std_logic;                                          --
+			Reset_i           : IN     std_logic;                                          --
+			RstPulsCnt_i     	: IN     std_logic;                                          -- Reset pulse counter
+			Trigger_i         : IN     std_logic;                                          -- Trigger input signal
+			NMaxPulses_i      : IN     std_logic_vector(g_IPBUS_WIDTH-1 downto 0);         -- Max number of pulses
+			SuDTime_i         : IN     std_logic_vector(g_IPBUS_WIDTH-1 downto 0);         -- Startup dead time
+			PulsLen_i     		: IN     std_logic_vector(g_IPBUS_WIDTH-1 downto 0);         -- Pulse length
+		   IpDTime_i         : IN     std_logic_vector(g_IPBUS_WIDTH-1 downto 0);         -- Interpulse dead time
+			RearmTime_i       : IN     std_logic_vector(g_IPBUS_WIDTH-1 downto 0);         -- Time before rearm after reach the max number of pulses
+			Force_PullDown_i  : IN     std_logic;                                          -- Force pull down
+			WU_i              : IN     std_logic;                                          -- Output trigger signal with update
+			PulseDelay_i      : IN     std_logic_vector(g_IPBUS_WIDTH-1 downto 0);    		 -- Pulse delay
+	      event_number_o    : OUT    std_logic_vector(g_IPBUS_WIDTH-1 downto 0);         -- Event number
+			MaxPulses_o       : OUT    std_logic;                                          -- Maximun number of pulses reached
+			Pulse_o           : OUT    std_logic;                                          --! pulse output
+			Pulse_d_o         : OUT    std_logic                                           --! pulse output delayed
+			);
+end GPP;
+
+architecture rtl of GPP is
+   --! FSM state values
+   type state_values is (st0, st1, st2, st3, st4, st5, st6);
+	signal pres_state, next_state: state_values;
+	
+	signal s_PulsCnt_en  		: std_logic := '0';                                             --! Pulse counter enable
+	signal s_RstPulsCnt       	: std_logic := '0';                                             --! Reset pulse counter
+	signal s_RstPulsCnt_int   	: std_logic := '0';                                             --! Reset pulse counter internal signal
+	signal s_PulsLen		      : std_logic_vector(g_IPBUS_WIDTH-1 downto 0);                   --! Pulse Length
+	signal s_PulsCnt     		: unsigned(g_IPBUS_WIDTH-1 downto 0) := (others => '0');        --! Pulse counter value
+	signal s_MaxPulses         : std_logic := '0';                                             --! Max number of pulses reached
+	signal s_Pulse             : std_logic := '0';                                             --! Active pulse signal
+	signal s_Pulse_d           : std_logic_vector(g_IPBUS_WIDTH-1 downto 0) := (others=>'0');  --! Active pulse signal delayed
+   
+	signal s_load_SuDTime      : std_logic := '1';                                             --! Counter load signal
+	signal s_SuDTime 				: std_logic_vector(g_IPBUS_WIDTH-1 downto 0);                   --! Startup dead time counter
+	signal EOSDT               : std_logic := '0';                                             --! End of startup dead time signal
+	
+	signal s_load_PulsLen     : std_logic := '1';                                           	--! Counter load
+	signal EOP                 : std_logic := '0';                                             --! End of pulse length signal
+	
+	signal s_load_IpDTime      : std_logic := '1';                                             --! Counter load signal
+	signal s_IpDTime 				: std_logic_vector(g_IPBUS_WIDTH-1 downto 0);                   --! Interpulse dead time counter
+	signal EOIDT               : std_logic := '0';                                             --! End of interpulse dead time signal
+	
+	signal s_load_RearmTime    : std_logic := '1';                                             --! Rearm counter load signal
+	signal s_RearmLen     		: std_logic_vector(g_IPBUS_WIDTH-1 downto 0);                   --! Startup dead time counter
+	signal EOREARM             : std_logic := '0';                                             --! End of startup dead time signal
+
+begin
+	-----------------------------------------------------------------------------
+	-- Counters
+	-----------------------------------------------------------------------------
+	--! Startup dead time counter
+   c_startup_dtime : entity work.CounterDown
+	generic map(
+		MAX_WIDTH => g_IPBUS_WIDTH
+	)
+	port map( 
+		Clk		=> clk_i,
+		Reset		=> '0',
+		Load 		=> s_load_SuDTime,
+		InitVal 	=> std_logic_vector(unsigned(s_SuDTime)-1),
+		Count		=> open,
+		Q 			=> EOSDT
+	);
+	s_SuDTime <= x"00000001" when SuDTime_i = x"00000000"    -- At least one clock cycle pulse is generated
+	             else SuDTime_i;
+	
+	--! Pulse time counter
+   c_pulse_time : entity work.CounterDown
+	generic map(
+		MAX_WIDTH => g_IPBUS_WIDTH
+	)
+	port map( 
+		Clk		=> clk_i,
+		Reset		=> '0',
+		Load 		=> s_load_PulsLen,
+		InitVal 	=> std_logic_vector(unsigned(s_PulsLen)-1),
+		Count		=> open,
+		Q 			=> EOP
+	);
+	s_PulsLen <= x"00000001" when PulsLen_i = x"00000000"    -- At least one clock cycle pulse is generated
+	             else PulsLen_i;
+	
+	--! Interpulse dead time counter
+   c_interpulse_dtime : entity work.CounterDown
+	generic map(
+		MAX_WIDTH => g_IPBUS_WIDTH
+	)
+	port map( 
+		Clk		=> clk_i,
+		Reset		=> '0',
+		Load 		=> s_load_IpDTime,
+		InitVal 	=> std_logic_vector(unsigned(s_IpDTime)-1),
+		Count		=> open,
+		Q 			=> EOIDT
+	);
+	s_IpDTime <= x"00000001" when IpDTime_i = x"00000000"    -- At least one clock cycle pulse is generated
+	             else IpDTime_i;
+	
+	--! Rearm time after the max pulses reached
+   c_rearm_dtime : entity work.CounterDown
+	generic map(
+		MAX_WIDTH => g_IPBUS_WIDTH
+	)
+	port map( 
+		Clk		=> clk_i,
+		Reset		=> '0',
+		Load 		=> s_load_RearmTime,
+		InitVal 	=> std_logic_vector(unsigned(s_RearmLen)-1),
+		Count		=> open,
+		Q 			=> EOREARM
+	);
+	s_RearmLen <= x"00000001" when RearmTime_i = x"00000000"    -- At least one clock cycle pulse is generated
+						else RearmTime_i;
+			 
+
+	--! FSM register
+	statereg: process(clk_i, Enable_i, Reset_i)
+	begin
+		if Enable_i = '0'  then 
+			pres_state <= st0;            -- Move to st0 - INITIAL STATE
+      
+		elsif Reset_i = '1' then
+			pres_state <= st0;            -- Move to st0 - INITIAL STATE
+        
+		elsif rising_edge(clk_i) then
+			pres_state <= next_state;     -- Move to next state
+        
+		end if;
+	end process statereg;
+
+
+   --! FSM combinational block
+	fsm: process(pres_state, Enable_i, Reset_i, Trigger_i, s_MaxPulses, EOP, EOSDT, EOIDT, Force_PullDown_i)
+	begin
+	  next_state <= pres_state;
+	  -- Default values
+	  s_Pulse          	<= '0';
+	  s_load_SuDTime     <= '1';
+	  s_load_PulsLen 		<= '1';
+	  s_load_IpDTime     <= '1';
+	  s_load_RearmTime	<= '1';
+	  s_RstPulsCnt_int   <= '0';
+  
+     case pres_state is
+	  
+	    -- st0 - INITIAL STATE
+		 when st0=>
+         if (Enable_i = '1') and (Reset_i = '0') then 
+           next_state <= st1;            -- Next state is "st1 - IDLE"
+         end if;
+       
+		 -- st1 - IDLE STATE
+       when st1=>
+         if s_MaxPulses = '1' then
+           next_state <= st5;            -- Next state is "st5 - NMAX PULSES REACHED"
+         else
+           if Trigger_i = '1' and Force_PullDown_i = '0' then 
+             if (to_integer(unsigned(SuDTime_i)) = 0) then
+               next_state <= st3;        -- Next state is "st3 - PULSE"
+             else
+               next_state <= st2;        -- Next state is "st2 - STARTUP DEAD-TIME"
+             end if; 
+           end if;
+         end if;
+		 
+		 -- st2 - STARTUP DEAD-TIME
+       when st2=>
+         s_load_SuDTime <= '0';
+           if EOSDT = '1' then
+             next_state <= st3;          -- Next state is "st3 - PULSE"
+           end if;
+		
+		 -- st3 - PULSE
+       when st3=>
+         s_Pulse <= '1';
+         s_load_PulsLen <= '0';
+				
+         if (EOP = '1') or (Force_PullDown_i = '1')then
+           if (to_integer(unsigned(IpDTime_i)) = 0) then
+             next_state <= st1;         -- Next state is "st1 - IDLE"
+           else
+             next_state <= st4;         -- Next state is "st4 - INTERPULSE DEAD-TIME"
+           end if;
+         end if;
+				
+         if Trigger_i = '1' then
+           if (WU_i = '1') then
+             next_state <= st6;         -- Next state is "st6 - RELOAD PULSE TIMER"
+           end if;	
+         end if;
+       
+		 
+		 -- st4 - INTERPULSE DEAD-TIME
+       when st4=>
+         s_load_IpDTime <= '0';
+         if EOIDT = '1' then
+           next_state <= st1;            -- Next state is "st1 - IDLE"
+         end if;
+				
+		 -- st5 - NMAX PULSES REACHED
+       when st5=>
+		   s_load_RearmTime <= '0';
+			if EOREARM = '1' then
+			  next_state <= st1;            -- Next state is "st1 - IDLE"
+			  s_RstPulsCnt_int <= '1';
+			end if;
+			
+		 -- st6 - RELOAD PULSE TIMER
+       when st6=>
+         s_Pulse <= '1';
+         next_state <= st3;              -- Next state is "st3 - PULSE"
+			
+--       when others=>
+--         next_state<=st0;                -- Next state is "st0 - INITIAL STATE"
+     
+	  end case;
+	
+	end process fsm;    
+	
+	-- Pulse reg
+	p_reg_pulse : process ( clk_i , Reset_i )
+   begin  
+	  if Reset_i = '1' then
+	    s_Pulse_d <= (others => '0');
+	  
+	  elsif rising_edge(clk_i) then
+       for i in 0 to g_IPBUS_WIDTH-2 loop
+         s_Pulse_d(i+1) <= s_Pulse_d(i);
+       end loop;
+	    s_Pulse_d(0) <= s_Pulse;
+	  end if;
+	end process p_reg_pulse;
+	
+	event_number_o <= std_logic_vector(s_PulsCnt);
+	MaxPulses_o <= s_MaxPulses;
+	Pulse_o 		<= s_Pulse;
+	Pulse_d_o 	<= s_Pulse when PulseDelay_i = x"00000000" else
+						s_Pulse_d(to_integer(unsigned(PulseDelay_i)-1));
+	
+	
+	-----------------------------------------------------------------------------
+	-- Count runs and synchronization
+	-----------------------------------------------------------------------------
+	p_PulsCounter : process (clk_i )
+	begin  -- process p_run_counter
+
+		if rising_edge(clk_i) then
+			if s_RstPulsCnt = '1' then
+				s_PulsCnt <= (others => '0');
+			elsif s_PulsCnt_en = '1' then
+				s_PulsCnt <= s_PulsCnt + 1;
+			end if;
+		
+		end if;
+	end process p_PulsCounter;
+  
+	s_RstPulsCnt <= Reset_i or RstPulsCnt_i or s_RstPulsCnt_int;
+	s_PulsCnt_en <= '1' when (s_Pulse = '1') and (s_Pulse_d(0) = '0') and (s_MaxPulses = '0')
+	                      else '0'; 
+	s_MaxPulses <= '1' when (s_PulsCnt = unsigned(NMaxPulses_i)) and (NMaxPulses_i /= x"00000000")
+                  else '0';
+
+
+END ARCHITECTURE rtl;
+
diff --git a/components/tlu/hdl/IPBusInterface_rtl.vhd b/components/tlu/hdl/IPBusInterface_rtl.vhd
new file mode 100644
index 00000000..aa9bd6de
--- /dev/null
+++ b/components/tlu/hdl/IPBusInterface_rtl.vhd
@@ -0,0 +1,261 @@
+--=============================================================================
+--! @file IPBusInterface_rtl.vhd
+--=============================================================================
+--
+-------------------------------------------------------------------------------
+-- --
+-- University of Bristol, High Energy Physics Group.
+-- --
+------------------------------------------------------------------------------- --
+-- VHDL Architecture fmc_mTLU_lib.IPBusInterface.rtl
+--
+-- 
+-- Created using using Mentor Graphics HDL Designer(TM) 2010.3 (Build 21)
+--
+LIBRARY ieee;
+USE ieee.std_logic_1164.all;
+USE ieee.numeric_std.all;
+
+USE work.ipbus.all;
+
+--! @brief IPBus interface between 1GBit/s Ethernet and IPBus internal bus
+--
+--! @author David Cussans , David.Cussans@bristol.ac.uk
+--
+--! @date 16:06:57 11/09/12
+--
+--! @version v0.1
+--
+--! @details
+--!
+--! <b>Modified by:</b>\n
+--! Author: 
+-------------------------------------------------------------------------------
+--! \n\n<b>Last changes:</b>\n
+-------------------------------------------------------------------------------
+ENTITY IPBusInterface IS
+   GENERIC( 
+      NUM_EXT_SLAVES : positive := 5;
+      BUILD_SIMULATED_ETHERNET : integer := 0 --! Set to 1 to build simulated Ethernet interface using Modelsim FLI
+   );
+   PORT( 
+      gmii_rx_clk_i    : IN     std_logic;
+      gmii_rx_dv_i     : IN     std_logic;
+      gmii_rx_er_i     : IN     std_logic;
+      gmii_rxd_i       : IN     std_logic_vector (7 DOWNTO 0);
+      ipbr_i           : IN     ipb_rbus_array (NUM_EXT_SLAVES-1 DOWNTO 0);  --! IPBus read signals
+      sysclk_n_i       : IN     std_logic;
+      sysclk_p_i       : IN     std_logic;                                   --! 200 MHz xtal clock
+      clocks_locked_o  : OUT    std_logic;
+      gmii_gtx_clk_o   : OUT    std_logic;
+      gmii_tx_en_o     : OUT    std_logic;
+      gmii_tx_er_o     : OUT    std_logic;
+      gmii_txd_o       : OUT    std_logic_vector (7 DOWNTO 0);
+      ipb_clk_o        : OUT    std_logic;                                   --! IPBus clock to slaves
+      ipb_rst_o        : OUT    std_logic;                                   --! IPBus reset to slaves
+      ipbw_o           : OUT    ipb_wbus_array (NUM_EXT_SLAVES-1 DOWNTO 0);  --! IBus write signals
+      onehz_o          : OUT    std_logic;
+      phy_rstb_o       : OUT    std_logic;
+      dip_switch_i     : IN     std_logic_vector (3 DOWNTO 0); --! Used to select IP address
+      clk_logic_xtal_o : OUT    std_logic  --! 40MHz clock that can be used for logic if not using external clock
+   );
+
+-- Declarations
+
+END ENTITY IPBusInterface ;
+
+--
+ARCHITECTURE rtl OF IPBusInterface IS
+  
+  --! Number of slaves inside the IPBusInterface block.
+  constant c_NUM_INTERNAL_SLAVES : positive := 1;
+
+  signal clk125,  rst_125, rst_ipb: STD_LOGIC;
+  signal mac_txd, mac_rxd : STD_LOGIC_VECTOR(7 downto 0);
+  signal mac_txdvld, mac_txack, mac_rxclko, mac_rxdvld, mac_rxgoodframe, mac_rxbadframe : STD_LOGIC;
+  signal ipb_master_out : ipb_wbus;
+  signal ipb_master_in : ipb_rbus;
+  signal mac_addr: std_logic_vector(47 downto 0);
+  signal mac_tx_data, mac_rx_data: std_logic_vector(7 downto 0);
+  signal mac_tx_valid, mac_tx_last, mac_tx_error, mac_tx_ready, mac_rx_valid, mac_rx_last, mac_rx_error: std_logic;
+
+  signal ip_addr: std_logic_vector(31 downto 0);
+  signal s_ipb_clk : std_logic;
+  signal s_ipbw_internal: ipb_wbus_array (NUM_EXT_SLAVES+c_NUM_INTERNAL_SLAVES-1 DOWNTO 0);
+  signal s_ipbr_internal: ipb_rbus_array (NUM_EXT_SLAVES+c_NUM_INTERNAL_SLAVES-1 DOWNTO 0);
+  signal s_sysclk : std_logic;
+  signal pkt_rx, pkt_tx, pkt_rx_led, pkt_tx_led, sys_rst: std_logic;
+  
+BEGIN
+
+  -- Connect IPBus clock and reset to output ports.
+  ipb_clk_o <= s_ipb_clk;
+  ipb_rst_o <= rst_ipb;
+
+  --! By default generate a physical MAC
+  generate_physicalmac: if ( BUILD_SIMULATED_ETHERNET /= 1 ) generate
+      
+--	DCM clock generation for internal bus, ethernet
+--	clocks: entity work.clocks_s6_extphy port map(
+--          sysclk_p => sysclk_p_i,
+--          sysclk_n => sysclk_n_i,
+--          clk_logic_xtal_o => clk_logic_xtal_o,
+--          clko_125 => clk125,
+--          clko_ipb => s_ipb_clk,
+--          locked => clocks_locked_o,
+--          rsto_125 => rst_125,
+--          rsto_ipb => rst_ipb,
+--          onehz => onehz_o
+--          );
+    
+    clocks: entity work.clocks_7s_extphy_Se port map(
+        sysclk_p => sysclk_p_i,
+        sysclk_n => sysclk_n_i,
+        clk_logic_xtal_o => clk_logic_xtal_o,
+        clko_125 => clk125,
+        clko_ipb => s_ipb_clk,
+        locked => clocks_locked_o,
+        rsto_125 => rst_125,
+        rsto_ipb => rst_ipb,
+        onehz => onehz_o
+        );
+				
+	-- leds <= ('0', '0', locked, onehz);
+	
+--	Ethernet MAC core and PHY interface
+-- In this version, consists of hard MAC core and GMII interface to external PHY
+-- Can be replaced by any other MAC / PHY combination
+
+--        eth: entity work.eth_s6_gmii port map(
+--          clk125 => clk125,
+--          rst => rst_125,
+--          gmii_gtx_clk => gmii_gtx_clk_o,
+--          gmii_tx_en => gmii_tx_en_o,
+--          gmii_tx_er => gmii_tx_er_o,
+--          gmii_txd => gmii_txd_o,
+--          gmii_rx_clk => gmii_rx_clk_i,
+--          gmii_rx_dv => gmii_rx_dv_i,
+--          gmii_rx_er => gmii_rx_er_i,
+--          gmii_rxd => gmii_rxd_i,
+--          tx_data => mac_tx_data,
+--          tx_valid => mac_tx_valid,
+--          tx_last => mac_tx_last,
+--          tx_error => mac_tx_error,
+--          tx_ready => mac_tx_ready,
+--          rx_data => mac_rx_data,
+--          rx_valid => mac_rx_valid,
+--          rx_last => mac_rx_last,
+--          rx_error => mac_rx_error
+--          );
+          
+      eth: entity work.eth_7s_rgmii port map(
+            clk125 => clk125,
+            rst => rst_125,
+            tx_data => mac_tx_data,
+            tx_valid => mac_tx_valid,
+            tx_last => mac_tx_last,
+            tx_error => mac_tx_error,
+            tx_ready => mac_tx_ready,
+            rx_data => mac_rx_data,
+            rx_valid => mac_rx_valid,
+            rx_last => mac_rx_last,
+            rx_error => mac_rx_error,
+            gmii_gtx_clk => gmii_gtx_clk_o,
+            gmii_tx_en => gmii_tx_en_o,
+            gmii_tx_er => gmii_tx_er_o,
+            gmii_txd => gmii_txd_o,
+            gmii_rx_clk => gmii_rx_clk_i,
+            gmii_rx_dv => gmii_rx_dv_i,
+            gmii_rx_er => gmii_rx_er_i,
+            gmii_rxd => gmii_rxd_i            
+            );
+          	
+  end generate generate_physicalmac;
+
+    --! Set generic BUILD_SIMULATED_ETHERNET to 1 to generate a simulated MAC
+    generate_simulatedmac: if ( BUILD_SIMULATED_ETHERNET = 1 ) generate
+
+      sim_clocks: entity work.clock_sim
+	port map (
+	  clko125 => clk125,
+	  clko25 => s_ipb_clk,
+	  clko40 =>  clk_logic_xtal_o,
+	  nuke   => '0',
+	  rsto   => rst_125
+          );
+      rst_ipb <= rst_125;
+      clocks_locked_o  <= '1';
+      
+      -- clk125 <= sysclk_i; -- *must* run this simulation with 125MHz sysclk...
+      simulated_eth: entity work.eth_mac_sim
+        port map(
+          clk => clk125,
+          rst => rst_125,
+          tx_data => mac_tx_data,
+          tx_valid => mac_tx_valid,
+          tx_last => mac_tx_last,
+          tx_error => mac_tx_error,
+          tx_ready => mac_tx_ready,
+          rx_data => mac_rx_data,
+          rx_valid => mac_rx_valid,
+          rx_last => mac_rx_last,
+          rx_error => mac_rx_error
+          );
+    end generate generate_simulatedmac;
+
+  phy_rstb_o <= '1';
+  
+-- ipbus control logic
+        ipbus: entity work.ipbus_ctrl
+          generic map (
+            BUFWIDTH => 2)
+          port map(
+            mac_clk => clk125,
+            rst_macclk => rst_125,
+            ipb_clk => s_ipb_clk,
+            rst_ipb => rst_ipb,
+            mac_rx_data => mac_rx_data,
+            mac_rx_valid => mac_rx_valid,
+            mac_rx_last => mac_rx_last,
+            mac_rx_error => mac_rx_error,
+            mac_tx_data => mac_tx_data,
+            mac_tx_valid => mac_tx_valid,
+            mac_tx_last => mac_tx_last,
+            mac_tx_error => mac_tx_error,
+            mac_tx_ready => mac_tx_ready,
+            ipb_out => ipb_master_out,
+            ipb_in => ipb_master_in,
+            mac_addr => mac_addr,
+            ip_addr => ip_addr,
+            pkt_rx => pkt_rx,
+            pkt_tx => pkt_tx,
+            pkt_rx_led => pkt_rx_led,
+            pkt_tx_led => pkt_tx_led
+            );
+
+	
+	mac_addr <= X"020ddba115" & dip_switch_i & X"0"; -- Careful here, arbitrary addresses do not always work
+	ip_addr   <= X"c0a8c8" & dip_switch_i & X"0"; -- 192.168.200.X
+ 
+  fabric: entity work.ipbus_fabric
+    generic map(NSLV => NUM_EXT_SLAVES+c_NUM_INTERNAL_SLAVES)
+    port map(
+      ipb_in => ipb_master_out,
+      ipb_out => ipb_master_in,
+      ipb_to_slaves => s_ipbw_internal,
+      ipb_from_slaves => s_ipbr_internal
+    );
+    
+    ipbw_o <= s_ipbw_internal(NUM_EXT_SLAVES-1 downto 0);
+
+    s_ipbr_internal(NUM_EXT_SLAVES-1 downto 0) <= ipbr_i;
+         
+  -- Slave: firmware ID
+  firmware_id: entity work.ipbus_ver
+    port map(
+      ipbus_in =>  s_ipbw_internal(NUM_EXT_SLAVES+c_NUM_INTERNAL_SLAVES-1),
+      ipbus_out => s_ipbr_internal(NUM_EXT_SLAVES+c_NUM_INTERNAL_SLAVES-1)
+      );
+
+END ARCHITECTURE rtl;
+
diff --git a/components/tlu/hdl/Reg_2clks.vhd b/components/tlu/hdl/Reg_2clks.vhd
new file mode 100644
index 00000000..df7168fc
--- /dev/null
+++ b/components/tlu/hdl/Reg_2clks.vhd
@@ -0,0 +1,56 @@
+----------------------------------------------------------------------------------
+-- Company: Universidade de Santiago de Compostela
+-- Engineer: Alvaro Dosil
+-- 
+-- Create Date:    31/07/2012 
+-- Module Name:    Reg_2clks - Behavioral 
+-- Revision 0.01 - File Created
+-- Additional Comments: 
+----------------------------------------------------------------------------------
+-------------------------------------------------------
+--! @file
+--! @brief Synchronization module 1b
+--! @author Alvaro Dosil
+-------------------------------------------------------
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+
+
+entity Reg_2clks is
+  port(
+    clk_i : in std_logic;  --! Synchronous clock
+	 async_i : in std_logic;  --! Asynchronous input data
+	 sync_o : out std_logic   --! Synchronous output data
+	 );
+end Reg_2clks;
+
+--! @brief
+--! @details Synchronize 1 bit of data 
+
+architecture Behavioral of Reg_2clks is
+signal sreg : std_logic_vector(1 downto 0);
+
+attribute TIG : string;
+attribute IOB : string;
+attribute ASYNC_REG : string;
+attribute SHIFT_EXTRACT : string;
+attribute HBLKNM : string;
+
+attribute TIG of async_i : signal is "TRUE";
+attribute IOB of async_i : signal is "FALSE";
+attribute ASYNC_REG of sreg : signal is "TRUE";
+attribute SHIFT_EXTRACT of sreg : signal is "NO";
+attribute HBLKNM of sreg : signal is "sync_reg";
+
+begin
+
+process (clk_i)
+begin
+   if rising_edge(clk_i) then  
+     sync_o <= sreg(1);
+	  sreg <= sreg(0) & async_i;
+   end if;
+end process;
+
+end Behavioral;
+
diff --git a/components/tlu/hdl/T0_Shutter_Iface_rtl.vhd b/components/tlu/hdl/T0_Shutter_Iface_rtl.vhd
new file mode 100644
index 00000000..ef24ee2a
--- /dev/null
+++ b/components/tlu/hdl/T0_Shutter_Iface_rtl.vhd
@@ -0,0 +1,114 @@
+--! @file T0_Shutter_Iface_rtl.vhd
+--
+LIBRARY ieee;
+USE ieee.std_logic_1164.all;
+
+library unisim;
+use unisim.VComponents.all;
+
+USE work.ipbus.all;
+
+use work.ipbus_reg_types.all;
+
+--! @brief Simple module to generate T0 and shutter signals under IPBus control
+--! Similar interface to TPx3_iface_rtl.vhd
+--
+--! @details
+--! \n \n IPBus address map:
+--! \li 00 - shutter. Bit 0. Output shutter = value of bit-0
+--! \li 01 - T0 write to pulse T0.
+--
+--! @author David Cussans
+
+entity T0_Shutter_Iface is
+
+  port (
+    clk_4x_i      : in  std_logic;    --! system clock
+    clk_4x_strobe : in  std_logic;    --! strobes high for one cycle every 4 of clk_4x
+    T0_o          : out std_logic;    --! T0 signal retimed onto system clock
+    shutter_o          : out std_logic;    --! shutter signal retimed onto system clock
+
+    ipbus_clk_i            : IN     std_logic; --! IPBus system clock
+    ipbus_i                : IN     ipb_wbus;
+    ipbus_o                : OUT    ipb_rbus
+          
+    );     
+
+end entity T0_Shutter_Iface;
+
+architecture rtl of T0_Shutter_Iface is
+
+  signal s_T0 , s_T0_d1 , s_T0_d2 , s_stretch_T0_in: std_logic := '0';  -- signal after IBufDS and sampled onto clk_4x
+  signal s_stretch_T0_in_sr : std_logic_vector(2 downto 0) := "111"; --! Gets shifted out by clk_4x logic. Loaded by T0ger_i
+  signal s_T0_out_sr : std_logic_vector(2 downto 0) := "111"; --! Gets shifted out by clk_4x logic. Loaded by strobe_4x_logic
+
+  signal s_shutter , s_shutter_d1 , s_shutter_d2 : std_logic := '0';  -- signal after IBufDS and sampled onto clk_4x
+
+  signal s_T0_ipbus , s_T0_ipbus_d1 , s_T0_ipbus_d2: std_logic := '0';  -- Signals that get combined with incoming hardware signals from TPIx3 telescope
+  signal s_shutter_ipbus , s_shutter_ipbus_d1 , s_shutter_ipbus_d2: std_logic := '0';  -- Signals that get combined with incoming hardware signals from TPIx3 telescope
+                                                                             
+  signal s_ipbus_ack      : std_logic := '0';  -- used to produce a delayed IPBus ack signal
+  
+begin  -- architecture rtl
+
+  --------------------
+    ipbus_write: process (ipbus_clk_i)
+    begin  -- process ipb_clk_i
+    if rising_edge(ipbus_clk_i) then
+        s_T0_ipbus <= '0';
+        if (ipbus_i.ipb_strobe = '1' and ipbus_i.ipb_write = '1') then
+            case ipbus_i.ipb_addr(1 downto 0) is
+                when "00" => s_shutter_ipbus <= ipbus_i.ipb_wdata(0) ; -- Set IPBus shutter
+                when "01" => s_T0_ipbus <= '1';
+                when others => null;
+            end case;
+        end if;
+        s_ipbus_ack <= ipbus_i.ipb_strobe and not s_ipbus_ack;
+    end if;
+    end process ipbus_write;
+
+    ipbus_o.ipb_ack <= s_ipbus_ack;
+    ipbus_o.ipb_err <= '0';
+
+
+    ------------------
+    p_T0_retime: process (clk_4x_i , clk_4x_strobe , s_T0) is
+    begin  -- process p_T0_retime
+    if rising_edge(clk_4x_i)  then
+        -- Register IPBus clocked signals onto clk 4x. So clk4x must be faster
+        -- than ipbus_clk for this to work.
+        s_T0_ipbus_d1 <= s_T0_ipbus;
+        s_T0_ipbus_d2 <= s_T0_ipbus_d1;
+        -- Shutter is a DC level, so clock speeds don't matter.
+        s_shutter_ipbus_d1 <= s_shutter_ipbus;
+        s_shutter_ipbus_d2 <= s_shutter_ipbus_d1;
+        -- Stretch T0_i pulse to 4 clock cycles on clk4x
+        if ( s_T0_ipbus_d2 = '1' ) then
+            s_stretch_T0_in <= '1';
+            s_stretch_T0_in_sr <= "111";
+        else
+            s_stretch_T0_in <= s_stretch_T0_in_sr(0);
+            s_stretch_T0_in_sr <= '0' & s_stretch_T0_in_sr(s_stretch_T0_in_sr'left downto 1);
+        end if;
+ 
+        if (clk_4x_strobe  = '1') and ( s_stretch_T0_in = '1' ) then
+            T0_o <= '1';
+            s_T0_out_sr <= "111";
+        else
+            T0_o <= s_T0_out_sr(0);
+            s_T0_out_sr <= '0' & s_T0_out_sr(s_T0_out_sr'left downto 1);
+        end if;
+    end if;
+    end process p_T0_retime;
+    
+  -- Just retime onto the 4x clock. Probably should retime onto 1x clock.
+    p_shutter_retime: process (s_shutter , clk_4x_i) is
+    begin  -- process p_shutter_retime
+    if rising_edge(clk_4x_i)  then
+        s_shutter_d1 <= ( s_shutter_ipbus );
+        s_shutter_d2 <= s_shutter_d1;
+        shutter_o    <= s_shutter_d2;
+    end if;
+    end process p_shutter_retime;
+
+end architecture rtl;
diff --git a/components/tlu/hdl/TPx3Logic_rtl.vhd b/components/tlu/hdl/TPx3Logic_rtl.vhd
new file mode 100644
index 00000000..1e35cfac
--- /dev/null
+++ b/components/tlu/hdl/TPx3Logic_rtl.vhd
@@ -0,0 +1,177 @@
+--=============================================================================
+--! @file TPx3Logic_rtl.vhd
+--=============================================================================
+--
+-------------------------------------------------------------------------------
+-- --
+-- University of Santiago de Compostela, High Energy Physics Group.
+-- --
+------------------------------------------------------------------------------- --
+-- VHDL Architecture fmc_mTLU_lib.TPx3Logic.rtl
+--
+--! @brief Produces shutters \n
+--! IPBus address map:\n
+--
+--! @author Alvaro Dosil , alvaro.dosil@usc.es
+--
+--! @date 16:06:19 11/06/14
+--
+--! @version v0.1
+--
+--! @details
+--!
+--!
+--! <b>Dependencies:</b>\n
+--!
+--! <b>References:</b>\n
+--!
+--! <b>Modified by: Alvaro Dosil , alvaro.dosil@usc.es </b>\n
+--! Author: 
+-------------------------------------------------------------------------------
+--! \n\n<b>Last changes:</b>\n
+--! Move all IPBus stuff into ipbus_syncreg_v , which also handles clock domain
+--! crossing. 20/Feb/2014 , David Cussans
+-------------------------------------------------------------------------------
+--! @todo <next thing to do> \n
+--! <another thing to do> \n
+--
+--------------------------------------------------------------------------------
+-- 
+-- Created using using Mentor Graphics HDL Designer(TM) 2010.3 (Build 21)
+--
+LIBRARY ieee;
+USE ieee.std_logic_1164.all;
+USE ieee.numeric_std.all;
+
+USE work.ipbus.all;
+use work.ipbus_reg_types.all;
+
+ENTITY TPx3Logic IS
+	GENERIC( 
+      g_IPBUS_WIDTH         : positive := 32
+   );
+   PORT( 
+      clk_i      				: IN     std_logic;                                    -- ! Rising edge active
+		Start_T0sync_i			: IN 		std_logic;
+		T0syncLen_i				: IN 		std_logic_vector(g_IPBUS_WIDTH-1 DOWNTO 0);
+      logic_reset_i       	: IN     std_logic;                                    -- active high. Synchronous with clk_4x_logic
+      Busy_i					: IN     std_logic;
+		Veto_i					: IN     std_logic;
+		Shutter_o				: OUT 	std_logic;
+		T0sync_o 				: OUT 	std_logic
+   );
+	
+
+-- Declarations
+
+END ENTITY TPx3Logic ;
+
+--
+ARCHITECTURE rtl OF TPx3Logic IS
+
+	type state_values is (st0, st1);
+	signal pres_state, next_state: state_values;
+
+	signal s_Enable : std_logic := '0';
+	signal s_Shutter, s_Shutter_d1f, s_Shutter_d1, s_T0sync, s_T0sync_d1f : std_logic := '0';
+	signal s_Start_T0sync, s_Start_T0sync_d1, s_Start_T0sync_d2, s_Start_T0sync_d3 : std_logic;
+	signal Rst_T0sync, T0syncT : 		std_logic;   	--Load signal and flag for the T0sync
+	signal s_RunNumber : unsigned(g_IPBUS_WIDTH-1 downto 0) := (others => '0');  -- ! counters for runs
+	
+BEGIN
+
+	-----------------------------------------------------------------------------
+	-- Counters
+	-----------------------------------------------------------------------------
+	--T0sync counter
+	c_T0sync: entity work.CounterDown
+	generic map(
+		MAX_WIDTH => g_IPBUS_WIDTH
+	)
+	port map( 
+		Clk		=> clk_i,
+		Reset		=> '0',
+		Load 		=> Rst_T0sync,
+		InitVal 	=> std_logic_vector(unsigned(T0syncLen_i)-1),
+		Count		=> open,
+		Q 			=> T0syncT
+	);
+  
+  
+  -----------------------------------------------------------------------------
+  -- FSM register
+  -----------------------------------------------------------------------------
+	statereg: process(clk_i)
+	begin
+		if rising_edge(clk_i) then
+			pres_state <= next_state;  --Move to the next state
+		end if;
+	end process statereg;
+	
+	
+	-----------------------------------------------------------------------------
+	-- FSM combinational block
+	-----------------------------------------------------------------------------
+	fsm: process(pres_state, s_Start_T0sync, T0syncT)
+	begin
+		next_state<=pres_state;
+		s_T0sync	<='0';
+		Rst_T0sync <= '1';
+		
+		case pres_state is
+			when st0=>
+				if s_Start_T0sync = '1' then 
+					next_state <= st1; --Next state is "Whait for end of T0sync signal"
+				end if;
+			when st1 =>
+				Rst_T0sync <='0';
+				s_T0sync <='1';
+				if T0syncT = '1' then
+					next_state<=st0; --Next state is "Whait for end of T0-sync counter"
+				end if;
+			when others=>
+				next_state<=st0; --Next state is "Whait for T0sync start"
+		end case;
+	end process fsm;
+
+  
+	-----------------------------------------------------------------------------
+	-- Busy signals
+	-----------------------------------------------------------------------------
+	s_Enable <= not Veto_i;
+	s_Shutter <= not Busy_i and not Veto_i;
+	--Shutter_o <= s_Shutter;
+	--T0sync_o <= s_T0sync;
+  
+	
+	-----------------------------------------------------------------------------
+	-- Count runs and synchronization
+	-----------------------------------------------------------------------------
+	p_run_counter: process (clk_i )
+	begin  -- process p_run_counter
+		if rising_edge(clk_i) then
+			s_Start_T0sync_d1 <= Start_T0sync_i;
+			s_Start_T0sync_d2 <= s_Start_T0sync_d1;
+			s_Start_T0sync_d3 <= s_Start_T0sync_d2;
+			s_Start_T0sync <= s_Start_T0sync_d2 and ( not s_Start_T0sync_d3); 
+		
+			s_Shutter_d1 <= s_Shutter;
+		
+			if logic_reset_i = '1' then
+				s_RunNumber <= (others => '0');
+			elsif s_Shutter='1' and s_Shutter_d1='0' then
+				s_RunNumber <= s_RunNumber + 1;
+			end if;
+		end if;
+		-- Signals synchronous with falling edge clock
+		if falling_edge(clk_i) then
+			s_Shutter_d1f <= s_Shutter;
+			Shutter_o <= s_Shutter_d1f;
+			
+			s_T0sync_d1f <= s_T0sync;
+			T0sync_o <= s_T0sync_d1f;
+		end if;
+  end process p_run_counter;
+  
+END ARCHITECTURE rtl;
+
diff --git a/components/tlu/hdl/TPx3_iface_rtl.vhd b/components/tlu/hdl/TPx3_iface_rtl.vhd
new file mode 100644
index 00000000..f576ac1b
--- /dev/null
+++ b/components/tlu/hdl/TPx3_iface_rtl.vhd
@@ -0,0 +1,160 @@
+--! @file TPx3_iface_rtl.vhd
+--! @brief Simple module to interface AIDA TLU to LHCb TimePix3 telescope.
+--! Accepts T0 sync signal and shutter signal from telescope and re-transmits.
+--! @details
+--! IPBus address map:
+--! 00 - shutter. Bit 0. Output shutter = external shutter XOR ipbus shutter
+--! 01 - T0 write to pulse T0.
+--! @author David Cussans
+
+LIBRARY ieee;
+USE ieee.std_logic_1164.all;
+
+library unisim;
+use unisim.VComponents.all;
+
+USE work.ipbus.all;
+
+use work.ipbus_reg_types.all;
+
+
+entity TPx3_iface is
+
+  port (
+    clk_4x_i      : in  std_logic;    --! system clock
+    clk_4x_strobe : in  std_logic;    --! strobes high for one cycle every 4 of clk_4x
+    T0_p_i          : in  std_logic;  --! T0 signal from timepix telescope clk/sync system
+    T0_n_i          : in  std_logic;  --! T0 signal from timepix telescope clk/sync system
+    T0_o          : out std_logic;    --! T0 signal retimed onto system clock
+    shutter_p_i          : in  std_logic;  --! shutter signal from timepix telescope clk/sync system
+    shutter_n_i          : in  std_logic;  --! shutter signal from timepix telescope clk/sync system
+    shutter_o          : out std_logic;    --! shutter signal retimed onto system clock
+
+    ipbus_clk_i            : IN     std_logic; --! IPBus system clock
+    ipbus_i                : IN     ipb_wbus;
+    ipbus_o                : OUT    ipb_rbus
+          
+    );     
+
+end entity TPx3_iface;
+
+architecture rtl of TPx3_iface is
+
+  signal s_T0 , s_T0_d1 , s_T0_d2 , s_stretch_T0_in: std_logic := '0';  -- signal after IBufDS and sampled onto clk_4x
+  signal s_stretch_T0_in_sr : std_logic_vector(2 downto 0) := "111"; --! Gets shifted out by clk_4x logic. Loaded by T0ger_i
+  signal s_T0_out_sr : std_logic_vector(2 downto 0) := "111"; --! Gets shifted out by clk_4x logic. Loaded by strobe_4x_logic
+
+  signal s_shutter , s_shutter_d1 , s_shutter_d2 : std_logic := '0';  -- signal after IBufDS and sampled onto clk_4x
+
+  signal s_T0_ipbus , s_T0_ipbus_d1 , s_T0_ipbus_d2: std_logic := '0';  -- Signals that get combined with incoming hardware signals from TPIx3 telescope
+  signal s_shutter_ipbus , s_shutter_ipbus_d1 , s_shutter_ipbus_d2: std_logic := '0';  -- Signals that get combined with incoming hardware signals from TPIx3 telescope
+  signal s_external_signal_mask : std_logic_vector(ipbus_i.ipb_wdata'range) := ( others => '0'); --! Set bits to mask external signals : 0 to mask external T0 , set bit 1 to mask external shutter
+  signal s_maskExternalShutter , s_maskExternalT0 : std_logic := '0';  -- ! Set to 1 to mask external signals
+                                                                             
+  signal s_ipbus_ack      : std_logic := '0';  -- used to produce a delayed IPBus ack signal
+  
+begin  -- architecture rtl
+
+  --------------------
+  ipbus_write: process (ipbus_clk_i)
+  begin  -- process ipb_clk_i
+    if rising_edge(ipbus_clk_i) then
+
+      s_T0_ipbus <= '0';
+      if (ipbus_i.ipb_strobe = '1' and ipbus_i.ipb_write = '1') then
+
+        case ipbus_i.ipb_addr(1 downto 0) is
+          when "00" => s_shutter_ipbus <= ipbus_i.ipb_wdata(0) ; -- Set IPBus shutter
+          when "01" => s_T0_ipbus <= '1';
+          when "10" => s_external_signal_mask <= ipbus_i.ipb_wdata;
+          when others => null;
+        end case;
+          
+       end if;
+
+       s_ipbus_ack <= ipbus_i.ipb_strobe and not s_ipbus_ack;
+       
+    end if;
+  end process ipbus_write;
+
+  ipbus_o.ipb_ack <= s_ipbus_ack;
+  ipbus_o.ipb_err <= '0';
+
+
+    ------------------
+    
+  cmp_IBUFDS_T0 : IBUFDS
+      generic map (
+        DIFF_TERM => TRUE, -- Differential Termination 
+        IBUF_LOW_PWR => TRUE, -- Low power (TRUE) vs. performance (FALSE) setting for referenced I/O standards
+        IOSTANDARD => "LVDS_25")
+      port map (
+        O =>  s_T0,  -- Buffer output
+        I =>  T0_p_i,  -- Diff_p buffer input (connect directly to top-level port)
+        IB => T0_n_i -- Diff_n buffer input (connect directly to top-level port)
+      );
+        
+    p_T0_retime: process (clk_4x_i , clk_4x_strobe , s_T0) is
+  begin  -- process p_T0_retime
+    if rising_edge(clk_4x_i)  then
+
+      s_maskExternalShutter <= s_external_signal_mask(1);
+      s_maskExternalT0 <= s_external_signal_mask(0);
+        
+      s_T0_d1 <= s_T0;
+      s_T0_d2 <= s_T0_d1;
+
+      -- Register IPBus clocked signals onto clk 4x. So clk4x must be faster
+      -- than ipbus_clk for this to work.
+      s_T0_ipbus_d1 <= s_T0_ipbus;
+      s_T0_ipbus_d2 <= s_T0_ipbus_d1;
+
+      -- Shutter is a DC level, so clock speeds don't matter.
+      s_shutter_ipbus_d1 <= s_shutter_ipbus;
+      s_shutter_ipbus_d2 <= s_shutter_ipbus_d1;
+      
+      
+      -- Stretch T0_i pulse to 4 clock cycles on clk4x
+      if ( (( s_T0_d2 = '1' ) and ( s_maskExternalT0 = '0')) or ( s_T0_ipbus_d2 = '1' )) then
+        s_stretch_T0_in <= '1';
+        s_stretch_T0_in_sr <= "111";
+      else
+        s_stretch_T0_in <= s_stretch_T0_in_sr(0);
+        s_stretch_T0_in_sr <= '0' & s_stretch_T0_in_sr(s_stretch_T0_in_sr'left downto 1);
+      end if;
+
+      -- 
+      if (clk_4x_strobe  = '1') and ( s_stretch_T0_in = '1' ) then
+        T0_o <= '1';
+        s_T0_out_sr <= "111";
+      else
+        T0_o <= s_T0_out_sr(0);
+        s_T0_out_sr <= '0' & s_T0_out_sr(s_T0_out_sr'left downto 1);
+      end if;
+
+      
+    end if;
+  end process p_T0_retime;
+    
+  cmp_IBUFDS_shutter : IBUFDS
+      generic map (
+        DIFF_TERM => TRUE, -- Differential Termination 
+        IBUF_LOW_PWR => TRUE, -- Low power (TRUE) vs. performance (FALSE) setting for referenced I/O standards
+        IOSTANDARD => "LVDS_25")
+      port map (
+        O =>  s_shutter,  -- Buffer output
+        I =>  shutter_p_i,  -- Diff_p buffer input (connect directly to top-level port)
+        IB => shutter_n_i -- Diff_n buffer input (connect directly to top-level port)
+      );
+
+  -- Just retime onto the 4x clock. Probably should retime onto 1x clock.
+  p_shutter_retime: process (s_shutter , clk_4x_i) is
+  begin  -- process p_shutter_retime
+    if rising_edge(clk_4x_i)  then
+      s_shutter_d1 <= ( ( s_shutter and not s_maskExternalShutter ) xor s_shutter_ipbus );
+      s_shutter_d2 <= s_shutter_d1;
+      shutter_o    <= s_shutter_d2;
+    end if;
+  end process p_shutter_retime;
+
+end architecture rtl;
diff --git a/components/tlu/hdl/coincidenceLogic_rtl.vhd b/components/tlu/hdl/coincidenceLogic_rtl.vhd
new file mode 100644
index 00000000..217fa224
--- /dev/null
+++ b/components/tlu/hdl/coincidenceLogic_rtl.vhd
@@ -0,0 +1,158 @@
+--=============================================================================
+--! @file stretchPulse_rtl.vhd
+--=============================================================================
+--
+-------------------------------------------------------------------------------
+-- --
+-- University of Bristol, High Energy Physics Group.
+-- --
+------------------------------------------------------------------------------- --
+-- VHDL Architecture fmc_mTLU_lib.triggerLogic.rtl
+--
+
+LIBRARY ieee;
+USE ieee.std_logic_1164.all;
+
+-- Include UNISIM to get CFGLUT5 definition
+Library UNISIM;
+use UNISIM.vcomponents.all;
+
+--! @brief Takes a set of input pulses and produces an output pulse based on trigger
+--! pattern. Defaults to "OR" of all inputs.
+--!
+--! @details If triggers_i matches a pattern in triggerPattern then trigger_o
+--! goes high for one clock cycle of logicClk_o. Load a new pattern by taking loadPattern_i high for one cycle of configClk_i
+--!
+--! @author David Cussans
+--! @date 2014
+-------------------------------------------------------------------------------
+
+entity coincidenceLogic is
+  
+  generic (
+    g_nInputs      : positive := 4;  --! Number of trigger inputs. Must be four for this implementation
+    g_patternWidth : positive := 32);  --! Width of trigger pattern. Must be 32 in this implementation
+
+  port (
+    configClk_i      : in  std_logic;   --! Rising edge active
+    logicClk_i       : in  std_logic;   --! Rising edge active
+    triggers_i       : in  std_logic_vector(g_nInputs-1 downto 0);  --! Array of trigger inputs
+    trigger_o        : out std_logic;  --! Goes high when trigger pattern matched
+    --auxTrigger_o     : out std_logic;  --! Goes high when auxillary trigger pattern matched
+    triggerPattern_low_i : in  std_logic_vector(g_patternWidth-1 downto 0);  --! Pattern to match triggers with (lowest 32-bits)
+    triggerPattern_high_i : in  std_logic_vector(g_patternWidth-1 downto 0);  --! Pattern to match triggers with (highest 32-bits)
+    loadPatternHi_i    : in std_logic; --! Pattern (high 32 bits) is loaded when loadPatternHi goes high.
+    loadPatternLo_i    : in  std_logic);  --! Pattern (low 32 bits) is loaded when loadPatternLo goes high.
+
+end entity coincidenceLogic;
+
+architecture rtl of coincidenceLogic is
+
+  signal s_configDataSR_low , s_configEnableSR_low: std_logic_vector( triggerPattern_low_i'range ) := ( others => '0' );  --! shift reg for config data
+  signal s_configDataSR_high , s_configEnableSR_high: std_logic_vector( triggerPattern_high_i'range ) := ( others => '0' );  --! shift reg for config data
+  signal s_configBit_low, s_configBit_high, s_configEnable_low, s_configEnable_high : std_logic := '0';  --! Take high to shift in configuration data.
+  signal s_trigOut_low, s_trigOut_high, s_auxTrigOut_low, s_auxTrigOut_high : std_logic := '0';  -- registers for output data. (s_auxTrig high and low should be removed)
+  
+begin  -- architecture rtl
+
+  --assert g_nInputs /= 4 report "Wrong number of inputs in coincidence logic" severity failure;
+  --assert g_patternWidth /= 32 report "Wrong pattern width in coincidence logic" severity failure;
+
+  -- See Xilinx UG615 ( Spartan-6 Libraries guide for HDL Designs"
+  -- We now need 6 inputs in the LUT and we need to dynamically change it so we merge two 5-inputs together:
+  -- one does the low 32 bits of the address table, the other the high 32 bits.
+  LUT_low : CFGLUT5
+    generic map (
+      INIT => X"FFFEFFFE") --! Default to "OR" of all inputs (exclude case with no input at all)
+    port map (
+      CDO => open, -- Reconfiguration cascade output
+      O5 => open ,  -- 4-LUT output
+      O6 => s_trigOut_low, -- 5-LUT output
+      CDI => s_configBit_low, -- Reconfiguration data input
+      CE => s_configEnable_low, -- Reconfiguration enable input
+      CLK => configClk_i, -- Clock input
+      I0 => triggers_i(0), -- Logic data input
+      I1 => triggers_i(1), -- Logic data input
+      I2 => triggers_i(2), -- Logic data input
+      I3 => triggers_i(3), -- Logic data input
+      I4 => triggers_i(4) --! Tie high to set O5 and O6 to different functions.
+      );
+   
+   LUT_high : CFGLUT5
+    generic map (
+        INIT => X"FFFFFFFF") --! Default to "OR" of all inputs
+    port map (
+        CDO => open, -- Reconfiguration cascade output
+        O5 => open ,  -- 4-LUT output
+        O6 => s_trigOut_high, -- 5-LUT output
+        CDI => s_configBit_high, -- Reconfiguration data input
+        CE => s_configEnable_high, -- Reconfiguration enable input
+        CLK => configClk_i, -- Clock input
+        I0 => triggers_i(0), -- Logic data input
+        I1 => triggers_i(1), -- Logic data input
+        I2 => triggers_i(2), -- Logic data input
+        I3 => triggers_i(3), -- Logic data input
+        I4 => triggers_i(4) --! Tie high to set O5 and O6 to different functions.
+    );   
+
+  p_controlInitLo: process (configClk_i , triggerPattern_low_i , loadPatternLo_i) is
+  begin  -- process p_controlInit
+
+    if rising_edge(configClk_i) then
+
+      -- Control configuration
+      if ( loadPatternLo_i = '1' ) then -- Load pattern into shift register
+        s_configDataSR_low <= triggerPattern_low_i;
+        s_configEnableSR_low <= ( others => '1');
+        s_configBit_low <= '0';
+        s_configEnable_low <= '0';
+      else -- If load isn't active then shift data out.
+        s_configBit_low    <= s_configDataSR_low( s_configDataSR_low'left ); --! Shift in MSB first.
+        s_configDataSR_low <= s_configDataSR_low( s_configDataSR_low'left-1 downto 0) & '0'; --! Shift up
+                
+        s_configEnable_low <= s_configEnableSR_low ( s_configEnableSR_low'left); --! enable will stay high for as long as there is data in config data SR
+        s_configEnableSR_low <= s_configEnableSR_low( s_configEnableSR_low'left-1 downto 0) & '0'; --! Shift up
+      end if;
+
+  end if;
+  end process p_controlInitLo;
+  
+  -- Add a second control for the secondary LUT introduced when we moved to 6 inputs.
+  p_controlInitHi: process (configClk_i , triggerPattern_high_i,  loadPatternHi_i) is
+    begin  -- process p_controlInit
+  
+      if rising_edge(configClk_i) then
+  
+        -- Control configuration
+        if ( loadPatternHi_i = '1' ) then -- Load pattern into shift register
+          s_configDataSR_high <= triggerPattern_high_i;
+          s_configEnableSR_high <= ( others => '1');
+          s_configBit_high <= '0';
+          s_configEnable_high <= '0';
+        else -- If load isn't active then shift data out.
+          s_configBit_high    <= s_configDataSR_high( s_configDataSR_high'left ); --! Shift in MSB first.
+          s_configDataSR_high <= s_configDataSR_high( s_configDataSR_high'left-1 downto 0) & '0'; --! Shift up
+                  
+          s_configEnable_high <= s_configEnableSR_high ( s_configEnableSR_high'left); --! enable will stay high for as long as there is data in config data SR
+          s_configEnableSR_high <= s_configEnableSR_high( s_configEnableSR_high'left-1 downto 0) & '0'; --! Shift up
+        end if;
+  
+    end if;
+    end process p_controlInitHi;
+
+  --! Register output data
+  p_registerData: process (logicClk_i) is
+  begin  -- process p_registerData
+    if rising_edge(logicClk_i) then
+        if triggers_i(5) = '0' then -- the LUT has 5 inputs. We use a MUX to considere the 6th one (triggers_i(5)).
+            trigger_o <=  s_trigOut_low;
+            --auxTrigger_o <= s_auxTrigOut_low;
+        else
+            trigger_o <=  s_trigOut_high;
+            --auxTrigger_o <= s_auxTrigOut_high;
+        end if;
+    end if;
+  end process p_registerData;
+  
+end architecture rtl;
+
diff --git a/components/tlu/hdl/coincidenceLogic_rtl_BKP.vhd b/components/tlu/hdl/coincidenceLogic_rtl_BKP.vhd
new file mode 100644
index 00000000..32b57b74
--- /dev/null
+++ b/components/tlu/hdl/coincidenceLogic_rtl_BKP.vhd
@@ -0,0 +1,108 @@
+--=============================================================================
+--! @file stretchPulse_rtl.vhd
+--=============================================================================
+--
+-------------------------------------------------------------------------------
+-- --
+-- University of Bristol, High Energy Physics Group.
+-- --
+------------------------------------------------------------------------------- --
+-- VHDL Architecture fmc_mTLU_lib.triggerLogic.rtl
+--
+
+LIBRARY ieee;
+USE ieee.std_logic_1164.all;
+
+-- Include UNISIM to get CFGLUT5 definition
+Library UNISIM;
+use UNISIM.vcomponents.all;
+
+--! @brief Takes a set of input pulses and produces an output pulse based on trigger
+--! pattern. Defaults to "OR" of all inputs.
+--!
+--! @details If triggers_i matches a pattern in triggerPattern then trigger_o
+--! goes high for one clock cycle of logicClk_o. Load a new pattern by taking loadPattern_i high for one cycle of configClk_i
+--!
+--! @author David Cussans
+--! @date 2014
+-------------------------------------------------------------------------------
+
+entity coincidenceLogic is
+  
+  generic (
+    g_nInputs      : positive := 4;  --! Number of trigger inputs. Must be four for this implementation
+    g_patternWidth : positive := 32);  --! Width of trigger pattern. Must be 32 in this implementation
+
+  port (
+    configClk_i      : in  std_logic;   --! Rising edge active
+    logicClk_i       : in  std_logic;   --! Rising edge active
+    triggers_i       : in  std_logic_vector(g_nInputs-1 downto 0);  --! Array of trigger inputs
+    trigger_o        : out std_logic;  --! Goes high when trigger pattern matched
+    auxTrigger_o     : out std_logic;  --! Goes high when auxillary trigger pattern matched
+    triggerPattern_i : in  std_logic_vector(g_patternWidth-1 downto 0);  --! Pattern to match triggers with
+    loadPattern_i    : in  std_logic);  --! Pattern is loaded when loadPattern goes high.
+
+end entity coincidenceLogic;
+
+architecture rtl of coincidenceLogic is
+
+  signal s_configDataSR , s_configEnableSR: std_logic_vector( triggerPattern_i'range ) := ( others => '0' );  --! shift reg for config data
+  signal s_configBit , s_configEnable : std_logic := '0';  --! Take high to shift in configuration data.
+  signal s_trigOut , s_auxTrigOut : std_logic := '0';  -- registers for output data.
+  
+begin  -- architecture rtl
+
+  --assert g_nInputs /= 4 report "Wrong number of inputs in coincidence logic" severity failure;
+  --assert g_patternWidth /= 32 report "Wrong pattern width in coincidence logic" severity failure;
+
+  -- See Xilinx UG615 ( Spartan-6 Libraries guide for HDL Designs"
+  CFGLUT5_inst : CFGLUT5
+    generic map (
+      INIT => X"FFFEFFFE") --! Default to "OR" of all inputs
+    port map (
+      CDO => open, -- Reconfiguration cascade output
+      O5 => s_trigOut ,  -- 4-LUT output
+      O6 => s_auxTrigOut, -- 5-LUT output
+      CDI => s_configBit, -- Reconfiguration data input
+      CE => s_configEnable, -- Reconfiguration enable input
+      CLK => configClk_i, -- Clock input
+      I0 => triggers_i(0), -- Logic data input
+      I1 => triggers_i(1), -- Logic data input
+      I2 => triggers_i(2), -- Logic data input
+      I3 => triggers_i(3), -- Logic data input
+      I4 => '1' --! Tie high to set O5 and O6 to different functions.
+      );
+
+  p_controlInit: process (configClk_i , triggerPattern_i , loadPattern_i) is
+  begin  -- process p_controlInit
+
+    if rising_edge(configClk_i) then
+
+      -- Contol configuration
+      if ( loadPattern_i = '1' ) then -- Load pattern into shift register
+        s_configDataSR <= triggerPattern_i;
+        s_configEnableSR <= ( others => '1');
+        s_configBit <= '0';
+        s_configEnable <= '0';
+      else -- If load isn't active then shift data out.
+        s_configBit    <= s_configDataSR( s_configDataSR'left ); --! Shift in MSB first.
+        s_configDataSR <= s_configDataSR( s_configDataSR'left-1 downto 0) & '0'; --! Shift up
+        
+        s_configEnable <= s_configEnableSR ( s_configEnableSR'left); --! enable will stay high for as long as there is data in config data SR
+        s_configEnableSR <= s_configEnableSR( s_configEnableSR'left-1 downto 0) & '0'; --! Shift up
+      end if;
+
+  end if;
+  end process p_controlInit;
+
+  --! Register output data
+  p_registerData: process (logicClk_i) is
+  begin  -- process p_registerData
+    if rising_edge(logicClk_i) then
+      trigger_o <=  s_trigOut;
+      auxTrigger_o <= s_auxTrigOut;
+    end if;
+  end process p_registerData;
+  
+end architecture rtl;
+
diff --git a/components/tlu/hdl/counterDown.vhd b/components/tlu/hdl/counterDown.vhd
new file mode 100644
index 00000000..de150900
--- /dev/null
+++ b/components/tlu/hdl/counterDown.vhd
@@ -0,0 +1,50 @@
+--Counter down
+--Outputs: 	Q<='1' while counting
+--				Q<='0' if not counting
+
+
+library ieee;
+use ieee.std_logic_1164.all;
+use ieee.numeric_std.all;
+
+
+ENTITY CounterDown IS
+	GENERIC(
+		MAX_WIDTH: positive := 32
+	);
+	PORT( 
+		Clk		: in  std_logic; 
+		Reset		: in  std_logic; 
+		Load 		: in  std_logic; 
+		InitVal 	: in std_logic_vector(MAX_WIDTH-1 downto 0);
+		Count		: out Std_logic_vector(MAX_WIDTH-1 downto 0);
+		Q 			: out std_logic
+	);
+END ENTITY CounterDown;
+
+architecture rtl of CounterDown is 
+	signal cnt	: std_logic_vector(MAX_WIDTH-1 downto 0);
+	signal Qtmp	: std_logic;
+  
+begin 
+	Counter: process (Clk, Reset)
+	begin 
+		if (Reset='1') then 
+			cnt <= (others =>'0');
+		elsif rising_edge(Clk) then
+			if (Load='1') then
+				cnt <= InitVal;
+			else
+				if Qtmp='0' then
+					cnt <= std_logic_vector(unsigned(cnt) - 1);
+				end if;
+			end if;
+		end if; 
+	end process;
+      
+	Qtmp <= 	'1' when cnt=(cnt'range=>'0') else
+				'0';
+          
+	Count <= cnt;
+	Q <= Qtmp;
+end rtl;
diff --git a/components/tlu/hdl/counterWithReset_rtl.vhd b/components/tlu/hdl/counterWithReset_rtl.vhd
new file mode 100644
index 00000000..2512f986
--- /dev/null
+++ b/components/tlu/hdl/counterWithReset_rtl.vhd
@@ -0,0 +1,84 @@
+--=============================================================================
+--! @file counterWithReset_rtl.vhd
+--=============================================================================
+-------------------------------------------------------------------------------
+-- --
+-- University of Bristol, High Energy Physics Group.
+-- --
+------------------------------------------------------------------------------- --
+-- unit name: counterWithReset (counterWithReset / rtl)
+--
+--============================================================================
+--! Entity declaration for counterWithReset
+--============================================================================
+LIBRARY ieee;
+USE ieee.std_logic_1164.ALL;
+use ieee.numeric_std.all;
+
+--! @brief Simple counter with synchronous reset
+--
+--! @author David Cussans , David.Cussans@bristol.ac.uk
+--
+--! @date Feb\2012
+--
+--! @version v0.1
+--
+-------------------------------------------------------------------------------
+--! @details
+--! \n\n<b>Last changes:</b>\n
+--! 5/Mar/12  DGC Changed to use numeric_std\n
+--! 26/Feb/14 DGC Added registers to output to aid timing closure.
+--! 
+
+
+
+ENTITY counterWithReset IS
+  GENERIC (g_COUNTER_WIDTH : integer := 32; --! Number of bits
+           g_OUTPUT_REGISTERS : integer := 4 --! Number of output registers. Minumum =1. Aids timing closure.
+           );
+  PORT
+    (
+      clock_i: 	IN STD_LOGIC;  --! rising edge active clock
+      reset_i:  IN STD_LOGIC;  --! Active high. syncronous with rising clk
+      enable_i: IN STD_LOGIC;  --! counts when enable=1
+      result_o:	OUT STD_LOGIC_VECTOR ( g_COUNTER_WIDTH-1 downto 0) --! Unsigned integer output
+      
+      );
+END counterWithReset;
+
+ARCHITECTURE rtl OF counterWithReset IS
+  type t_register_array is array(natural range <>) of UNSIGNED ( g_COUNTER_WIDTH-1 downto 0) ;  -- --! Array of arrays for output register...
+  signal s_output_registers : t_register_array(g_OUTPUT_REGISTERS downto 0) := ( others => ( others => '0'));  -- --! Output registers.
+  
+BEGIN
+
+  --! Process to count up from zero when enable_i is high.
+  p_counter: PROCESS (clock_i)
+  BEGIN
+    IF rising_edge(clock_i) THEN
+      IF (reset_i = '1') THEN
+        s_output_registers(0) <= (others => '0');
+      ELSIF (enable_i='1') THEN
+        s_output_registers(0) <= s_output_registers(0) + 1;
+      END IF;
+    END IF;
+  END PROCESS p_counter;
+
+  --! Generate some output registers. Number controlled by g_OUTPUT_REGISTERS
+  generate_registers: for v_register in 1 to g_OUTPUT_REGISTERS generate
+
+    --! An individual register
+    p_outputRegister: process (clock_i)
+    begin  -- process p_outputRegister
+      if rising_edge(clock_i) then
+        s_output_registers( v_register) <=
+        s_output_registers( v_register-1);
+      end if;
+    end process p_outputRegister;
+    
+  end generate generate_registers;  -- v_register
+
+  --! Copy the (registered) result to the output 
+  result_o <= STD_LOGIC_VECTOR(s_output_registers(g_OUTPUT_REGISTERS));
+  
+END rtl;		
diff --git a/components/tlu/hdl/dut/DUTInterface_AIDA_rtl.vhd b/components/tlu/hdl/dut/DUTInterface_AIDA_rtl.vhd
new file mode 100644
index 00000000..d6d9ac80
--- /dev/null
+++ b/components/tlu/hdl/dut/DUTInterface_AIDA_rtl.vhd
@@ -0,0 +1,152 @@
+--=============================================================================
+--! @file DUTInterface_AIDA_rtl.vhd
+--=============================================================================
+--
+-------------------------------------------------------------------------------
+-- --
+-- University of Bristol, High Energy Physics Group.
+-- --
+------------------------------------------------------------------------------- --
+-- VHDL Architecture fmc_mTLU_lib.DUTInterface_AIDA.rtl
+--
+--------------------------------------------------------------------------------
+--
+LIBRARY ieee;
+USE ieee.std_logic_1164.all;
+
+--! @brief "AIDA Style" Interface to a Device Under Test (DUT) connector.
+--! factorized from original DUTInterfaces_rtl.vhd firmware.
+--!
+--! @author David Cussans , David.Cussans@bristol.ac.uk
+--!
+--! @date 1/Sept/2015
+--!
+--! @version v0.1
+--!
+--! @details
+--
+
+ENTITY DUTInterface_AIDA IS
+   GENERIC( 
+      g_IPBUS_WIDTH : positive := 32
+   );
+   PORT( 
+      clk_4x_logic_i          : IN     std_logic;
+      strobe_4x_logic_i       : IN     std_logic;      --! goes high every 4th clock cycle
+      trigger_counter_i       : IN     std_logic_vector (g_IPBUS_WIDTH-1 DOWNTO 0);  --! Number of trigger events since last reset
+      trigger_i               : IN     std_logic;      --! goes high when trigger logic issues a trigger
+      reset_or_clk_to_dut_i   : IN     std_logic;      --! Synchronization signal. Passed to DUT pins
+      shutter_to_dut_i        : IN     std_logic;      --! Goes high to indicate data-taking active. DUTs report busy unless ignore_shutter_veto  flag is set high
+      ignore_shutter_veto_i   : in     std_logic;
+      ignore_dut_busy_i       : in     std_logic;
+      dut_mask_i              : in     std_logic;      --! Set high if DUT is active.
+      busy_o                  : OUT    std_logic;      --! goes high when DUT is busy or vetoed by shutter
+      
+      -- Signals to/from DUT
+      dut_busy_i       : IN     std_logic;     --! BUSY input from DUTs
+      dut_clk_o        : OUT    std_logic;     --! clocks trigger data when in EUDET mode
+      dut_reset_or_clk_o : OUT    std_logic;     --! Either reset line or trigger
+      dut_shutter_o      : OUT    std_logic;     --! Shutter output. Output 0 (RJ45) has no shutter signal
+      dut_trigger_o      : OUT    std_logic     --! Trigger output
+
+   );
+
+-- Declarations
+
+END ENTITY DUTInterface_AIDA ;
+
+--
+ARCHITECTURE rtl OF DUTInterface_AIDA IS
+
+  signal s_strobe_4x_logic_d1 : std_logic;
+  signal s_dut_clk : std_logic := '0';  -- Clock to be sent to DUT connectors ( before final register )
+  signal s_dut_clk_sr : std_logic_vector(2 downto 0) := "001"; --! Gets shifted out by clk_4x logic. Loaded by strobe_4x_logic
+  signal s_stretch_trig_in : std_logic := '0';  -- ! stretched version of trigger_i 
+  signal s_stretch_trig_in_sr : std_logic_vector(2 downto 0) := "111"; --! Gets shifted out by clk_4x logic. Loaded by trigger_i
+  signal s_trigger_out : std_logic := '0';  -- ! trigger shifted to start on strobe_4x_logic
+
+  -- Set length of output trigger here ( output length = length of this vector + 1 ) 
+  signal s_trigger_out_sr : std_logic_vector(2 downto 0) := ( others => '1'); --! Gets shifted out by clk_4x logic. Loaded by strobe_4x_logic.
+  
+                                                               
+BEGIN
+
+     
+  -- Copy reset/clk signal straight through
+  dut_reset_or_clk_o <= reset_or_clk_to_dut_i;
+
+  dut_shutter_o <= shutter_to_dut_i;
+      
+  -- purpose: generates a clock from 4x clock and strobe ( high once every 4 cycles )
+  -- should produce 11001100... etc. ie. 40MHz clock from 160MHz clock
+  -- type   : combinational
+  -- inputs : clk_4x_logic_i , strobe_4x_i
+  -- outputs: s_dut_clk
+  p_dut_clk_gen: process (clk_4x_logic_i , strobe_4x_logic_i) is
+  begin  -- process p_dut_clk_gen
+    if rising_edge(clk_4x_logic_i) then
+      if (strobe_4x_logic_i = '1') then
+        s_dut_clk <= '1';
+        s_dut_clk_sr <= "001";
+      else
+        s_dut_clk <= s_dut_clk_sr(0);
+        s_dut_clk_sr <= '0' & s_dut_clk_sr(s_dut_clk_sr'left downto 1);          
+      end if;
+    end if;
+  end process p_dut_clk_gen;
+
+  -- purpose: re-times a single cycle pulse on trigger on clk_4x_logic onto clk_logic 
+  -- type   : combinational
+  -- inputs : clk_4x_logic_i , strobe_4x_logic_i , trigger_i
+  -- outputs: s_premask_trigger_to_dut
+  p_dut_trig_retime: process (clk_4x_logic_i , strobe_4x_logic_i , trigger_i) is
+  begin  -- process p_dut_trig_retime
+    if rising_edge(clk_4x_logic_i)  then
+
+      -- Stretch trigger_i pulse to 4 clock cycles on clk4x
+      if trigger_i = '1' then
+        s_stretch_trig_in <= '1';
+        s_stretch_trig_in_sr <= ( others => '1' );
+      else
+        s_stretch_trig_in <= s_stretch_trig_in_sr(0);
+        s_stretch_trig_in_sr <= '0' & s_stretch_trig_in_sr(s_stretch_trig_in_sr'left downto 1);
+      end if;
+
+      -- 
+      if (strobe_4x_logic_i  = '1') and ( s_stretch_trig_in = '1' ) then
+        s_trigger_out <= '1';
+        s_trigger_out_sr <= ( others => '1' );
+      else
+        s_trigger_out <= s_trigger_out_sr(0);
+        s_trigger_out_sr <= '0' & s_trigger_out_sr(s_trigger_out_sr'left downto 1);
+      end if;
+      
+    end if;
+  end process p_dut_trig_retime;
+
+    
+  -- purpose: register for internal signals and output signals
+  -- type   : combinational
+  -- inputs : clk_4x_logic_i , strobe_4x_logic_i , s_veto
+  -- outputs: busy_o
+  register_signals: process (clk_4x_logic_i)-- , strobe_4x_logic_i , s_veto)
+  begin  -- process register_signals
+    if rising_edge(clk_4x_logic_i) then
+
+      s_strobe_4x_logic_d1 <= strobe_4x_logic_i;
+
+      --busy_o <= ((not ignore_shutter_veto_i ) and (not shutter_to_dut_i)) or
+      --          ((dut_busy_i and DUT_mask_i ) and (not ignore_dut_busy_i) );
+                
+      busy_o <= ((not ignore_shutter_veto_i ) and (not shutter_to_dut_i)) or
+                ( (dut_busy_i and DUT_mask_i )  );
+
+      dut_clk_o <= s_dut_clk ;
+      dut_trigger_o <= DUT_mask_i and s_trigger_out;
+      
+    end if;
+  end process register_signals;
+
+  
+END ARCHITECTURE rtl;
+
diff --git a/components/tlu/hdl/dut/DUTInterface_EUDET_rtl.vhd b/components/tlu/hdl/dut/DUTInterface_EUDET_rtl.vhd
new file mode 100644
index 00000000..cd56e09b
--- /dev/null
+++ b/components/tlu/hdl/dut/DUTInterface_EUDET_rtl.vhd
@@ -0,0 +1,277 @@
+--! @file
+-------------------------------------------------------------------------------
+--
+--
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+
+--! @brief "EUDET style" interfaces to a DUT connection. Outputs TRIGGER and receives DUT_CLK and BUSY
+--! lines. Adapted from Trigger_Signal_Controller from EUDET TLU firmware.
+--!
+--! @author David.Cussans@bristol.ac.uk
+--! @date 1/Sept/2015
+------------------------------------------------------------------------------------
+entity DUTInterface_EUDET is
+  GENERIC( 
+    g_TRIGGER_DATA_WIDTH : positive := 32 -- was32
+   );
+  port (
+    rst_i : in std_logic;                --! asynchronous reset. Active high
+    busy_o : out std_logic;             --! low if FSM is in IDLE state, high otherwise
+    fsm_state_value_o : out std_logic_vector(3 downto 0);  --! detailed status of FSM.
+    trigger_i : in std_logic;        --! Trigger retimed onto system clock.active high. 
+    trigger_counter_i : in std_logic_vector(g_TRIGGER_DATA_WIDTH-1 downto 0);  --! event number
+    system_clk_i : in std_logic;          --! rising edge active clock from TLU
+    reset_or_clk_to_dut_i   : IN     std_logic;  --! Synchronization signal. Passed to DUT pins
+    shutter_to_dut_i        : IN     std_logic;  --! Goes high to indicate data-taking active. DUTs report busy unless ignoreShutterVeto flag set high
+    ignore_shutter_veto_i        : in     std_logic;
+    enable_dut_veto_i : in std_logic;      --! If high: if DUT raises dut_busy_i, then  busy_o is raised
+    -- Connections to DUT:
+    dut_clk_i : in std_logic;             --! rising edge active clock from DUT
+    dut_busy_i : in std_logic;            --! from DUT
+    dut_shutter_o      : OUT    std_logic;     --! Shutter output.
+    dut_trigger_o : out std_logic    --! trigger to DUT
+    );
+end DUTInterface_EUDET;
+
+architecture rtl of DUTInterface_EUDET is
+
+-----------------------------------------------------------------------------
+-- Declarations for state machine
+  type state_type is (IDLE , WAIT_FOR_BUSY_HIGH , TRIGGER_DEGLITCH_DELAY1 ,
+                      TRIGGER_DEGLITCH_DELAY2 , WAIT_FOR_BUSY_LOW 
+                     , DUT_INITIATED_VETO );
+--                      );
+  signal state , next_state : state_type;
+
+  -- Xilinx Voodoo for state machine
+  attribute SAFE_IMPLEMENTATION : string;
+  attribute SAFE_IMPLEMENTATION of state : signal is "yes";
+  -- End of Xilinx Voodoo
+
+-----------------------------------------------------------------------------
+
+--  signal internal_clk : std_logic;
+  signal serial_trig_data : std_logic;
+  signal trig_shift_reg : std_logic_vector(g_TRIGGER_DATA_WIDTH-1 downto 0);  
+                                        -- shift register storing parallel trigger data
+--  signal d1_output  :  std_logic;
+--  signal d2_output  :  std_logic;
+  signal dut_rising_edge  :  std_logic;
+  signal shift_reg_ce  :  std_logic;
+
+  signal dut_busy_r1 , dut_busy_r2 , dut_clk_r1 , dut_clk_r2 : std_logic;  -- ! registered values
+  signal trigger_counter_copy : std_logic_vector(g_TRIGGER_DATA_WIDTH-1 downto 0);  --! registered copy of event number
+  
+begin  -- rtl
+
+
+  dut_shutter_o <= shutter_to_dut_i ; -- for now just pass through.
+  
+  -- purpose: suppress meta-stability by registering input signals.
+  -- type   : combinational
+  -- inputs : dut_busy_r1 , dut_busy_r2 , dut_clk_r1 , dut_clk_r2
+  -- outputs: dut_busy_r2 , dut_clk_r2
+  register_signals: process ( dut_busy_r1 , dut_clk_r1 , system_clk_i )
+  begin  -- process register_signals
+    if rising_edge(system_clk_i) then
+
+      dut_busy_r2 <= dut_busy_r1 ;
+      dut_clk_r2 <= dut_clk_r1;
+      dut_busy_r1 <= dut_busy_i ;
+      dut_clk_r1 <= dut_clk_i;
+      
+    end if;
+  end process register_signals;
+
+
+  
+  rising_edge_pulse: entity work.single_pulse
+    port map (
+      level => dut_clk_i,
+      clk   => system_clk_i,
+      pulse => dut_rising_edge);
+
+  
+-- look for the rising edge of DUT clock and enable CE for one cycle.
+  -- I have a nasty suspicion that meta-stability issues may make this
+  -- go horribly wrong .
+-- Need to add timing constraint that shift_reg_ce must arrive before clock at trig_data_driver
+-- also WAIT_FOR_BUSY_LOW must not mess things up.
+  clk_enable_select: process (state, dut_rising_edge)
+begin  -- process
+  if (state=WAIT_FOR_BUSY_LOW) then
+    shift_reg_ce <= dut_rising_edge;
+  else
+    shift_reg_ce <= '0';
+  end if;
+end process;
+
+  
+   
+  
+  -- purpose: controls the serial_trig_data line
+  -- type   : combinational
+  -- inputs : system_clk_i , trigger_counter_i
+  -- outputs: serial_trig_data
+  trig_data_driver: process (system_clk_i , trigger_counter_copy , shift_reg_ce , trig_shift_reg , state)
+  begin
+    
+    if rising_edge( system_clk_i ) then
+
+      -- if busy is high in response to a trigger shift data out of
+      -- register on rising edge of DUT clock . This is done by having a slow
+      -- DUT clock and setting shift_reg_ce for one cycle of system_clk_i when
+      -- the DUT clock rising edge comes by.
+      if (shift_reg_ce ='1' ) then
+        trig_shift_reg <= '0' & trig_shift_reg(g_TRIGGER_DATA_WIDTH-1 downto 1);
+        serial_trig_data <= trig_shift_reg(0);
+
+      -- otherwise load shift register if we have just had a trigger.
+      elsif (state = WAIT_FOR_BUSY_HIGH ) then        
+	-- only clock out bottom 15 bits of data. 
+        -- (replace fixed width with a mask at some stage ?)
+	trig_shift_reg <=  "00000000000000000" & trigger_counter_copy(14 downto 0);
+        serial_trig_data <= '0';
+      end if;
+
+    end if;
+    
+  end process trig_data_driver;
+
+
+  -- purpose: Determine the next state
+  -- type   : combinational
+  -- inputs : state,Dut_Busy_r2, trigger_i
+  state_logic: process (state,  trigger_i ,  enable_dut_veto_i , dut_clk_r2, dut_busy_r2 )
+  begin  -- process state_logic
+    case state is
+	 
+      when IDLE =>
+        if ( trigger_i = '1') then  -- respond to trigger going high
+          next_state <= WAIT_FOR_BUSY_HIGH;  -- wait for DUT to respond to busy
+          trigger_counter_copy <= trigger_counter_i; -- register the trigger number to shift it out
+
+        elsif ( (dut_clk_r2 = '1') and (enable_dut_veto_i = '1') ) then      -- If DUT asserts DUT_CLK_I then veto triggers
+          next_state <= DUT_INITIATED_VETO;          
+
+        else          
+          next_state <= IDLE;
+        end if;
+
+      when WAIT_FOR_BUSY_HIGH =>
+        if (DUT_Busy_r2 = '1') then
+          next_state <= TRIGGER_DEGLITCH_DELAY1;
+        else
+          next_state <= WAIT_FOR_BUSY_HIGH;
+        end if;
+
+        -- put in a pause to supress glitch in output trigger
+        -- this is an inelegant (to say the least ) way of doing it.
+      when TRIGGER_DEGLITCH_DELAY1 =>
+          next_state <= TRIGGER_DEGLITCH_DELAY2;
+
+      -- delay for two clock cycles.
+      when TRIGGER_DEGLITCH_DELAY2 =>
+        next_state <= WAIT_FOR_BUSY_LOW;
+
+
+
+      when WAIT_FOR_BUSY_LOW =>
+        if (DUT_Busy_r2 = '1')  then
+          next_state <= WAIT_FOR_BUSY_LOW;
+        else
+          next_state <= IDLE;
+        end if;        
+
+      when DUT_INITIATED_VETO =>
+        if (( dut_clk_r2 = '0' ) or ( enable_dut_veto_i = '0')) then
+          next_state <= IDLE;
+        else
+          next_state <= DUT_INITIATED_VETO;
+        end if;
+        
+    end case;
+  end process state_logic;
+
+  -- determine clock select and trigger_mux from FSM state
+
+  
+  -- purpose: Determines the state of the dut_trigger_o output based on the state of the FSM
+  -- type   : combinational
+  -- inputs : state
+  -- outputs: dut_trigger_o
+  output_logic: process (state,serial_trig_data)
+  begin  -- process output_logic
+    if ( state = IDLE ) then
+      -- waiting for external trigger to arrive...
+      dut_trigger_o <= '0';
+    elsif ((state = WAIT_FOR_BUSY_HIGH) or ( state=TRIGGER_DEGLITCH_DELAY1) or (state=TRIGGER_DEGLITCH_DELAY2) ) then
+      -- wait until the BUSY line goes high, then continue to hold TRIGGER high for two clock cycles.
+      dut_trigger_o <= '1';
+    elsif (state = WAIT_FOR_BUSY_LOW) then
+      -- if BUSY is high then connect TRIGGER to serial trigger number register.
+      dut_trigger_o <= serial_trig_data;
+    else
+      dut_trigger_o <= '0';
+    end if;
+  end process output_logic;
+
+    -- purpose: Register that holds the current state of the FSM
+  -- type   : combinational
+  -- inputs : system_clk_i , rst_i
+  -- outputs: state
+  state_register: process (system_clk_i , rst_i)
+  begin  -- process state_register
+    if (rst_i = '1') then
+      state <= IDLE;
+    elsif rising_edge(system_clk_i) then
+      state <= next_state;
+    end if;
+  end process state_register;
+
+
+  -- purpose: sets the value of clock_select based on FSM state
+  -- type   : combinational
+  -- inputs : state
+  -- outputs: clock_select , trigger_muxsel , fsm_state
+  set_busy: process (system_clk_i , state)
+  begin  -- process set_muxsel
+    if rising_edge(system_clk_i) then
+          if (state = IDLE) then
+            busy_o <= '0';
+          else
+            busy_o <= '1';
+          end if;
+    end if;
+ end process set_busy;
+  
+  -- purpose: Sets the fsm_state_value_o vector to a number representing the current state
+  -- type   : combinational
+  -- inputs : system_clk_i , state
+  -- outputs: fsm_state_value_o
+  store_state: process (system_clk_i , state)
+  begin  -- process store_state
+    case state is
+      when IDLE =>
+        fsm_state_value_o <= "0000";
+      when WAIT_FOR_BUSY_HIGH =>
+        fsm_state_value_o <= "0001";
+      when TRIGGER_DEGLITCH_DELAY1 =>
+        fsm_state_value_o <= "0010";
+      when TRIGGER_DEGLITCH_DELAY2 =>
+        fsm_state_value_o <= "0011";
+      when WAIT_FOR_BUSY_LOW =>
+        fsm_state_value_o <= "0100";
+      when DUT_INITIATED_VETO =>
+        fsm_state_value_o <= "0101";
+      when others =>
+        fsm_state_value_o <= "1111";
+    end case;
+  end process store_state;
+
+
+
+  end rtl;
+
diff --git a/components/tlu/hdl/dut/DUTInterfaces_rtl.vhd b/components/tlu/hdl/dut/DUTInterfaces_rtl.vhd
new file mode 100644
index 00000000..ba5d800c
--- /dev/null
+++ b/components/tlu/hdl/dut/DUTInterfaces_rtl.vhd
@@ -0,0 +1,358 @@
+--=============================================================================
+--! @file DUTInterfaces_rtl.vhd
+--=============================================================================
+--
+-------------------------------------------------------------------------------
+-- --
+-- University of Bristol, High Energy Physics Group.
+-- --
+------------------------------------------------------------------------------- --
+-- VHDL Architecture fmc_mTLU_lib.DUTInterfaces.rtl
+--
+--------------------------------------------------------------------------------
+-- 
+-- Created using using Mentor Graphics HDL Designer(TM) 2010.3 (Build 21)
+--
+-- hds interface_start
+LIBRARY ieee;
+USE ieee.std_logic_1164.all;
+USE ieee.numeric_std.all;
+
+USE work.ipbus.all;
+use work.ipbus_reg_types.all;
+
+library unisim;
+use unisim.VComponents.all;
+
+--! @brief Interfaces to Device Under Test (DUT) connectors.
+--!
+--! @author David Cussans , David.Cussans@bristol.ac.uk
+--!
+--! @date 15:09:50 11/09/12
+--!
+--! @version v0.1
+--!
+--! @details
+--! \n\n IPBUS Address map:
+--! \n (Decodes 4 bits)
+--! \li 0x00000000 - DUT mask(write). 1 = active , 0 = inactive. Inactive DUT don't contribute to BUSY. One bit per DUT XXXXXXXXXXXXXXXXXXXXXXBA9876543210
+--! \li 0x00000001 - Ignore DUT busy. 1 = ignore BUSY from this connector
+--! \li 0x00000002 - Ignore shutter veto. 0 = raising shutter vetos triggers.
+--! \li 0x00000003 - DUT interface mode, two bits per DUT. Up to 12 inputs  XXXXXXXXBBAA99887766554433221100 mode: 0 = EUDET mode , 1 = synchronous/AIDA ( LHC / Timepix ) , 2,3=reserved
+--! \li 0x00000004 - DUT mode modifier: XXXXXXXXBBAA99887766554433221100 in EUDET mode: 0 = standard trigger/busy mode, 1 = raising BUSY outside handshake vetoes triggers
+--! \li 0x00000008 - DUT mask ( read )
+--! \li 0x0000000D - EUDET interface FSM status. Packed 4 bits per i/face ( read )
+--!
+--!
+--! <b>Modified by:</b>\n
+--! -----------------------------------------------------------------------------
+--! \n\n<b>Last changes:</b>\n
+-------------------------------------------------------------------------------
+-- todo  Indicate if the DUT works under AIDA/EUDET style
+--
+ENTITY DUTInterfaces IS
+   GENERIC( 
+      g_NUM_DUTS    : positive := 3;
+      g_IPBUS_WIDTH : positive := 32
+   );
+   PORT( 
+      clk_4x_logic_i          : IN     std_logic;
+      strobe_4x_logic_i       : IN     std_logic;                                    --! goes high every 4th clock cycle
+      trigger_counter_i       : IN     std_logic_vector (g_IPBUS_WIDTH-1 DOWNTO 0);  --! Number of trigger events since last reset
+      trigger_i               : IN     std_logic;                                    --! goes high when trigger logic issues a trigger
+      reset_or_clk_to_dut_i   : IN     std_logic;                                    --! Synchronization signal. Passed to DUT pins
+      shutter_to_dut_i        : IN     std_logic;                                    --! Goes high to indicate data-taking active. DUTs report busy unless ignoreShutterVeto IPBus flag is set high
+      -- IPBus signals.
+      ipbus_clk_i             : IN     std_logic;
+      ipbus_i                 : IN     ipb_wbus;                                     --! Signals from IPBus core to slave
+      ipbus_reset_i           : IN     std_logic;
+      ipbus_o                 : OUT    ipb_rbus;                                     --! signals from slave to IPBus core
+      -- Signals to/from DUT
+      busy_from_dut       : IN     std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);     --! BUSY input from DUTs (single ended)
+      busy_to_dut       : OUT     std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);     --! BUSY input to DUTs (single ended)
+      clk_from_dut  : IN std_logic_vector(g_NUM_DUTS-1 DOWNTO 0); --new signal for TLU, replace differential I/O
+      clk_to_dut : OUT std_logic_vector(g_NUM_DUTS-1 DOWNTO 0); --new signal for TLU, replace differential I/O
+      trigger_to_dut : OUT    std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);     --! Trigger output
+      
+      --clk_to_dut_n_io         : INOUT  std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);     --! clocks trigger data when in EUDET mode
+      --clk_to_dut_p_io         : INOUT  std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);     --! clocks trigger data when in EUDET mode
+      --reset_or_clk_to_dut_n_o : OUT    std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);     --! Either reset line or trigger
+      --reset_or_clk_to_dut_p_o : OUT    std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);     --! Either reset line or trigger
+      reset_to_dut: OUT    std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);     --! Replaces reset_or_clk_to_dut
+      --trigger_to_dut_n_o      : OUT    std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);     --! Trigger output
+      --trigger_to_dut_p_o      : OUT    std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);     --! Trigger output
+      --shutter_to_dut_n_o      : OUT    std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);     --! Shutter output. Output 0 (RJ45) has no shutter signal
+      --shutter_to_dut_p_o      : OUT    std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);     --! Shutter output
+      shutter_to_dut      : OUT    std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);     --! Shutter output
+      veto_o                  : OUT    std_logic                                     --! goes high when one or more DUT are busy or vetoed by shutter
+   );
+
+-- Declarations
+
+END ENTITY DUTInterfaces ;
+-- hds interface_end
+
+--
+ARCHITECTURE rtl OF DUTInterfaces IS
+
+  signal s_intermediate_busy_or : std_logic_vector(g_NUM_DUTS downto 0);  -- OR tree
+
+
+  signal s_clk_to_DUT , s_busy_from_dut , s_dut_veto , s_reset_or_clk_to_dut , s_trigger_to_dut , s_shutter_to_dut : std_logic_vector(g_NUM_DUTS-1 downto 0) := (others => '0');
+  signal s_clk_from_dut_eudet , s_busy_from_dut_eudet , s_dut_veto_eudet , s_reset_or_clk_to_dut_eudet , s_trigger_to_dut_eudet , s_shutter_to_dut_eudet : std_logic_vector(g_NUM_DUTS-1 downto 0) := (others => '0');
+  signal s_clk_to_DUT_AIDA , s_busy_from_dut_aida , s_dut_veto_aida , s_reset_or_clk_to_dut_aida , s_trigger_to_dut_aida , s_shutter_to_dut_aida : std_logic_vector(g_NUM_DUTS-1 downto 0) := (others => '0');
+  signal s_DUT_mask : std_logic_vector(g_NUM_DUTS-1 downto 0) := (others => '0');   	--! Mask for the DUTs used. 1 = active
+  signal s_dut_clk_is_output : std_logic_vector(g_NUM_DUTS-1 downto 0) := (others => '1');  --! Set low to enable transmission of clock from TLU to DUT
+
+  constant c_NUM_EUDET_FSM_BITS : positive := 4;
+  signal s_dut_fsm_status_eudet : std_logic_vector((c_NUM_EUDET_FSM_BITS*g_NUM_DUTS)-1 downto 0) ; --! Stores status from EUDET interface FSM. Can only support up to 32/4 = 8 DUT interfaces, not 12...
+
+  signal s_DUT_ignore_busy : std_logic_vector(g_NUM_DUTS-1 downto 0) := (others => '0');  --! set bit to 1 for BUSY to be ignored.
+  signal s_DUT_interface_mode : std_logic_vector((2*g_NUM_DUTS)-1 downto 0) := (others => '1'); --! sets AIDA/EUDET/whatever interface.
+  signal s_DUT_aida_eudet_mode : std_logic_vector(g_NUM_DUTS-1 downto 0) := (others => '1');  --! set bit to 1 for AIDA mode, 0 for EUDET
+  signal s_dut_enable_veto_eudet : std_logic_vector(g_NUM_DUTS-1 downto 0) := (others => '1'); --! set bit high to allow asynchronous veto using DUT_CLK when in EUDET mode
+
+  signal s_DUT_interface_mode_modifier : std_logic_vector((2*g_NUM_DUTS)-1 downto 0) := (others => '1');  
+  signal s_IgnoreShutterVeto : std_logic := '0';  -- --! When high the shutter won't veto triggers when low.
+  
+  signal s_SPILL_delay : std_logic_vector(31 downto 0) := (others => '0');
+  signal s_SPILL_wait : std_logic_vector(31 downto 0) := (others => '0');
+  signal s_SPILL_width : std_logic_vector(31 downto 0) := (others => '0');
+
+  
+  -- Signal for IPBus
+  constant c_N_CTRL : positive := 9;
+  constant c_N_STAT : positive := 9;
+  signal s_status_to_ipbus, s_sync_status_to_ipbus : ipb_reg_v(c_N_STAT-1 downto 0);
+  signal s_control_from_ipbus,s_sync_control_from_ipbus : ipb_reg_v(c_N_CTRL-1 downto 0);
+                                                               
+BEGIN
+
+  
+  -----------------------------------------------------------------------------
+  -- IPBus interface 
+  -----------------------------------------------------------------------------
+  ipbus_registers: entity work.ipbus_ctrlreg_v
+    generic map(
+      N_CTRL => c_N_CTRL,
+      N_STAT => c_N_STAT
+      )
+    port map(
+      clk => ipbus_clk_i,
+      reset=> '0',--ipbus_reset_i ,
+      ipbus_in=>  ipbus_i,
+      ipbus_out=> ipbus_o,
+      d=>  s_sync_status_to_ipbus,
+      q=>  s_control_from_ipbus,
+      stb=>  open
+      );
+
+  -- Synchronize registers from logic clock to ipbus.
+    sync_status: entity work.synchronizeRegisters
+    generic map (
+      g_NUM_REGISTERS => c_N_STAT )
+    port map (
+      clk_input_i => clk_4x_logic_i,
+      data_i      =>  s_status_to_ipbus,
+      data_o      => s_sync_status_to_ipbus,
+      clk_output_i => ipbus_clk_i);
+
+    -- Synchronize registers from logic clock to ipbus.
+    sync_ctrl: entity work.synchronizeRegisters
+    generic map (
+      g_NUM_REGISTERS => c_N_CTRL )
+    port map (
+      clk_input_i => ipbus_clk_i,
+      data_i      =>  s_control_from_ipbus,
+      data_o      => s_sync_control_from_ipbus,
+      clk_output_i => clk_4x_logic_i);
+
+  -- Map the control registers
+  s_DUT_mask                    <= s_sync_control_from_ipbus(0)(g_NUM_DUTS-1 downto 0);
+  s_DUT_ignore_busy             <= s_sync_control_from_ipbus(1)(g_NUM_DUTS-1 downto 0);
+  s_IgnoreShutterVeto           <= s_sync_control_from_ipbus(2)(0);
+  s_DUT_interface_mode          <= s_sync_control_from_ipbus(3)((2*g_NUM_DUTS)-1 downto 0);
+  s_DUT_interface_mode_modifier <= s_sync_control_from_ipbus(4)((2*g_NUM_DUTS)-1 downto 0);
+  
+  
+    -- Map the status registers
+  s_status_to_ipbus(0) <= std_logic_vector(to_unsigned(0,g_IPBUS_WIDTH-g_NUM_DUTS)) & s_DUT_mask;
+  s_status_to_ipbus(1) <= std_logic_vector(to_unsigned(0,g_IPBUS_WIDTH-g_NUM_DUTS)) & s_DUT_ignore_busy;
+  s_status_to_ipbus(2) <= std_logic_vector(to_unsigned(0,g_IPBUS_WIDTH-1)) & s_IgnoreShutterVeto;
+  s_status_to_ipbus(3) <= std_logic_vector(to_unsigned(0,g_IPBUS_WIDTH-(2*g_NUM_DUTS))) & s_DUT_interface_mode;
+  s_status_to_ipbus(4) <= std_logic_vector(to_unsigned(0,g_IPBUS_WIDTH-(2*g_NUM_DUTS))) & s_DUT_interface_mode_modifier;
+  s_status_to_ipbus(5) <= std_logic_vector(to_unsigned(0,g_IPBUS_WIDTH-( c_NUM_EUDET_FSM_BITS*g_NUM_DUTS))) & s_dut_fsm_status_eudet ;
+  
+  
+  ------------------------------------------------------------------------------
+  -- Instantiate BUFIODS  
+  ------------------------------------------------------------------------------
+  
+  -- Loop through *all* DUTs ( including RJ45 )
+  dut_clk_busy_trig_rst_io: for dut in 0 to g_NUM_DUTS-1 generate
+
+------------------------------------------------------------------        
+--    clk_IOBUFDS_inst : IOBUFDS
+--      generic map (
+--        IOSTANDARD => "BLVDS_25")
+--      port map (
+--        O => s_clk_from_dut_eudet(dut), --! Clock *from* DUT
+--        IO => clk_to_dut_p_io(dut),  --! Diff_p dut clock I/O (connect directly to top-level port)
+--        IOB => clk_to_dut_n_io(dut), --! Diff_n dut clock I/O (connect directly to top-level port)
+--        I => s_clk_to_dut_aida(dut), --! Clock generated by TLU to DUT
+--        T => s_dut_clk_is_output(dut) --! Set *low* to enable transmission of clock from TLU to DUT
+--        );
+    
+        clk_to_dut(dut) <= s_clk_to_dut_aida(dut); -- do we need to disable this using T? No, the TLU now has enable signals.
+        s_clk_from_dut_eudet(dut) <= clk_from_dut(dut);
+        
+------------------------------------------------------------------        
+        -- Now the signals are single ended: remove IBUFDS and use IBUF
+--    busy_IBUFDS_inst : IBUFDS
+--      generic map (
+--        DIFF_TERM => TRUE, -- Differential Termination 
+--        IBUF_LOW_PWR => TRUE, -- Low power (TRUE) vs. performance (FALSE) setting for referenced I/O standards
+--        IOSTANDARD => "LVDS_25")
+--      port map (
+--        O => s_busy_from_dut(dut),  -- Buffer output
+--        I => busy_from_dut_p_i(dut),  -- Diff_p buffer input (connect directly to top-level port)
+--        IB => busy_from_dut_n_i(dut) -- Diff_n buffer input (connect directly to top-level port)
+--      );
+
+--    busy_IBUF_inst : IBUF
+--    generic map(
+--        IBUF_LOW_PWR => TRUE,
+--        IOSTANDARD => "DEFAULT"
+--    )
+--    port map(
+--        O => s_busy_from_dut(dut),
+--        I => busy_from_dut(dut)
+--    );
+    s_busy_from_dut(dut) <= busy_from_dut(dut) ;
+------------------------------------------------------------------        
+   
+--    trig_OBUFDS_inst : OBUFDS
+--      generic map (
+--        IOSTANDARD => "LVDS_25")
+--      port map (
+--        O =>  trigger_to_dut_p_o(dut),     						-- Diff_p output (connect directly to top-level port)
+--        OB => trigger_to_dut_n_o(dut),   							-- Diff_n output (connect directly to top-level port)
+--        I =>  s_trigger_to_dut(dut)     -- Buffer input 
+--      );
+
+    trigger_to_dut(dut) <= s_trigger_to_dut(dut);
+------------------------------------------------------------------        
+     
+--    clk_rst_OBUFDS_inst : OBUFDS
+--      generic map (
+--        IOSTANDARD => "LVDS_25")
+--      port map (
+--        O =>  reset_or_clk_to_dut_p_o(dut),    							-- Diff_p output (connect directly to top-level port)
+--        OB => reset_or_clk_to_dut_n_o(dut),   							-- Diff_n output (connect directly to top-level port)
+--        I =>  s_reset_or_clk_to_dut(dut) 	--s_reset_or_clk_to_dut(dut) and s_DUT_mask(dut)     -- Buffer input 
+--      );
+	
+	reset_to_dut(dut) <= s_reset_or_clk_to_dut(dut) and s_DUT_mask(dut); 
+		 
+  end generate dut_clk_busy_trig_rst_io;
+  
+  -- Loop through DUTs 
+  dut_shutter_io: for dut in 0 to g_NUM_DUTS-1 generate
+
+--    shutter_OBUFDS_inst : OBUFDS
+--      generic map (
+--        IOSTANDARD => "LVDS_25")
+--      port map (
+--        O =>  shutter_to_dut_p_o(dut), -- Diff_p output (connect directly to top-level port)
+--        OB => shutter_to_dut_n_o(dut), -- Diff_n output (connect directly to top-level port)
+--        I =>  s_shutter_to_dut(dut) 	
+--        );
+        
+    shutter_to_dut(dut) <= s_shutter_to_dut(dut) ;	  
+  end generate dut_shutter_io;
+
+
+  ------------------------------------------------------------------------------
+  -- Instantiate interfaces to DUTs  
+  ------------------------------------------------------------------------------
+  dut_interfaces: for dut in 0 to g_NUM_DUTS-1 generate
+
+    --! AIDA style interface
+    aida_dut_interface: ENTITY work.DUTInterface_AIDA
+      generic map (
+        g_IPBUS_WIDTH => g_IPBUS_WIDTH
+        )
+      PORT map ( 
+        clk_4x_logic_i          => clk_4x_logic_i ,
+        strobe_4x_logic_i       => strobe_4x_logic_i ,
+        trigger_counter_i       => trigger_counter_i , 
+        trigger_i               => trigger_i , 
+        reset_or_clk_to_dut_i   => reset_or_clk_to_dut_i,
+        shutter_to_dut_i        => shutter_to_dut_i ,
+        ignore_shutter_veto_i   => s_IgnoreShutterVeto ,
+        ignore_dut_busy_i       => s_DUT_ignore_busy(dut),
+        dut_mask_i              => s_DUT_mask(dut),
+        busy_o                  => s_dut_veto_aida(dut),
+      
+        -- Signals to/from DUT
+        dut_busy_i              => s_busy_from_dut(dut),
+        dut_clk_o               => s_clk_to_dut_aida(dut),
+        dut_reset_or_clk_o      => s_reset_or_clk_to_dut_aida(dut), 
+        dut_shutter_o           => s_shutter_to_dut_aida(dut),
+        dut_trigger_o           => s_trigger_to_dut_aida(dut)
+
+        );
+
+    --! EUDET style interface
+    eudet_dut_interface: entity work.DUTInterface_EUDET
+      GENERIC map ( 
+        g_TRIGGER_DATA_WIDTH => g_IPBUS_WIDTH
+        )
+      port map (
+        rst_i                 => ipbus_reset_i, 
+        busy_o                => s_dut_veto_eudet(dut),
+        fsm_state_value_o     => s_dut_fsm_status_eudet( (c_NUM_EUDET_FSM_BITS*(dut+1)-1) downto c_NUM_EUDET_FSM_BITS*(dut) ),
+        trigger_i             => trigger_i , 
+        trigger_counter_i     => trigger_counter_i , 
+        system_clk_i          => clk_4x_logic_i ,
+        reset_or_clk_to_dut_i => reset_or_clk_to_dut_i,
+        shutter_to_dut_i      => shutter_to_dut_i ,
+        ignore_shutter_veto_i => s_IgnoreShutterVeto ,
+        enable_dut_veto_i     => s_dut_enable_veto_eudet(dut),
+        -- Connections to DUT:
+        dut_clk_i             => s_clk_from_dut_eudet(dut),
+        dut_busy_i            => s_busy_from_dut(dut),
+        dut_shutter_o         => s_shutter_to_dut_eudet(dut),
+        dut_trigger_o         => s_trigger_to_dut_eudet(dut)
+        );
+
+    s_DUT_aida_eudet_mode(dut) <= s_DUT_interface_mode(2*dut);
+    s_dut_enable_veto_eudet(dut) <= s_DUT_interface_mode_modifier(2*dut);
+    
+    -- Produce "OR" of veto/busy signals from DUTs, take into account IGNORE BUSY bit
+    s_intermediate_busy_or(dut+1) <= s_intermediate_busy_or(dut) or ( s_dut_veto(dut) and (not s_DUT_ignore_busy(dut) ) );
+    
+  end generate dut_interfaces;
+
+  s_dut_clk_is_output <= not s_DUT_aida_eudet_mode; -- at the moment can hardwire clk_is_output to mode_is_aida
+                                               
+  s_intermediate_busy_or(0) <= '0';
+  veto_o <=  s_intermediate_busy_or(g_NUM_DUTS);
+
+  -- purpose: Multiplexes signals between EUDET and AIDA interfaces
+  -- type   : combinational
+  -- inputs : clk_4x_logic_i 
+  -- outputs: s_trigger_to_dut , s_reset_or_clk_to_dut , s_shutter_to_dut , s_dut_veto
+  p_signal_mux: process (clk_4x_logic_i ) is
+  begin  -- process p_signal_mux
+    if rising_edge(clk_4x_logic_i) then
+      s_trigger_to_dut <= ( s_trigger_to_dut_eudet and (not s_DUT_aida_eudet_mode)) or ( s_trigger_to_dut_aida and  s_DUT_aida_eudet_mode) ;
+      s_dut_veto <= ( s_dut_veto_eudet and (not s_DUT_aida_eudet_mode)) or ( s_dut_veto_aida and  s_DUT_aida_eudet_mode) ;
+      s_shutter_to_dut <= ( s_shutter_to_dut_eudet and (not s_DUT_aida_eudet_mode)) or ( s_shutter_to_dut_aida and  s_DUT_aida_eudet_mode) ; 
+      s_reset_or_clk_to_dut <= ( s_reset_or_clk_to_dut_aida and  s_DUT_aida_eudet_mode) ; --! reset_or_clk line stays low if in EUDET mode
+      
+    end if;
+  end process p_signal_mux;
+  
+END ARCHITECTURE rtl;
+
diff --git a/components/tlu/hdl/dut/DUTInterfaces_rtl_BKP.vhd b/components/tlu/hdl/dut/DUTInterfaces_rtl_BKP.vhd
new file mode 100644
index 00000000..6a19837a
--- /dev/null
+++ b/components/tlu/hdl/dut/DUTInterfaces_rtl_BKP.vhd
@@ -0,0 +1,328 @@
+--=============================================================================
+--! @file DUTInterfaces_rtl.vhd
+--=============================================================================
+--
+-------------------------------------------------------------------------------
+-- --
+-- University of Bristol, High Energy Physics Group.
+-- --
+------------------------------------------------------------------------------- --
+-- VHDL Architecture fmc_mTLU_lib.DUTInterfaces.rtl
+--
+--------------------------------------------------------------------------------
+-- 
+-- Created using using Mentor Graphics HDL Designer(TM) 2010.3 (Build 21)
+--
+-- hds interface_start
+LIBRARY ieee;
+USE ieee.std_logic_1164.all;
+USE ieee.numeric_std.all;
+
+USE work.ipbus.all;
+use work.ipbus_reg_types.all;
+
+library unisim;
+use unisim.VComponents.all;
+
+--! @brief Interfaces to Device Under Test (DUT) connectors.
+--!
+--! @author David Cussans , David.Cussans@bristol.ac.uk
+--!
+--! @date 15:09:50 11/09/12
+--!
+--! @version v0.1
+--!
+--! @details
+--! \n\n IPBUS Address map:
+--! \n (Decodes 4 bits)
+--! \li 0x00000000 - DUT mask(write). 1 = active , 0 = inactive. Inactive DUT don't contribute to BUSY. One bit per DUT XXXXXXXXXXXXXXXXXXXXXXBA9876543210
+--! \li 0x00000001 - Ignore DUT busy. 1 = ignore BUSY from this connector
+--! \li 0x00000002 - Ignore shutter veto. 0 = raising shutter vetos triggers.
+--! \li 0x00000003 - DUT interface mode, two bits per DUT. Up to 12 inputs  XXXXXXXXBBAA99887766554433221100 mode: 0 = EUDET mode , 1 = synchronous/AIDA ( LHC / Timepix ) , 2,3=reserved
+--! \li 0x00000004 - DUT mode modifier: XXXXXXXXBBAA99887766554433221100 in EUDET mode: 0 = standard trigger/busy mode, 1 = raising BUSY outside handshake vetoes triggers
+--! \li 0x00000008 - DUT mask ( read )
+--! \li 0x0000000D - EUDET interface FSM status. Packed 4 bits per i/face ( read )
+--!
+--! DUT(0) = RJ45 ( J3 )\n
+--! DUT(1) = HDMI ( J1 ) , furthest from RJ45\n
+--! DUT(2) = HDMI ( J2) , closest to RJ45\n
+--!
+--! <b>Modified by:</b>\n
+--! -----------------------------------------------------------------------------
+--! \n\n<b>Last changes:</b>\n
+-------------------------------------------------------------------------------
+-- todo  Indicate if the DUT works under AIDA/EUDET style
+--
+ENTITY DUTInterfaces IS
+   GENERIC( 
+      g_NUM_DUTS    : positive := 3;
+      g_IPBUS_WIDTH : positive := 32
+   );
+   PORT( 
+      clk_4x_logic_i          : IN     std_logic;
+      strobe_4x_logic_i       : IN     std_logic;                                    --! goes high every 4th clock cycle
+      trigger_counter_i       : IN     std_logic_vector (g_IPBUS_WIDTH-1 DOWNTO 0);  --! Number of trigger events since last reset
+      trigger_i               : IN     std_logic;                                    --! goes high when trigger logic issues a trigger
+      reset_or_clk_to_dut_i   : IN     std_logic;                                    --! Synchronization signal. Passed to DUT pins
+      shutter_to_dut_i        : IN     std_logic;                                    --! Goes high to indicate data-taking active. DUTs report busy unless ignoreShutterVeto IPBus flag is set high
+      -- IPBus signals.
+      ipbus_clk_i             : IN     std_logic;
+      ipbus_i                 : IN     ipb_wbus;                                     --! Signals from IPBus core to slave
+      ipbus_reset_i           : IN     std_logic;
+      ipbus_o                 : OUT    ipb_rbus;                                     --! signals from slave to IPBus core
+      -- Signals to/from DUT
+      busy_from_dut_n_i       : IN     std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);     --! BUSY input from DUTs
+      busy_from_dut_p_i       : IN     std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);     --! BUSY input from DUTs
+      clk_to_dut_n_io         : INOUT  std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);     --! clocks trigger data when in EUDET mode
+      clk_to_dut_p_io         : INOUT  std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);     --! clocks trigger data when in EUDET mode
+      reset_or_clk_to_dut_n_o : OUT    std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);     --! Either reset line or trigger
+      reset_or_clk_to_dut_p_o : OUT    std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);     --! Either reset line or trigger
+      trigger_to_dut_n_o      : OUT    std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);     --! Trigger output
+      trigger_to_dut_p_o      : OUT    std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);     --! Trigger output
+      shutter_to_dut_n_o      : OUT    std_logic_vector (g_NUM_DUTS-1 DOWNTO 1);     --! Shutter output. Output 0 (RJ45) has no shutter signal
+      shutter_to_dut_p_o      : OUT    std_logic_vector (g_NUM_DUTS-1 DOWNTO 1);     --! Shutter output
+      veto_o                  : OUT    std_logic                                     --! goes high when one or more DUT are busy or vetoed by shutter
+   );
+
+-- Declarations
+
+END ENTITY DUTInterfaces ;
+-- hds interface_end
+
+--
+ARCHITECTURE rtl OF DUTInterfaces IS
+
+  signal s_intermediate_busy_or : std_logic_vector(g_NUM_DUTS downto 0);  -- OR tree
+
+
+  signal s_clk_to_DUT , s_busy_from_dut , s_dut_veto , s_reset_or_clk_to_dut , s_trigger_to_dut , s_shutter_to_dut : std_logic_vector(g_NUM_DUTS-1 downto 0) := (others => '0');
+  signal s_clk_from_dut_eudet , s_busy_from_dut_eudet , s_dut_veto_eudet , s_reset_or_clk_to_dut_eudet , s_trigger_to_dut_eudet , s_shutter_to_dut_eudet : std_logic_vector(g_NUM_DUTS-1 downto 0) := (others => '0');
+  signal s_clk_to_DUT_AIDA , s_busy_from_dut_aida , s_dut_veto_aida , s_reset_or_clk_to_dut_aida , s_trigger_to_dut_aida , s_shutter_to_dut_aida : std_logic_vector(g_NUM_DUTS-1 downto 0) := (others => '0');
+  signal s_DUT_mask : std_logic_vector(g_NUM_DUTS-1 downto 0) := (others => '0');   	--! Mask for the DUTs used. 1 = active
+  signal s_dut_clk_is_output : std_logic_vector(g_NUM_DUTS-1 downto 0) := (others => '1');  --! Set low to enable transmission of clock from TLU to DUT
+
+  constant c_NUM_EUDET_FSM_BITS : positive := 4;
+  signal s_dut_fsm_status_eudet : std_logic_vector((c_NUM_EUDET_FSM_BITS*g_NUM_DUTS)-1 downto 0) ; --! Stores status from EUDET interface FSM. Can only support up to 32/4 = 8 DUT interfaces, not 12...
+
+  signal s_DUT_ignore_busy : std_logic_vector(g_NUM_DUTS-1 downto 0) := (others => '0');  --! set bit to 1 for BUSY to be ignored.
+  signal s_DUT_interface_mode : std_logic_vector((2*g_NUM_DUTS)-1 downto 0) := (others => '1'); --! sets AIDA/EUDET/whatever interface.
+  signal s_DUT_aida_eudet_mode : std_logic_vector(g_NUM_DUTS-1 downto 0) := (others => '1');  --! set bit to 1 for AIDA mode, 0 for EUDET
+  signal s_dut_enable_veto_eudet : std_logic_vector(g_NUM_DUTS-1 downto 0) := (others => '1'); --! set bit high to allow asynchronous veto using DUT_CLK when in EUDET mode
+
+  signal s_DUT_interface_mode_modifier : std_logic_vector((2*g_NUM_DUTS)-1 downto 0) := (others => '1');  
+  signal s_IgnoreShutterVeto : std_logic := '0';  -- --! When high the shutter won't veto triggers when low.
+
+  
+  -- Signal for IPBus
+  constant c_N_CTRL : positive := 8;
+  constant c_N_STAT : positive := 8;
+  signal s_status_to_ipbus, s_sync_status_to_ipbus : ipb_reg_v(c_N_STAT-1 downto 0);
+  signal s_control_from_ipbus,s_sync_control_from_ipbus : ipb_reg_v(c_N_CTRL-1 downto 0);
+                                                               
+BEGIN
+
+  
+  -----------------------------------------------------------------------------
+  -- IPBus interface 
+  -----------------------------------------------------------------------------
+  ipbus_registers: entity work.ipbus_ctrlreg_v
+    generic map(
+      N_CTRL => c_N_CTRL,
+      N_STAT => c_N_STAT
+      )
+    port map(
+      clk => ipbus_clk_i,
+      reset=> '0',--ipbus_reset_i ,
+      ipbus_in=>  ipbus_i,
+      ipbus_out=> ipbus_o,
+      d=>  s_sync_status_to_ipbus,
+      q=>  s_control_from_ipbus,
+      stb=>  open
+      );
+
+  -- Synchronize registers from logic clock to ipbus.
+    sync_status: entity work.synchronizeRegisters
+    generic map (
+      g_NUM_REGISTERS => c_N_STAT )
+    port map (
+      clk_input_i => clk_4x_logic_i,
+      data_i      =>  s_status_to_ipbus,
+      data_o      => s_sync_status_to_ipbus,
+      clk_output_i => ipbus_clk_i);
+
+    -- Synchronize registers from logic clock to ipbus.
+    sync_ctrl: entity work.synchronizeRegisters
+    generic map (
+      g_NUM_REGISTERS => c_N_CTRL )
+    port map (
+      clk_input_i => ipbus_clk_i,
+      data_i      =>  s_control_from_ipbus,
+      data_o      => s_sync_control_from_ipbus,
+      clk_output_i => clk_4x_logic_i);
+
+  -- Map the control registers
+  s_DUT_mask                    <= s_sync_control_from_ipbus(0)(g_NUM_DUTS-1 downto 0);
+  s_DUT_ignore_busy             <= s_sync_control_from_ipbus(1)(g_NUM_DUTS-1 downto 0);
+  s_IgnoreShutterVeto           <= s_sync_control_from_ipbus(2)(0);
+  s_DUT_interface_mode          <= s_sync_control_from_ipbus(3)((2*g_NUM_DUTS)-1 downto 0);
+  s_DUT_interface_mode_modifier <= s_sync_control_from_ipbus(4)((2*g_NUM_DUTS)-1 downto 0);
+  
+    -- Map the status registers
+  s_status_to_ipbus(0) <= std_logic_vector(to_unsigned(0,g_IPBUS_WIDTH-g_NUM_DUTS)) & s_DUT_mask;
+  s_status_to_ipbus(1) <= std_logic_vector(to_unsigned(0,g_IPBUS_WIDTH-g_NUM_DUTS)) & s_DUT_ignore_busy;
+  s_status_to_ipbus(2) <= std_logic_vector(to_unsigned(0,g_IPBUS_WIDTH-1)) & s_IgnoreShutterVeto;
+  s_status_to_ipbus(3) <= std_logic_vector(to_unsigned(0,g_IPBUS_WIDTH-(2*g_NUM_DUTS))) & s_DUT_interface_mode;
+  s_status_to_ipbus(4) <= std_logic_vector(to_unsigned(0,g_IPBUS_WIDTH-(2*g_NUM_DUTS))) & s_DUT_interface_mode_modifier;
+  s_status_to_ipbus(5) <= std_logic_vector(to_unsigned(0,g_IPBUS_WIDTH-( c_NUM_EUDET_FSM_BITS*g_NUM_DUTS))) & s_dut_fsm_status_eudet ;
+  
+  
+  ------------------------------------------------------------------------------
+  -- Instantiate BUFIODS  
+  ------------------------------------------------------------------------------
+  
+  -- Loop through *all* DUTs ( including RJ45 )
+  dut_clk_busy_trig_rst_io: for dut in 0 to g_NUM_DUTS-1 generate
+
+
+    clk_IOBUFDS_inst : IOBUFDS
+      generic map (
+        IOSTANDARD => "BLVDS_25")
+      port map (
+        O => s_clk_from_dut_eudet(dut), --! Clock *from* DUT
+        IO => clk_to_dut_p_io(dut),  --! Diff_p dut clock I/O (connect directly to top-level port)
+        IOB => clk_to_dut_n_io(dut), --! Diff_n dut clock I/O (connect directly to top-level port)
+        I => s_clk_to_dut_aida(dut), --! Clock generated by TLU to DUT
+        T => s_dut_clk_is_output(dut) --! Set *low* to enable transmission of clock from TLU to DUT
+        );
+    
+    busy_IBUFDS_inst : IBUFDS
+      generic map (
+        DIFF_TERM => TRUE, -- Differential Termination 
+        IBUF_LOW_PWR => TRUE, -- Low power (TRUE) vs. performance (FALSE) setting for referenced I/O standards
+        IOSTANDARD => "LVDS_25")
+      port map (
+        O => s_busy_from_dut(dut),  -- Buffer output
+        I => busy_from_dut_p_i(dut),  -- Diff_p buffer input (connect directly to top-level port)
+        IB => busy_from_dut_n_i(dut) -- Diff_n buffer input (connect directly to top-level port)
+      );
+		
+   
+    trig_OBUFDS_inst : OBUFDS
+      generic map (
+        IOSTANDARD => "LVDS_25")
+      port map (
+        O =>  trigger_to_dut_p_o(dut),     						-- Diff_p output (connect directly to top-level port)
+        OB => trigger_to_dut_n_o(dut),   							-- Diff_n output (connect directly to top-level port)
+        I =>  s_trigger_to_dut(dut)     -- Buffer input 
+      );
+     
+    clk_rst_OBUFDS_inst : OBUFDS
+      generic map (
+        IOSTANDARD => "LVDS_25")
+      port map (
+        O =>  reset_or_clk_to_dut_p_o(dut),    							-- Diff_p output (connect directly to top-level port)
+        OB => reset_or_clk_to_dut_n_o(dut),   							-- Diff_n output (connect directly to top-level port)
+        I =>  s_reset_or_clk_to_dut(dut) 	--s_reset_or_clk_to_dut(dut) and s_DUT_mask(dut)     -- Buffer input 
+      );
+		 
+  end generate dut_clk_busy_trig_rst_io;
+  
+  -- Loop through DUTs except RJ45  ( which (output 0) doesn't have a shutter
+  -- signal. )
+  dut_shutter_io: for dut in 1 to g_NUM_DUTS-1 generate
+
+    shutter_OBUFDS_inst : OBUFDS
+      generic map (
+        IOSTANDARD => "LVDS_25")
+      port map (
+        O =>  shutter_to_dut_p_o(dut), -- Diff_p output (connect directly to top-level port)
+        OB => shutter_to_dut_n_o(dut), -- Diff_n output (connect directly to top-level port)
+        I =>  s_shutter_to_dut(dut) 	
+        );
+  end generate dut_shutter_io;
+
+
+  ------------------------------------------------------------------------------
+  -- Instantiate interfaces to DUTs  
+  ------------------------------------------------------------------------------
+  dut_interfaces: for dut in 0 to g_NUM_DUTS-1 generate
+
+    --! AIDA style interface
+    aida_dut_interface: ENTITY work.DUTInterface_AIDA
+      generic map (
+        g_IPBUS_WIDTH => g_IPBUS_WIDTH
+        )
+      PORT map ( 
+        clk_4x_logic_i          => clk_4x_logic_i ,
+        strobe_4x_logic_i       => strobe_4x_logic_i ,
+        trigger_counter_i       => trigger_counter_i , 
+        trigger_i               => trigger_i , 
+        reset_or_clk_to_dut_i   => reset_or_clk_to_dut_i,
+        shutter_to_dut_i        => shutter_to_dut_i ,
+        ignore_shutter_veto_i   => s_IgnoreShutterVeto ,
+        ignore_dut_busy_i       => s_DUT_ignore_busy(dut),
+        dut_mask_i              => s_DUT_mask(dut),
+        busy_o                  => s_dut_veto_aida(dut),
+      
+        -- Signals to/from DUT
+        dut_busy_i              => s_busy_from_dut(dut),
+        dut_clk_o               => s_clk_to_dut_aida(dut),
+        dut_reset_or_clk_o      => s_reset_or_clk_to_dut_aida(dut), 
+        dut_shutter_o           => s_shutter_to_dut_aida(dut),
+        dut_trigger_o           => s_trigger_to_dut_aida(dut)
+
+        );
+
+    --! EUDET style interface
+    eudet_dut_interface: entity work.DUTInterface_EUDET
+      GENERIC map ( 
+        g_TRIGGER_DATA_WIDTH => g_IPBUS_WIDTH
+        )
+      port map (
+        rst_i                 => ipbus_reset_i, 
+        busy_o                => s_dut_veto_eudet(dut),
+        fsm_state_value_o     => s_dut_fsm_status_eudet( (c_NUM_EUDET_FSM_BITS*(dut+1)-1) downto c_NUM_EUDET_FSM_BITS*(dut) ),
+        trigger_i             => trigger_i , 
+        trigger_counter_i     => trigger_counter_i , 
+        system_clk_i          => clk_4x_logic_i ,
+        reset_or_clk_to_dut_i => reset_or_clk_to_dut_i,
+        shutter_to_dut_i      => shutter_to_dut_i ,
+        ignore_shutter_veto_i => s_IgnoreShutterVeto ,
+        enable_dut_veto_i     => s_dut_enable_veto_eudet(dut),
+        -- Connections to DUT:
+        dut_clk_i             => s_clk_from_dut_eudet(dut),
+        dut_busy_i            => s_busy_from_dut(dut),
+        dut_shutter_o         => s_shutter_to_dut_eudet(dut),
+        dut_trigger_o         => s_trigger_to_dut_eudet(dut)
+        );
+
+    s_DUT_aida_eudet_mode(dut) <= s_DUT_interface_mode(2*dut);
+    s_dut_enable_veto_eudet(dut) <= s_DUT_interface_mode_modifier(2*dut);
+    
+    -- Produce "OR" of veto/busy signals from DUTs
+    s_intermediate_busy_or(dut+1) <= s_intermediate_busy_or(dut) or s_dut_veto(dut);
+    
+  end generate dut_interfaces;
+
+  s_dut_clk_is_output <= not s_DUT_aida_eudet_mode; -- at the moment can hardwire clk_is_output to mode_is_aida
+                                               
+  s_intermediate_busy_or(0) <= '0';
+  veto_o <=  s_intermediate_busy_or(g_NUM_DUTS);
+
+  -- purpose: Multiplexes signals between EUDET and AIDA interfaces
+  -- type   : combinational
+  -- inputs : clk_4x_logic_i 
+  -- outputs: s_trigger_to_dut , s_reset_or_clk_to_dut , s_shutter_to_dut , s_dut_veto
+  p_signal_mux: process (clk_4x_logic_i ) is
+  begin  -- process p_signal_mux
+    if rising_edge(clk_4x_logic_i) then
+      s_trigger_to_dut <= ( s_trigger_to_dut_eudet and (not s_DUT_aida_eudet_mode)) or ( s_trigger_to_dut_aida and  s_DUT_aida_eudet_mode) ;
+      s_dut_veto <= ( s_dut_veto_eudet and (not s_DUT_aida_eudet_mode)) or ( s_dut_veto_aida and  s_DUT_aida_eudet_mode) ;
+      s_shutter_to_dut <= ( s_shutter_to_dut_eudet and (not s_DUT_aida_eudet_mode)) or ( s_shutter_to_dut_aida and  s_DUT_aida_eudet_mode) ; 
+      s_reset_or_clk_to_dut <= ( s_reset_or_clk_to_dut_aida and  s_DUT_aida_eudet_mode) ; --! reset_or_clk line stays low if in EUDET mode
+      
+    end if;
+  end process p_signal_mux;
+  
+END ARCHITECTURE rtl;
+
diff --git a/components/tlu/hdl/dut/DUTs_outputs.vhd b/components/tlu/hdl/dut/DUTs_outputs.vhd
new file mode 100644
index 00000000..5d8974e8
--- /dev/null
+++ b/components/tlu/hdl/dut/DUTs_outputs.vhd
@@ -0,0 +1,62 @@
+----------------------------------------------------------------------------------
+-- Company: 
+-- Engineer: 
+-- 
+-- Create Date: 15.02.2017 13:17:26
+-- Design Name: 
+-- Module Name: DUTs_outputs - Behavioral
+-- Project Name: 
+-- Target Devices: 
+-- Tool Versions: 
+-- Description: 
+-- 
+-- Dependencies: 
+-- 
+-- Revision:
+-- Revision 0.01 - File Created
+-- Additional Comments:
+-- 
+----------------------------------------------------------------------------------
+
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+
+-- Uncomment the following library declaration if using
+-- arithmetic functions with Signed or Unsigned values
+--use IEEE.NUMERIC_STD.ALL;
+
+-- Uncomment the following library declaration if instantiating
+-- any Xilinx leaf cells in this code.
+--library UNISIM;
+--use UNISIM.VComponents.all;
+
+entity DUTs_outputs is
+    Port ( clk_in : in STD_LOGIC;
+           d_clk_o : out STD_LOGIC_VECTOR (3 downto 0);
+           d_trg_o : out STD_LOGIC_VECTOR (3 downto 0);
+           d_busy_o : out STD_LOGIC_VECTOR (3 downto 0);
+           d_cont_o : out STD_LOGIC_VECTOR (3 downto 0);
+           d_spare_o : out STD_LOGIC_VECTOR (3 downto 0));
+end DUTs_outputs;
+
+architecture Behavioral of DUTs_outputs is
+signal toggleme : std_logic := '0'; 
+begin
+    gen_clk : process (clk_in)
+    begin  -- process gen_clk
+        
+        if rising_edge(clk_in) then   -- rising clock edge
+            toggleme <= not toggleme;
+            d_clk_o(1) <= toggleme;
+            d_clk_o(2) <= toggleme;
+            d_clk_o(3) <= toggleme;
+            d_trg_o <=  (toggleme & toggleme & toggleme & toggleme);
+            d_busy_o <= (toggleme & toggleme & toggleme & toggleme);
+            d_cont_o <= (toggleme & toggleme & toggleme & toggleme);
+            d_spare_o <=(toggleme & toggleme & toggleme & toggleme);
+        end if;
+        d_clk_o(0) <= clk_in;
+    end process gen_clk;
+
+end Behavioral;
diff --git a/components/tlu/hdl/enclustra_ax3_pm3_infra.vhd b/components/tlu/hdl/enclustra_ax3_pm3_infra.vhd
new file mode 100644
index 00000000..df07ba1e
--- /dev/null
+++ b/components/tlu/hdl/enclustra_ax3_pm3_infra.vhd
@@ -0,0 +1,131 @@
+-- enclustra_ax3_pm3_infra
+--
+-- All board-specific stuff goes here
+--
+-- Dave Newbold, June 2013---
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+
+use work.ipbus.all;
+
+entity enclustra_ax3_pm3_infra is
+	port(
+		sysclk: in std_logic; -- ??? board crystal clock
+		clk_ipb_o: out std_logic; -- IPbus clock
+		rst_ipb_o: out std_logic;
+		rst_125_o: out std_logic;
+		clk_200_o: out std_logic;
+		--clk_aux_o: out std_logic; -- 40MHz generated clock
+		--rst_aux_o: out std_logic;
+		nuke: in std_logic; -- The signal of doom
+		soft_rst: in std_logic; -- The signal of lesser doom
+		leds: out std_logic_vector(1 downto 0); -- status LEDs
+		rgmii_txd: out std_logic_vector(3 downto 0);
+		rgmii_tx_ctl: out std_logic;
+		rgmii_txc: out std_logic;
+		rgmii_rxd: in std_logic_vector(3 downto 0);
+		rgmii_rx_ctl: in std_logic;
+		rgmii_rxc: in std_logic;
+		mac_addr: in std_logic_vector(47 downto 0); -- MAC address
+		ip_addr: in std_logic_vector(31 downto 0); -- IP address
+		ipb_in: in ipb_rbus; -- ipbus
+		ipb_out: out ipb_wbus
+	);
+
+end enclustra_ax3_pm3_infra;
+
+architecture rtl of enclustra_ax3_pm3_infra is
+
+	signal clk125_fr, clk125, clk125_90, clk200, clk_ipb, clk_ipb_i, locked, rst125, rst_ipb, rst_ipb_ctrl, rst_eth, onehz, pkt: std_logic;
+	signal mac_tx_data, mac_rx_data: std_logic_vector(7 downto 0);
+	signal mac_tx_valid, mac_tx_last, mac_tx_error, mac_tx_ready, mac_rx_valid, mac_rx_last, mac_rx_error: std_logic;
+	signal led_p: std_logic_vector(0 downto 0);
+	
+begin
+
+--	DCM clock generation for internal bus, ethernet
+
+	clocks: entity work.clocks_7s_extphy_se
+		port map(
+			sysclk => sysclk,
+			clko_125 => clk125,
+			clko_125_90 => clk125_90,
+			clko_200 => clk200,
+			clko_ipb => clk_ipb_i,
+			locked => locked,
+			nuke => nuke,
+			soft_rst => soft_rst,
+			rsto_125 => rst125,
+			rsto_ipb => rst_ipb,
+			rsto_ipb_ctrl => rst_ipb_ctrl,
+			onehz => onehz
+		);
+
+	clk_ipb <= clk_ipb_i; -- Best to align delta delays on all clocks for simulation
+	clk_ipb_o <= clk_ipb_i;
+	rst_ipb_o <= rst_ipb;
+	rst_125_o <= rst125;
+	clk_200_o <= clk200;
+	
+	stretch: entity work.led_stretcher
+		generic map(
+			WIDTH => 1
+		)
+		port map(
+			clk => clk125,
+			d(0) => pkt,
+			q => led_p
+		);
+	leds <= (led_p(0), locked and onehz);
+	
+-- Ethernet MAC core and PHY interface
+	
+	eth: entity work.eth_7s_rgmii
+		port map(
+			clk125 => clk125,
+			clk125_90 => clk125_90,
+			clk200 => clk200,
+			rst => rst125,
+			rgmii_txd => rgmii_txd,
+			rgmii_tx_ctl => rgmii_tx_ctl,
+			rgmii_txc => rgmii_txc,
+			rgmii_rxd => rgmii_rxd,
+			rgmii_rx_ctl => rgmii_rx_ctl,
+			rgmii_rxc => rgmii_rxc,
+			tx_data => mac_tx_data,
+			tx_valid => mac_tx_valid,
+			tx_last => mac_tx_last,
+			tx_error => mac_tx_error,
+			tx_ready => mac_tx_ready,
+			rx_data => mac_rx_data,
+			rx_valid => mac_rx_valid,
+			rx_last => mac_rx_last,
+			rx_error => mac_rx_error
+		);
+	
+-- ipbus control logic
+
+	ipbus: entity work.ipbus_ctrl
+		port map(
+			mac_clk => clk125,
+			rst_macclk => rst125,
+			ipb_clk => clk_ipb,
+			rst_ipb => rst_ipb_ctrl,
+			mac_rx_data => mac_rx_data,
+			mac_rx_valid => mac_rx_valid,
+			mac_rx_last => mac_rx_last,
+			mac_rx_error => mac_rx_error,
+			mac_tx_data => mac_tx_data,
+			mac_tx_valid => mac_tx_valid,
+			mac_tx_last => mac_tx_last,
+			mac_tx_error => mac_tx_error,
+			mac_tx_ready => mac_tx_ready,
+			ipb_out => ipb_out,
+			ipb_in => ipb_in,
+			mac_addr => mac_addr,
+			ip_addr => ip_addr,
+			pkt => pkt
+		);
+
+end rtl;
diff --git a/components/tlu/hdl/eth_7s_gmii.vhd b/components/tlu/hdl/eth_7s_gmii.vhd
new file mode 100644
index 00000000..4db967ad
--- /dev/null
+++ b/components/tlu/hdl/eth_7s_gmii.vhd
@@ -0,0 +1,183 @@
+-- Contains the instantiation of the Xilinx MAC IP plus the GMII PHY interface
+--
+-- Do not change signal names in here without corresponding alteration to the timing contraints file
+--
+-- Dave Newbold, April 2011
+--
+-- $Id$
+
+library ieee;
+use ieee.std_logic_1164.all;
+
+library unisim;
+use unisim.VComponents.all;
+
+use work.emac_hostbus_decl.all;
+
+entity eth_7s_gmii is
+	port(
+		clk125: in std_logic;
+		clk200: in std_logic;
+		rst: in std_logic;
+		gmii_gtx_clk: out std_logic;
+		gmii_txd: out std_logic_vector(7 downto 0);
+		gmii_tx_en: out std_logic;
+		gmii_tx_er: out std_logic;
+		gmii_rx_clk: in std_logic;
+		gmii_rxd: in std_logic_vector(7 downto 0);
+		gmii_rx_dv: in std_logic;
+		gmii_rx_er: in std_logic;
+		tx_data: in std_logic_vector(7 downto 0);
+		tx_valid: in std_logic;
+		tx_last: in std_logic;
+		tx_error: in std_logic;
+		tx_ready: out std_logic;
+		rx_data: out std_logic_vector(7 downto 0);
+		rx_valid: out std_logic;
+		rx_last: out std_logic;
+		rx_error: out std_logic;
+		hostbus_in: in emac_hostbus_in := ('0', "00", "0000000000", X"00000000", '0', '0', '0');
+		hostbus_out: out emac_hostbus_out
+	);
+
+end eth_7s_gmii;
+
+architecture rtl of eth_7s_gmii is
+
+	COMPONENT temac_gbe_v9_0_rgmii
+		PORT (
+			gtx_clk : IN STD_LOGIC;
+			glbl_rstn : IN STD_LOGIC;
+			rx_axi_rstn : IN STD_LOGIC;
+			tx_axi_rstn : IN STD_LOGIC;
+			rx_statistics_vector : OUT STD_LOGIC_VECTOR(27 DOWNTO 0);
+			rx_statistics_valid : OUT STD_LOGIC;
+			rx_mac_aclk : OUT STD_LOGIC;
+			rx_reset : OUT STD_LOGIC;
+			rx_axis_mac_tdata : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);
+			rx_axis_mac_tvalid : OUT STD_LOGIC;
+			rx_axis_mac_tlast : OUT STD_LOGIC;
+			rx_axis_mac_tuser : OUT STD_LOGIC;
+			tx_ifg_delay : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
+			tx_statistics_vector : OUT STD_LOGIC_VECTOR(31 DOWNTO 0);
+			tx_statistics_valid : OUT STD_LOGIC;
+			tx_mac_aclk : OUT STD_LOGIC;
+			tx_reset : OUT STD_LOGIC;
+			tx_axis_mac_tdata : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
+			tx_axis_mac_tvalid : IN STD_LOGIC;
+			tx_axis_mac_tlast : IN STD_LOGIC;
+			tx_axis_mac_tuser : IN STD_LOGIC_VECTOR(0 DOWNTO 0);
+			tx_axis_mac_tready : OUT STD_LOGIC;
+			pause_req : IN STD_LOGIC;
+			pause_val : IN STD_LOGIC_VECTOR(15 DOWNTO 0);
+			speedis100 : OUT STD_LOGIC;
+			speedis10100 : OUT STD_LOGIC;
+			gmii_txd : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);
+			gmii_tx_en : OUT STD_LOGIC;
+			gmii_tx_er : OUT STD_LOGIC;
+			gmii_tx_clk : OUT STD_LOGIC;
+			gmii_rxd : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
+			gmii_rx_dv : IN STD_LOGIC;
+			gmii_rx_er : IN STD_LOGIC;
+			gmii_rx_clk : IN STD_LOGIC;
+			rx_configuration_vector : IN STD_LOGIC_VECTOR(79 DOWNTO 0);
+			tx_configuration_vector : IN STD_LOGIC_VECTOR(79 DOWNTO 0)
+		);
+	END COMPONENT;
+
+	COMPONENT mac_fifo_axi4
+	  PORT (
+		 m_aclk : IN STD_LOGIC;
+		 s_aclk : IN STD_LOGIC;
+		 s_aresetn : IN STD_LOGIC;
+		 s_axis_tvalid : IN STD_LOGIC;
+		 s_axis_tready : OUT STD_LOGIC;
+		 s_axis_tdata : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
+		 s_axis_tlast : IN STD_LOGIC;
+		 s_axis_tuser : IN STD_LOGIC_VECTOR(0 DOWNTO 0);
+		 m_axis_tvalid : OUT STD_LOGIC;
+		 m_axis_tready : IN STD_LOGIC;
+		 m_axis_tdata : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);
+		 m_axis_tlast : OUT STD_LOGIC;
+		 m_axis_tuser : OUT STD_LOGIC_VECTOR(0 DOWNTO 0)
+	  );
+	END COMPONENT;
+	
+	signal rx_data_e: std_logic_vector(7 downto 0);
+	signal rx_clk_e, rx_valid_e, rx_last_e, rx_user_e, rx_rst_e, rx_rst_en, rstn: std_logic;
+	signal rx_user_f, rx_user_ef: std_logic_vector(0 downto 0);
+
+begin
+
+	idelayctrl0: idelayctrl port map(
+		refclk => clk200,
+		rst => rst
+	);
+
+	rstn <= not rst;
+
+	emac0: temac_gbe_v9_0_rgmii
+		port map(
+			gtx_clk => clk125,
+			glbl_rstn => rstn,
+			rx_axi_rstn => '1',
+			tx_axi_rstn => '1',
+			rx_statistics_vector => open,
+			rx_statistics_valid => open,		
+			rx_mac_aclk => rx_clk_e,
+			rx_reset => rx_rst_e,
+			rx_axis_mac_tdata => rx_data_e,
+			rx_axis_mac_tvalid => rx_valid_e,
+			rx_axis_mac_tlast => rx_last_e,
+			rx_axis_mac_tuser => rx_user_e,
+			tx_ifg_delay => X"00",
+			tx_statistics_vector => open,
+			tx_statistics_valid => open,	
+			tx_mac_aclk => open, -- Internally connected to gtx_clk inside core
+			tx_reset => open,
+			tx_axis_mac_tdata => tx_data,
+			tx_axis_mac_tvalid => tx_valid,
+			tx_axis_mac_tlast => tx_last,
+			tx_axis_mac_tuser(0) => tx_error,
+			tx_axis_mac_tready => tx_ready,
+			pause_req => '0',
+			pause_val => X"0000",
+			speedis100 => open,
+			speedis10100 => open,
+			gmii_txd => gmii_txd,
+			gmii_tx_en => gmii_tx_en,
+			gmii_tx_er => gmii_tx_er,
+			gmii_tx_clk => gmii_gtx_clk,
+			gmii_rxd => gmii_rxd,
+			gmii_rx_dv => gmii_rx_dv,
+			gmii_rx_er => gmii_rx_er,
+			gmii_rx_clk => gmii_rx_clk,
+			rx_configuration_vector => X"0000_0000_0000_0000_0812",
+			tx_configuration_vector => X"0000_0000_0000_0000_0012"
+		);
+	
+	rx_user_ef(0) <= rx_user_e;
+	rx_error <= rx_user_f(0);
+	rx_rst_en <= not rx_rst_e;
+	
+	fifo: mac_fifo_axi4
+		port map(
+			m_aclk => clk125,
+			s_aclk => rx_clk_e,
+			s_aresetn => rx_rst_en,
+			s_axis_tvalid => rx_valid_e,
+			s_axis_tready => open,
+			s_axis_tdata => rx_data_e,
+			s_axis_tlast => rx_last_e,
+			s_axis_tuser => rx_user_ef,
+			m_axis_tvalid => rx_valid,
+			m_axis_tready => '1',
+			m_axis_tdata => rx_data,
+			m_axis_tlast => rx_last,
+			m_axis_tuser => rx_user_f
+		); -- Clock domain crossing FIFO
+
+	hostbus_out.hostrddata <= (others => '0');
+	hostbus_out.hostmiimrdy <= '0';
+
+end rtl;
diff --git a/components/tlu/hdl/eth_7s_rgmii.vhd b/components/tlu/hdl/eth_7s_rgmii.vhd
new file mode 100644
index 00000000..3e2e1670
--- /dev/null
+++ b/components/tlu/hdl/eth_7s_rgmii.vhd
@@ -0,0 +1,184 @@
+-- Contains the instantiation of the Xilinx MAC & PHY interface for RGMII
+--
+-- Do not change signal names in here without corresponding alteration to the timing contraints file
+--
+-- Dave Newbold, October 2016
+
+library ieee;
+use ieee.std_logic_1164.all;
+
+library unisim;
+use unisim.VComponents.all;
+use work.emac_hostbus_decl.all;
+
+entity eth_7s_rgmii is
+	port(
+		clk125: in std_logic;
+		clk125_90: in std_logic;
+		clk200: in std_logic;
+		rst: in std_logic;
+		rgmii_txd: out std_logic_vector(3 downto 0);
+		rgmii_tx_ctl: out std_logic;
+		rgmii_txc: out std_logic;
+		rgmii_rxd: in std_logic_vector(3 downto 0);
+		rgmii_rx_ctl: in std_logic;
+		rgmii_rxc: in std_logic;
+		tx_data: in std_logic_vector(7 downto 0);
+		tx_valid: in std_logic;
+		tx_last: in std_logic;
+		tx_error: in std_logic;
+		tx_ready: out std_logic;
+		rx_data: out std_logic_vector(7 downto 0);
+		rx_valid: out std_logic;
+		rx_last: out std_logic;
+		rx_error: out std_logic;
+		hostbus_in: in emac_hostbus_in := ('0', "00", "0000000000", X"00000000", '0', '0', '0');
+		hostbus_out: out emac_hostbus_out;
+		status: out std_logic_vector(3 downto 0)
+	);
+
+end eth_7s_rgmii;
+
+architecture rtl of eth_7s_rgmii is
+
+	COMPONENT temac_gbe_v9_rgmii
+		PORT (
+			gtx_clk : IN STD_LOGIC;
+			gtx_clk90 : IN STD_LOGIC;
+			glbl_rstn : IN STD_LOGIC;
+			rx_axi_rstn : IN STD_LOGIC;
+			tx_axi_rstn : IN STD_LOGIC;
+			rx_statistics_vector : OUT STD_LOGIC_VECTOR(27 DOWNTO 0);
+			rx_statistics_valid : OUT STD_LOGIC;
+			rx_mac_aclk : OUT STD_LOGIC;
+			rx_reset : OUT STD_LOGIC;
+			rx_axis_mac_tdata : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);
+			rx_axis_mac_tvalid : OUT STD_LOGIC;
+			rx_axis_mac_tlast : OUT STD_LOGIC;
+			rx_axis_mac_tuser : OUT STD_LOGIC;
+			tx_ifg_delay : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
+			tx_statistics_vector : OUT STD_LOGIC_VECTOR(31 DOWNTO 0);
+			tx_statistics_valid : OUT STD_LOGIC;
+			tx_mac_aclk : OUT STD_LOGIC;
+			tx_reset : OUT STD_LOGIC;
+			tx_axis_mac_tdata : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
+			tx_axis_mac_tvalid : IN STD_LOGIC;
+			tx_axis_mac_tlast : IN STD_LOGIC;
+			tx_axis_mac_tuser : IN STD_LOGIC_VECTOR(0 DOWNTO 0);
+			tx_axis_mac_tready : OUT STD_LOGIC;
+			pause_req : IN STD_LOGIC;
+			pause_val : IN STD_LOGIC_VECTOR(15 DOWNTO 0);
+			speedis100 : OUT STD_LOGIC;
+			speedis10100 : OUT STD_LOGIC;
+			rgmii_txd : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);
+			rgmii_tx_ctl : OUT STD_LOGIC;
+			rgmii_txc : OUT STD_LOGIC;
+			rgmii_rxd : IN STD_LOGIC_VECTOR(3 DOWNTO 0);
+			rgmii_rx_ctl : IN STD_LOGIC;
+			rgmii_rxc : IN STD_LOGIC;
+			inband_link_status : OUT STD_LOGIC;
+			inband_clock_speed : OUT STD_LOGIC_VECTOR(1 DOWNTO 0);
+			inband_duplex_status : OUT STD_LOGIC;
+			rx_configuration_vector : IN STD_LOGIC_VECTOR(79 DOWNTO 0);
+			tx_configuration_vector : IN STD_LOGIC_VECTOR(79 DOWNTO 0)
+		);
+	END COMPONENT;
+
+	COMPONENT mac_fifo_axi4
+	  PORT (
+		 m_aclk : IN STD_LOGIC;
+		 s_aclk : IN STD_LOGIC;
+		 s_aresetn : IN STD_LOGIC;
+		 s_axis_tvalid : IN STD_LOGIC;
+		 s_axis_tready : OUT STD_LOGIC;
+		 s_axis_tdata : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
+		 s_axis_tlast : IN STD_LOGIC;
+		 s_axis_tuser : IN STD_LOGIC_VECTOR(0 DOWNTO 0);
+		 m_axis_tvalid : OUT STD_LOGIC;
+		 m_axis_tready : IN STD_LOGIC;
+		 m_axis_tdata : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);
+		 m_axis_tlast : OUT STD_LOGIC;
+		 m_axis_tuser : OUT STD_LOGIC_VECTOR(0 DOWNTO 0)
+	  );
+	END COMPONENT;
+	
+	signal rx_data_e: std_logic_vector(7 downto 0);
+	signal rx_clk_e, rx_valid_e, rx_last_e, rx_user_e, rx_rst_e, rx_rst_en, rstn: std_logic;
+	signal rx_user_f, rx_user_ef: std_logic_vector(0 downto 0);
+	
+begin
+
+	idelayctrl0: idelayctrl port map(
+		refclk => clk200,
+		rst => rst
+	);
+	
+	rstn <= not rst;
+
+	emac0: temac_gbe_v9_rgmii
+		port map(
+			gtx_clk => clk125,
+			gtx_clk90 => clk125_90,
+			glbl_rstn => rstn,
+			rx_axi_rstn => '1',
+			tx_axi_rstn => '1',
+			rx_statistics_vector => open,
+			rx_statistics_valid => open,		
+			rx_mac_aclk => rx_clk_e,
+			rx_reset => rx_rst_e,
+			rx_axis_mac_tdata => rx_data_e,
+			rx_axis_mac_tvalid => rx_valid_e,
+			rx_axis_mac_tlast => rx_last_e,
+			rx_axis_mac_tuser => rx_user_e,
+			tx_ifg_delay => X"00",
+			tx_statistics_vector => open,
+			tx_statistics_valid => open,	
+			tx_mac_aclk => open, -- Internally connected to gtx_clk inside core
+			tx_reset => open,
+			tx_axis_mac_tdata => tx_data,
+			tx_axis_mac_tvalid => tx_valid,
+			tx_axis_mac_tlast => tx_last,
+			tx_axis_mac_tuser(0) => tx_error,
+			tx_axis_mac_tready => tx_ready,
+			pause_req => '0',
+			pause_val => X"0000",
+			speedis100 => open,
+			speedis10100 => open,
+			rgmii_txd => rgmii_txd,
+			rgmii_tx_ctl => rgmii_tx_ctl,
+			rgmii_txc => rgmii_txc,
+			rgmii_rxd => rgmii_rxd,
+			rgmii_rx_ctl => rgmii_rx_ctl,
+			rgmii_rxc => rgmii_rxc,
+			inband_link_status => status(0),
+			inband_clock_speed => status(3 downto 2),
+			inband_duplex_status => status(1),
+			rx_configuration_vector => X"0000_0000_0000_0000_0812",
+			tx_configuration_vector => X"0000_0000_0000_0000_0012"
+		);
+	
+	rx_user_ef(0) <= rx_user_e;
+	rx_error <= rx_user_f(0);
+	rx_rst_en <= not rx_rst_e;
+	
+	fifo: mac_fifo_axi4
+		port map(
+			m_aclk => clk125,
+			s_aclk => rx_clk_e,
+			s_aresetn => rx_rst_en,
+			s_axis_tvalid => rx_valid_e,
+			s_axis_tready => open,
+			s_axis_tdata => rx_data_e,
+			s_axis_tlast => rx_last_e,
+			s_axis_tuser => rx_user_ef,
+			m_axis_tvalid => rx_valid,
+			m_axis_tready => '1',
+			m_axis_tdata => rx_data,
+			m_axis_tlast => rx_last,
+			m_axis_tuser => rx_user_f
+		); -- Clock domain crossing FIFO
+
+	hostbus_out.hostrddata <= (others => '0');
+	hostbus_out.hostmiimrdy <= '0';
+	
+end rtl;
diff --git a/components/tlu/hdl/eventBuffer_rtl.vhd b/components/tlu/hdl/eventBuffer_rtl.vhd
new file mode 100644
index 00000000..b60fe514
--- /dev/null
+++ b/components/tlu/hdl/eventBuffer_rtl.vhd
@@ -0,0 +1,167 @@
+--=============================================================================
+--! @file eventBuffer_rtl.vhd
+--=============================================================================
+--
+-------------------------------------------------------------------------------
+-- --
+-- University of Bristol, High Energy Physics Group.
+-- --
+------------------------------------------------------------------------------- --
+-- VHDL Architecture fmc_mTLU_lib.eventBuffer.rtl
+--
+-- 
+-- Created using using Mentor Graphics HDL Designer(TM) 2010.3 (Build 21)
+--
+LIBRARY ieee;
+USE ieee.std_logic_1164.all;
+USE ieee.numeric_std.all;
+
+USE work.ipbus.all;
+
+--! @brief Stores input words (64bits) for readout over IPBus. 
+--! Uses a FIFO ( 64bits at input, 32 bits at output )
+--
+--
+--! @author David Cussans , David.Cussans@bristol.ac.uk
+--
+--! @date 15:24:50 11/13/12
+--
+--! @version v0.1
+--
+--! @details
+--! \n\nIPBus Address map:
+--! \li 0x0000 - FIFO data
+--! \li 0x0001 - FIFO fill level
+--! \li 0x0010 - FIFO status/control: (Writing Bit-0 resets pointers, Reading bit-1 returns "prog_full" flag)
+--!
+--! <b>Modified by: Alvaro Dosil , alvaro.dosil@usc.es </b>\n
+--------------------------------------------------------------------------------
+
+ENTITY eventBuffer IS
+    GENERIC( 
+        g_EVENT_DATA_WIDTH    : positive := 64;
+        g_IPBUS_WIDTH         : positive := 32;
+        g_READ_COUNTER_WIDTH  : positive := 14
+    );
+    PORT( 
+        clk_4x_logic_i    : IN     std_logic;
+        data_strobe_i     : IN     std_logic;                                         -- Indicates data to transfer
+        event_data_i      : IN     std_logic_vector (g_EVENT_DATA_WIDTH-1 DOWNTO 0);
+        ipbus_clk_i       : IN     std_logic;
+        ipbus_i           : IN     ipb_wbus;
+        ipbus_reset_i     : IN     std_logic;
+        strobe_4x_logic_i : IN     std_logic;
+        --trigger_count_i   : IN     std_logic_vector (g_IPBUS_WIDTH-1 DOWNTO 0); --! Not used yet.
+        rst_fifo_o			: OUT 	std_logic;														--! rst signal to first level fifos
+        buffer_full_o     : OUT    std_logic;                                         --! Goes high when event buffer almost full
+        ipbus_o           : OUT    ipb_rbus;
+        logic_reset_i     : IN     std_logic                                          -- reset buffers when high. Synch withclk_4x_logic
+    );
+
+-- Declarations
+
+END ENTITY eventBuffer ;
+
+--
+ARCHITECTURE rtl OF eventBuffer IS
+    signal s_rd_data_count    : std_logic_vector(g_READ_COUNTER_WIDTH-1 downto 0) := (others =>'0');
+    signal s_fifo_fill_level : std_logic_vector(g_IPBUS_WIDTH-1 downto 0) := (others =>'0');  -- read-counter - 2*write_count
+    signal s_write_strobe    : std_logic := '0';
+    signal s_rst_fifo, s_rst_fifo_ipb : std_logic := '0';                             -- ! Take high to reset FIFO pointers.
+    signal s_fifo_prog_full : std_logic := '0';                       -- ! Controlled by programmable-full flag of FIFO core
+    signal s_fifo_rd_en : std_logic := '0';                           -- ! Take high to clock data out of FIFO
+    signal s_fifo_dout : std_logic_vector(g_IPBUS_WIDTH-1 downto 0);  -- ! Output from FIFO ( fall-through mode)
+    signal s_fifo_valid : std_logic := '1';                           -- ! High when data in FIFO
+    signal s_fifo_full, s_fifo_almost_full, s_fifo_empty, s_fifo_almost_empty : std_logic := '0'; -- ! full and empty FIFO flags
+    signal s_fifo_status_ipb , s_fifo_fill_level_d1 : std_logic_vector(ipbus_o.ipb_rdata'range) := (others => '0');  -- data registered onto IPBus clock
+    signal s_ack : std_logic := '0';      -- -- IPBus ACK signal
+    COMPONENT tlu_event_fifo
+    PORT (
+        rst : IN STD_LOGIC;
+        wr_clk : IN STD_LOGIC;
+        rd_clk : IN STD_LOGIC;
+        din : IN STD_LOGIC_VECTOR(63 DOWNTO 0);
+        wr_en : IN STD_LOGIC;
+        rd_en : IN STD_LOGIC;
+        dout : OUT STD_LOGIC_VECTOR(31 DOWNTO 0);
+        full : OUT STD_LOGIC;
+        almost_full : OUT STD_LOGIC;
+        empty : OUT STD_LOGIC;
+        almost_empty : OUT STD_LOGIC;
+        rd_data_count : OUT STD_LOGIC_VECTOR(13 DOWNTO 0);
+        prog_full : OUT STD_LOGIC
+    );
+    END COMPONENT;
+  
+BEGIN
+
+  -----------------------------------------------------------------------------
+  -- IPBus IO
+  -----------------------------------------------------------------------------
+
+  --! Generate IPBus ACK 
+    ipbus_ack: process(ipbus_clk_i)
+    begin
+    if rising_edge(ipbus_clk_i) then
+        s_ack <= ipbus_i.ipb_strobe and not s_ack;
+    end if;
+    end process ipbus_ack;
+    ipbus_o.ipb_ack <= s_ack;
+    
+    --! Generate FIFO read enable
+    --! take high for one cycle ( when ipb_strobe goes high but before ACK goes
+    --high to follow it
+    s_fifo_rd_en  <= '1' when
+        ipbus_i.ipb_strobe = '1' and ipbus_i.ipb_write = '0' and ipbus_i.ipb_addr(1 downto 0) = "00" and s_ack = '0'
+        else '0';
+    ipbus_o.ipb_err <= '0';
+
+    --! Multiplex output data.
+    with ipbus_i.ipb_addr(1 downto 0) select ipbus_o.ipb_rdata <=
+        s_fifo_dout          when "00",
+        s_fifo_fill_level    when "01",
+        s_fifo_status_ipb	 when "10",
+        (others => '1')      when others;
+
+    ipbus_write: process (ipbus_clk_i)
+    begin  -- process ipbus_write
+    if rising_edge(ipbus_clk_i) then
+        s_rst_fifo_ipb <= '0';
+        if ipbus_i.ipb_strobe = '1' and ipbus_i.ipb_addr(1 downto 0) = "10" and ipbus_i.ipb_write = '1' then
+            s_rst_fifo_ipb <= '1';
+        end if;
+        -- Register data onto IPBus clock domain to ease timing closure.
+        s_fifo_status_ipb <=  X"000000" & "000" & s_fifo_prog_full & s_fifo_full & s_fifo_almost_full & s_fifo_almost_empty & s_fifo_empty;
+        s_fifo_fill_level <= X"0000" & "00" & s_rd_data_count; 
+    end if;
+    end process ipbus_write;
+  
+    rst_fifo_o <= s_rst_fifo_ipb;
+    s_rst_fifo <= s_rst_fifo_ipb or logic_reset_i;
+  
+  -----------------------------------------------------------------------------
+  -- FIFO and fill-level calculation
+  -----------------------------------------------------------------------------
+  
+  -- Instantiate a buffer to store the data. 64-bit on input, 32-bit on output.
+  --event_fifo : entity work.tlu_event_fifo
+    event_fifo : tlu_event_fifo
+    PORT MAP (
+        rst => s_rst_fifo,
+        wr_clk => clk_4x_logic_i,
+        rd_clk => ipbus_clk_i,
+        din => event_data_i,
+        wr_en => data_strobe_i,
+        rd_en => s_fifo_rd_en,
+        dout => s_fifo_dout,
+        full => s_fifo_full,
+        almost_full => s_fifo_almost_full,
+        empty => s_fifo_empty,
+        almost_empty => s_fifo_almost_empty,
+        rd_data_count => s_rd_data_count,
+        prog_full => s_fifo_prog_full
+    );
+    buffer_full_o <= s_fifo_prog_full;
+  
+END ARCHITECTURE rtl;
+
diff --git a/components/tlu/hdl/eventFormatter_rtl.vhd b/components/tlu/hdl/eventFormatter_rtl.vhd
new file mode 100644
index 00000000..c33279ab
--- /dev/null
+++ b/components/tlu/hdl/eventFormatter_rtl.vhd
@@ -0,0 +1,385 @@
+--=============================================================================
+--! @file eventFormatter_rtl.vhd
+--=============================================================================
+--
+-------------------------------------------------------------------------------
+-- --
+-- University of Bristol, High Energy Physics Group.
+-- --
+------------------------------------------------------------------------------- --
+-- VHDL Architecture fmc_mTLU_lib.eventFormatter.rtl
+--
+-- 
+-- Created using using Mentor Graphics HDL Designer(TM) 2010.3 (Build 21)
+--
+LIBRARY ieee;
+USE ieee.std_logic_1164.all;
+USE ieee.numeric_std.all;
+
+USE work.fmcTLU.all;
+USE work.ipbus.all;
+
+use work.ipbus_reg_types.all;
+
+--! @brief Takes the data delivered on each trigger and turns it into 64-bit
+--!        words to push into event buffer
+--! 
+--!
+--! @author David Cussans , David.Cussans@bristol.ac.uk
+--!
+--! @date 15:10:35 11/09/12
+--!
+--! @version v0.1
+--!
+--! @details
+--! \n\n IPBus address:
+--! \n (Decodes 3 bits)
+--! \li 000 - read/write enable data recording.
+--! \li 001 - write = reset timestamp,
+--! \li 010 - read = current timestamp (low  32-bits)
+--! \li 011 - read = current timestamp (high 16-bits)
+--!
+--! -----------------------------------------------------------------------------
+--! \n\n<b>Last changes:</b>\n
+--! Modified by: Alvaro Dosil , alvaro.dosil@usc.es \n
+--! 27/Feb/14 DGC Change "If" when setting s_word2 to a case ... generate. Questasim
+--!               doesn't like having an if that can take an array out of bounds.
+--! 26/Sept/14 DGC Hacked out shutter etc. Can't figure out bug.
+--!-----------------------------------------------------------------------------
+--! @todo Add more input data: \n
+--! a) shutter signals. One per DUT. ?? \n
+--! b) input levels ( for recording edge data ). Record rising and falling edges\n
+--! c) veto levels. One per DUT. Record rising and falling edges.\n
+--! \n
+--! Add backpressure output if short FIFOs fill up? But many inputs won't
+--! respond - e.g. scintillator inputs. This data will be lost....
+--! some ports are redundant - e.g. trigger counter, others confusingly
+--! labelled. Sort this out..
+--------------------------------------------------------------------------------
+
+
+ENTITY eventFormatter IS
+   GENERIC( 
+      g_EVENT_DATA_WIDTH   : positive := 64;
+      g_IPBUS_WIDTH        : positive := 32;
+      g_COUNTER_TRIG_WIDTH : positive := 32;
+      g_COUNTER_WIDTH      : positive := 12;
+      g_EVTTYPE_WIDTH      : positive := 4; --! Width of the event type word
+      --g_NUM_INPUT_TYPES     : positive := 4;               -- Number of different input types (trigger, shutter, edge...)
+      g_NUM_EDGE_INPUTS    : positive := 4;      --! Number of edge inputs
+      g_NUM_TRIG_INPUTS    : positive := 6      --! Number of trigger inputs
+   );
+   PORT( 
+      clk_4x_logic_i         : IN     std_logic;                                           --! Rising edge active
+      ipbus_clk_i            : IN     std_logic;
+      logic_strobe_i         : IN     std_logic;                                           --! Pulses high once every 4 cycles of clk_4x_logic
+      logic_reset_i          : IN     std_logic;                                           --! goes high to reset counters. Synchronous with clk_4x_logic
+      rst_fifo_i             : IN     std_logic;                                           --! Goes high to reset FIFOs
+      buffer_full_i          : IN     std_logic;                                           --! Goes high when output fifo full
+      trigger_i              : IN     std_logic;                                           --! goes high to load trigger data. One cycle of clk_4x_logic
+      trigger_times_i        : IN     t_triggerTimeArray (g_NUM_TRIG_INPUTS-1 DOWNTO 0);   --! Array of trigger times ( w.r.t. logic_strobe)
+      trigger_inputs_fired_i : IN     std_logic_vector (g_NUM_TRIG_INPUTS-1 DOWNTO 0);     --! high for each input that "fired"
+      trigger_cnt_i          : IN     std_logic_vector (g_COUNTER_TRIG_WIDTH-1 DOWNTO 0);  --! Trigger count
+      shutter_i              : IN     std_logic;
+      shutter_cnt_i          : IN     std_logic_vector (g_COUNTER_WIDTH-1 DOWNTO 0);
+      spill_i                : IN     std_logic;
+      spill_cnt_i            : IN     std_logic_vector (g_COUNTER_WIDTH-1 DOWNTO 0);
+      edge_rise_i            : IN     std_logic_vector (g_NUM_EDGE_INPUTS-1 DOWNTO 0);     --! High when rising edge
+      edge_fall_i            : IN     std_logic_vector (g_NUM_EDGE_INPUTS-1 DOWNTO 0);     --! High when falling edge
+      edge_rise_time_i       : IN     t_triggerTimeArray (g_NUM_EDGE_INPUTS-1 DOWNTO 0);   --! Array of edge times ( w.r.t. logic_strobe)
+      edge_fall_time_i       : IN     t_triggerTimeArray (g_NUM_EDGE_INPUTS-1 DOWNTO 0);   --! Array of edge times ( w.r.t. logic_strobe)
+      ipbus_i                : IN     ipb_wbus;
+      ipbus_o                : OUT    ipb_rbus;
+      data_strobe_o          : OUT    std_logic;                                           --! goes high when data ready to load into event buffer
+      event_data_o           : OUT    std_logic_vector (g_EVENT_DATA_WIDTH-1 DOWNTO 0);
+      reset_timestamp_i      : IN     std_logic;                                           --! Taking high causes timestamp to be reset. Combined with internal timestmap reset and written to reset_timestamp_o
+      reset_timestamp_o      : OUT    std_logic                                           --! Goes high for one clock cycle of clk_4x_logic when timestamp reset
+   );
+
+-- Declarations
+
+END eventFormatter ;
+
+--
+ARCHITECTURE rtl OF eventFormatter IS
+
+  
+  constant c_NUM_INPUT_TYPES     : positive := 3+g_NUM_EDGE_INPUTS;               -- Number of different input types (trigger, shutter, edge(0), edge(1)...)
+  
+--  type t_fifo_io is array(natural range <>) of std_logic_vector(g_EVENT_DATA_WIDTH-1 downto 0);
+-- type t_evttype is array(natural range <>) of std_logic_vector(g_EVTTYPE_WIDTH-1 downto 0);
+--  type t_var is array(natural range <>) of std_logic_vector(g_COUNTER_WIDTH-1 downto 0);
+  -- Input types:
+  -- 0 - Trigger
+  -- 1 - Shutter
+  -- 2 - Edge signal
+  -- 3 - Spill
+  
+  --! delayed strobes
+  signal s_event_strobe , s_event_strobe_d1 ,s_event_strobe_d2 ,s_event_strobe_d3 , s_event_strobe_d3_opt : std_logic := '0';
+  signal shutter_i_d1, shutter_i_d2, edge_i_d1, edge_i_d2, spill_i_d1, spill_i_d2 : std_logic := '0';
+  
+--  signal s_evttype : t_evttype(3+g_NUM_EDGE_INPUTS-1 downto 0) := (others=>(others=>'0'));   -- Event type
+  signal s_evttype : std_logic_vector(g_EVTTYPE_WIDTH-1 downto 0) := ( others => '0');
+  -- 0000 trigger internal
+  -- 0001 trigger external
+  -- 0010 shutter falling
+  -- 0011 shutter rising
+  -- 0100 edge falling
+  -- 0101 edge rising
+  -- 0111 spill on
+  -- 0110 spill off
+  
+  signal s_var        : std_logic_vector(g_COUNTER_WIDTH-1 downto 0) := (others => '0');
+    
+  signal s_data_o        : std_logic_vector(g_EVENT_DATA_WIDTH-1 DOWNTO 0);         -- Multiplexed data from FIFOs
+  
+  constant c_COARSE_TIMESTAMP_WIDTH : positive := 48;  -- ! Number of bits in 40MHz timestamp
+  signal s_coarse_timestamp : std_logic_vector(c_COARSE_TIMESTAMP_WIDTH-1 downto 0) := (others => '0');  -- 40MHz timestamp.
+  signal s_coarse_timestamp_ipbus : ipb_reg_v(1 downto 0) := ( others => (others => '0')); --! 40MHz timestamp on IPB clock domain.
+
+--  signal s_event_number : unsigned(g_IPBUS_WIDTH-1 downto 0) := (others => '0');  -- increment after each post-veto trigger.
+
+  signal s_word0 , s_word1, s_word2 			: std_logic_vector(g_EVENT_DATA_WIDTH-1 downto 0) := (others => '0');  -- clocked to data output on logic_strobe , s_logic_strobe_d1 , etc.
+  signal s_word0_p1  : std_logic_vector(g_EVENT_DATA_WIDTH-1 downto 0) := (others => '0');  -- clocked to data output on logic_strobe , s_logic_strobe_d1 , etc.
+  signal s_word0_d1 , s_word1_d1, s_word2_d1 : std_logic_vector(g_EVENT_DATA_WIDTH-1 downto 0) := (others => '0');  -- clocked to data output on logic_strobe , s_logic_strobe_d1 , etc.
+  signal s_word0_d2 , s_word1_d2, s_word2_d2 : std_logic_vector(g_EVENT_DATA_WIDTH-1 downto 0) := (others => '0');  -- clocked to data output on logic_strobe , s_logic_strobe_d1 , etc.
+  signal s_word0_d3 , s_word1_d3, s_word2_d3 : std_logic_vector(g_EVENT_DATA_WIDTH-1 downto 0) := (others => '0');  -- clocked to data output on logic_strobe , s_logic_strobe_d1 , etc.
+  signal trigger_times_d1							: t_triggerTimeArray (g_NUM_TRIG_INPUTS-1 DOWNTO 0) := (others => (others=>'0')); 
+
+  signal s_reset_timestamp_4x, s_reset_timestamp_4x_ipbus , s_reset_timestamp_4x_external , s_reset_timestamp_4x_external_p1 , s_reset_timestamp_4x_external_p2 : std_logic := '0'; --! Single pulse on 4x domain
+  signal s_reset_timestamp_ipbus : std_logic := '0'; --! Single pulse on IPBus clock domain
+  
+  signal s_ipbus_ack      : std_logic := '0';  -- used to produce a delayed IPBus ack signal
+  signal s_enable_record, s_enable_record_ipb : std_logic_vector(g_IPBUS_WIDTH-1 downto 0) := (2 downto 0 => '1', others=>'0'); -- Enable data record
+  signal s_enable_trigger : std_logic := '1'; -- Enable trigger record
+  signal s_enable_shutter : std_logic := '1'; -- Enable shutter record
+  signal s_enable_spill   : std_logic := '1'; -- Enable spill record
+  signal s_enable_edges   : std_logic_vector(g_NUM_EDGE_INPUTS-1 downto 0) := (others=>'0'); -- Enable edges record
+
+  signal s_rst_fifo_d1 , s_rst_fifo_d2 , s_rst_fifo_clk4x  : std_logic := '0';
+  signal s_buffer_full_d1 , s_buffer_full_d2 , s_buffer_full_clk4x  : std_logic := '0';
+  signal s_trigger : std_logic := '0';  -- pulses on risng edge of triger in
+
+  signal s_captured_trigger_times :  t_triggerTimeArray (g_NUM_TRIG_INPUTS-1 DOWNTO 0);   --! Array of trigger times,captured when trigger
+  
+BEGIN
+
+  -----------------------------------------------------------------------------
+  -- IPBus write
+  -----------------------------------------------------------------------------
+  ipbus_write: process (ipbus_clk_i)
+  begin  -- process ipb_clk_i
+    if rising_edge(ipbus_clk_i) then
+
+      s_reset_timestamp_ipbus <= '0';
+      if (ipbus_i.ipb_strobe = '1' and ipbus_i.ipb_write = '1') then
+
+         case ipbus_i.ipb_addr(2 downto 0) is
+           when "000" => s_enable_record_ipb <= ipbus_i.ipb_wdata ; -- Enable data record
+           when "001" => s_reset_timestamp_ipbus <= '1';
+           when others => null;
+         end case;
+          
+       end if;
+
+       s_ipbus_ack <= ipbus_i.ipb_strobe and not s_ipbus_ack;
+       
+    end if;
+  end process ipbus_write;
+
+  ipbus_o.ipb_ack <= s_ipbus_ack;
+  ipbus_o.ipb_err <= '0';
+  
+
+  -----------------------------------------------------------------------------
+  -- IPBUS read
+  -----------------------------------------------------------------------------
+  with ipbus_i.ipb_addr(2 downto 0) select
+    ipbus_o.ipb_rdata <=
+      s_enable_record_ipb                     when "000",
+      s_coarse_timestamp_ipbus(0)              when "010",  
+      s_coarse_timestamp_ipbus(1)             when "011",  
+      (others => '1')                         when others;
+
+  cmp_timestampDomainCross : entity work.synchronizeRegisters
+    generic map (
+      g_NUM_REGISTERS => 2 )
+    port map (
+      clk_input_i  => clk_4x_logic_i,
+      data_i       => ( "0000000000000000" & s_coarse_timestamp(s_coarse_timestamp'left downto 32) , s_coarse_timestamp(31 downto 0) ) ,
+      data_o       => s_coarse_timestamp_ipbus, 
+      clk_output_i => ipbus_clk_i
+      );
+
+  -- Move reset timestamp pulse onto clk_4x_logic
+  cmp_resetTimestampDomainCross: entity work.pulseClockDomainCrossing
+    port map (
+      clk_input_i  => ipbus_clk_i,
+      pulse_i      => s_reset_timestamp_ipbus,
+      clk_output_i => clk_4x_logic_i, 
+      pulse_o      => s_reset_timestamp_4x_ipbus
+    );
+
+  -- Combine reset timestamp from IPBus and external source
+  -- purpose: combines resets from IPBus and external source onto clk_4x_logic_i
+  -- type   : combinational
+  -- inputs : clk_4x_logic_i
+  -- outputs: s_reset_timestamp_4x
+  p_combine_reset_timestamps: process (clk_4x_logic_i) is
+  begin  -- process p_combine_reset_timestamps
+    if rising_edge(clk_4x_logic_i) then
+      s_reset_timestamp_4x_external_p2 <= reset_timestamp_i;
+      s_reset_timestamp_4x_external_p1 <= s_reset_timestamp_4x_external_p2 ;
+      s_reset_timestamp_4x_external    <= s_reset_timestamp_4x_external_p1 ;
+      s_reset_timestamp_4x <= s_reset_timestamp_4x_external or s_reset_timestamp_4x_ipbus;
+    end if;
+  end process p_combine_reset_timestamps;
+  
+  reset_timestamp_o <= s_reset_timestamp_4x;
+  
+  -- Change control signals from IPBus clock domain on to clk_4x_logic
+  -- CHANGE ME - use synchronize registers instead.
+  p_signals_clk_domain: process (clk_4x_logic_i )
+  begin  -- process p_internal_triggers
+    if rising_edge(clk_4x_logic_i) then
+      s_enable_record  <= s_enable_record_ipb;
+		
+      s_enable_trigger <= s_enable_record(0);
+      s_enable_shutter <= s_enable_record(1);
+      s_enable_spill <= s_enable_record(2);
+      s_enable_edges <= s_enable_record(g_NUM_EDGE_INPUTS-1+3 downto 3);
+
+      -- move  "reset fifo" and "buffer full"  signals onto clock4x domain
+      s_rst_fifo_d1 <= rst_fifo_i;
+      s_rst_fifo_d2 <= s_rst_fifo_d1;
+      s_rst_fifo_clk4x <= s_rst_fifo_d2 ;
+      s_buffer_full_d1 <= buffer_full_i;
+      s_buffer_full_d2 <= s_buffer_full_d1;
+      s_buffer_full_clk4x <= s_buffer_full_d2;  
+      
+    end if;
+  end process p_signals_clk_domain;
+
+  cmp_triggerEdgeDetect: entity work.single_pulse
+    port map (
+      level => trigger_i,
+      clk => clk_4x_logic_i,
+      pulse => s_trigger
+      );
+  
+  -- purpose: generate delayed strobes and write enable flags to the FIFOs
+  -- type   : combinational
+  -- inputs : clk_4x_logic_i , s_FIFO_rd
+  -- outputs: s_event_strobe_d1 , s_event_strobe_d2 , s_event_strobe_d3 , s_FIFO_rd_d , s_**_evttype
+  p_ff_rst: process (clk_4x_logic_i)
+  begin  -- process p_generate_strobes
+    if rising_edge(clk_4x_logic_i) then      
+      if s_rst_fifo_clk4x = '1' then
+        s_event_strobe_d1 <= '0';
+        s_event_strobe_d2 <= '0';
+        s_event_strobe_d3 <= '0';
+		
+      else
+        -- set s_event_strobe high if trigger_i is high and pipeline is empty
+        -- ( i.e. all event_strobe are zero)
+
+        s_event_strobe_d1 <= s_trigger and s_enable_trigger and not buffer_full_i and
+                             (not s_event_strobe_d1 ) and (not s_event_strobe_d2 ) and (not s_event_strobe_d3 );
+        s_event_strobe_d2 <= s_event_strobe_d1;
+        s_event_strobe_d3 <= s_event_strobe_d2;
+		
+      end if;
+    end if;
+  end process p_ff_rst;
+  
+  p_ff: process (clk_4x_logic_i)
+  begin  -- process p_generate_strobes
+    if rising_edge(clk_4x_logic_i) then
+
+		trigger_times_d1 <= trigger_times_i;
+
+        s_word0 <= s_word0_p1;
+		s_word0_d1 <= s_word0;
+		s_word1_d1 <= s_word1;
+		s_word1_d2 <= s_word1_d1;
+		s_word2_d1 <= s_word2;
+		s_word2_d2 <= s_word2_d1;
+		s_word2_d3 <= s_word2_d2;
+		
+	end if;
+  end process;
+	
+  -- If there are more than 4 trigger inputs we need to fill a second word.
+  -- .. do this by having an optional strobe.
+  -- If 4 or fewer trigger inputs, just leave s_event_strobe_d3_opt at zero..
+  gen_strobe_d3: if (g_NUM_TRIG_INPUTS > 4) generate
+    s_event_strobe_d3_opt <= s_event_strobe_d3;
+  end generate;
+
+-------------------------------------------------------------------------------
+-- Trigger event formater
+-------------------------------------------------------------------------------
+  s_evttype <= "0000" when unsigned(trigger_inputs_fired_i) = 0 else "0001";
+
+  --s_var <= trigger_inputs_fired_i & std_logic_vector(to_unsigned(0,s_var'length-g_NUM_TRIG_INPUTS));
+  s_var <= std_logic_vector(to_unsigned(0,s_var'length-g_NUM_TRIG_INPUTS)) & trigger_inputs_fired_i; -- Pad with zeroes on the left.
+
+  s_word0_p1 <= s_evttype & s_var & s_coarse_timestamp;
+  
+  s_word1 <= "000" & trigger_times_d1(0) & "000" & trigger_times_d1(1) &
+             "000" & trigger_times_d1(2) & "000" & trigger_times_d1(3) &
+             trigger_cnt_i;
+				 
+	
+  -- Different number of trigger inputs require packing into s_word2 in
+  -- different ways.
+  -- Do this in a generate since g_NUM_TRIG_INPUTS is static and
+  -- Questasim doesn't like refering to indices outside declared range.
+    gen_word2_init: if (g_NUM_TRIG_INPUTS <= 4) generate
+       s_word2 <= (others=>'0');
+    end generate;
+  --s_word2 <= (others=>'0'); -- Set all bits to zero
+  -- then override with the following assignments....
+    gen_word2: for v_trigInput in 4 to g_NUM_TRIG_INPUTS-1 generate
+        s_word2( (((11-v_trigInput)*8)+c_NUM_TIME_BITS-1) downto ((11-v_trigInput)*8) ) <= trigger_times_i(v_trigInput);
+    end generate;
+  
+      
+  --! Could also output data on trigger_i , but let's use the delayed signals. \n
+  --! The counters are one cycle delayed from the signal generation
+  p_fifo_i : process (clk_4x_logic_i)
+  begin  
+    if rising_edge(clk_4x_logic_i) then
+      data_strobe_o <= s_event_strobe_d1 or s_event_strobe_d2 or s_event_strobe_d3_opt;
+      
+      if s_event_strobe_d1 = '1' then
+        event_data_o <= s_word0_d1;
+      elsif s_event_strobe_d2 = '1' then
+        event_data_o <= s_word1_d2;
+      elsif s_event_strobe_d3_opt = '1' then
+        event_data_o <= s_word2_d3;
+      else
+        event_data_o <= (others=>'0');
+      end if;
+    end if;
+  end process;
+		
+
+  cmp_timeStampCounter: entity work.counterWithReset
+    generic map (
+      g_COUNTER_WIDTH => s_coarse_timestamp'length)
+    port map (
+      clock_i  => clk_4x_logic_i,
+      reset_i  => s_reset_timestamp_4x or logic_reset_i,
+      enable_i => logic_strobe_i,
+      result_o => s_coarse_timestamp);
+    
+ 
+  -- Generate data in format decided at DESY. Put out two strobes for the
+  -- two 64 bit words.
+  -- get trigger inputs to also generate a global time-stamp ??
+  -- add trigger_inputs_active_i array (to indicate which triggers fired)
+  
+END ARCHITECTURE rtl;
+
diff --git a/components/tlu/hdl/fmcTLU_pkg.vhd b/components/tlu/hdl/fmcTLU_pkg.vhd
new file mode 100644
index 00000000..cb6b1010
--- /dev/null
+++ b/components/tlu/hdl/fmcTLU_pkg.vhd
@@ -0,0 +1,27 @@
+--=============================================================================
+--! @file fmcTLU_pkg.vhd
+--=============================================================================
+---
+--! @brief VHDL Package Header fmc_mTLU_lib.fmcTLU
+--
+--! @author  phdgc
+--! @date  16:44:31 11/08/12         
+--
+-- using Mentor Graphics HDL Designer(TM) 2010.3 (Build 21)
+--
+LIBRARY ieee;
+USE ieee.std_logic_1164.all;
+PACKAGE fmcTLU IS
+  
+  constant c_NUM_TIME_BITS : natural := 5;
+  constant c_NUM_TRIG_INPUTS : natural := 4;
+  constant c_EVENT_DATA_WIDTH : natural := 32;
+  constant c_DATA_WIDTH : natural := 32;
+  
+  subtype t_triggerTime is std_logic_vector(c_NUM_TIME_BITS-1 downto 0);
+  --type    t_triggerTimeArray is array(natural range <>) of t_triggerTime;
+  type    t_triggerTimeArray is array(natural range <>) of std_logic_vector(c_NUM_TIME_BITS-1 downto 0) ;
+
+  type t_registerArray is array(natural range <>) of std_logic_vector(c_DATA_WIDTH-1 downto 0) ;
+  
+END fmcTLU;
diff --git a/components/tlu/hdl/fmcTLU_pkg_body.vhd b/components/tlu/hdl/fmcTLU_pkg_body.vhd
new file mode 100644
index 00000000..9437776d
--- /dev/null
+++ b/components/tlu/hdl/fmcTLU_pkg_body.vhd
@@ -0,0 +1,13 @@
+--=============================================================================
+--! @file fmcTLU_pkg_body.vhd
+--=============================================================================
+---
+--! @brief VHDL Package Body fmc_mTLU_lib.fmcTLU
+--
+--! @author  phdgc
+--! @date  16:45:08 11/08/12         
+--
+-- using Mentor Graphics HDL Designer(TM) 2010.3 (Build 21)
+--
+PACKAGE BODY fmcTLU IS
+END fmcTLU;
diff --git a/components/tlu/hdl/handshakes_rtl.vhd b/components/tlu/hdl/handshakes_rtl.vhd
new file mode 100644
index 00000000..ab893a2a
--- /dev/null
+++ b/components/tlu/hdl/handshakes_rtl.vhd
@@ -0,0 +1,248 @@
+--=============================================================================
+--! @file handshakes_rtl.vhd
+--=============================================================================
+--
+-------------------------------------------------------------------------------
+-- --
+-- University of Santiago de Compostela, High Energy Physics Group.
+-- --
+------------------------------------------------------------------------------- --
+-- VHDL Architecture fmc_mTLU_lib.handshakes.rtl
+--
+--! @brief Handshakes between TLU and DUTs. \n
+--
+--
+--! @author Alvaro Dosil , alvaro.dosil@usc.es
+--
+--! @date 12:08:30 25/06/14
+--
+--! @version v0.1
+--
+--! @details
+--!
+--!
+--! <b>Dependencies:</b>\n
+--!
+--! <b>References:</b>\n
+--!
+--! <b>Modified by: </b>\n
+--! Author: 
+-------------------------------------------------------------------------------
+--! \n\n<b>Last changes:</b>\n
+-------------------------------------------------------------------------------
+--! @todo \n
+--! <another thing to do> \n
+--
+--------------------------------------------------------------------------------
+-- 
+-- Created using using Mentor Graphics HDL Designer(TM) 2010.3 (Build 21)
+--
+LIBRARY ieee;
+USE ieee.std_logic_1164.all;
+USE ieee.numeric_std.all;
+
+USE work.ipbus.all;
+use work.ipbus_reg_types.all;
+
+ENTITY handshakes IS
+   GENERIC( 
+      g_IPBUS_WIDTH         : positive := 32
+   );
+   PORT( 
+      clk_i    			: IN     std_logic;
+		Trigger_i			: IN 		std_logic;
+      ipbus_clk_i       : IN     std_logic;
+      ipbus_i           : IN     ipb_wbus;
+      ipbus_reset_i     : IN     std_logic;
+      ipbus_o           : OUT    ipb_rbus;
+      logic_reset_i     : IN     std_logic;    
+		Busy_i				: IN		std_logic;
+		AIDAhandshake_o	: OUT		std_logic;		-- running an AIDA handshake or the old EUDET handshake
+		Trigger_o			: OUT 	std_logic;
+		rst_or_clk_o		: OUT 	std_logic		-- CONT in schematics
+   );
+
+-- Declarations
+
+END ENTITY handshakes ;
+
+--
+ARCHITECTURE rtl OF handshakes IS
+
+	signal s_handshakeEnabled : std_logic_vector(g_IPBUS_WIDTH-1 downto 0);
+	signal s_Shutter, s_T0sync : std_logic;
+	signal s_Trigger, s_TrigAux : std_logic := '0';
+	signal s_Busy, s_Busy_d1, s_Busy_d2, s_Busy_d3 : std_logic;
+	
+	signal TPx3_T0syncLen 	: std_logic_vector(g_IPBUS_WIDTH-1 DOWNTO 0) := x"00000004";   	--! T0-sync length
+	signal TPx3_Start_T0sync 	: std_logic;   																--! Flag to start the T0-sync signal
+
+	signal s_Veto 			: std_logic := '0';
+	signal s_WU				: std_logic := '0';
+	signal s_NMaxPulses 	: std_logic_vector(g_IPBUS_WIDTH-1 DOWNTO 0) := (others=>'0');
+	signal s_SuDTime 		: std_logic_vector(g_IPBUS_WIDTH-1 DOWNTO 0) := (others=>'0');
+	signal s_PulseLen 	: std_logic_vector(g_IPBUS_WIDTH-1 DOWNTO 0) := x"00000001";
+	signal s_IpDTime 		: std_logic_vector(g_IPBUS_WIDTH-1 DOWNTO 0) := x"00000001";
+	signal s_RearmTime 	: std_logic_vector(g_IPBUS_WIDTH-1 DOWNTO 0) := x"10000000";
+	signal s_PulseDelay 	: std_logic_vector(g_IPBUS_WIDTH-1 DOWNTO 0) := (others=>'0');
+	signal s_MaxPulses	: std_logic;
+	signal s_pulse			: std_logic;
+	
+	constant c_N_CTRL : positive := 13;
+	constant c_N_STAT : positive := 13;
+	signal s_status_to_ipbus, s_sync_status_to_ipbus : ipb_reg_v(c_N_STAT-1 downto 0);
+	signal s_control_from_ipbus,s_sync_control_from_ipbus  : ipb_reg_v(c_N_CTRL-1 downto 0);
+
+BEGIN
+
+  -----------------------------------------------------------------------------
+  -- IPBus interface 
+  -----------------------------------------------------------------------------
+  ipbus_registers: entity work.ipbus_ctrlreg_v
+    generic map(
+      N_CTRL => c_N_CTRL,
+      N_STAT => c_N_STAT
+      )
+    port map(
+      clk => ipbus_clk_i,
+      reset=> '0',--ipbus_reset_i ,
+      ipbus_in=>  ipbus_i,
+      ipbus_out=> ipbus_o,
+      d=>  s_sync_status_to_ipbus,
+      q=>  s_control_from_ipbus,
+      stb=>  open
+      );
+
+  -- Synchronize registers from logic clock to ipbus.
+    sync_status: entity work.synchronizeRegisters
+    generic map (
+      g_NUM_REGISTERS => c_N_STAT )
+    port map (
+      clk_input_i => clk_i,
+      data_i      =>  s_status_to_ipbus,
+      data_o      => s_sync_status_to_ipbus,
+      clk_output_i => ipbus_clk_i);
+
+    -- Synchronize registers from logic clock to ipbus.
+    sync_ctrl: entity work.synchronizeRegisters
+    generic map (
+      g_NUM_REGISTERS => c_N_CTRL )
+    port map (
+      clk_input_i => ipbus_clk_i,
+      data_i      =>  s_control_from_ipbus,
+      data_o      => s_sync_control_from_ipbus,
+      clk_output_i => clk_i);
+		
+	-----------------------------------------------------------------------------
+	-- Logic not ready to use
+	-----------------------------------------------------------------------------
+		
+	--Map the control registers
+	s_handshakeEnabled <= s_sync_control_from_ipbus(0);
+	
+	s_status_to_ipbus(0) <= s_handshakeEnabled;
+
+	
+	-- No handshake registers
+	s_NMaxPulses <= s_sync_control_from_ipbus(5);
+	s_SuDTime <= s_sync_control_from_ipbus(6);
+	s_PulseLen <= s_sync_control_from_ipbus(7);
+	s_IpDTime <= s_sync_control_from_ipbus(8);
+	s_RearmTime <= s_sync_control_from_ipbus(9);
+	s_PulseDelay <= s_sync_control_from_ipbus(10);
+	s_Veto <= s_sync_control_from_ipbus(11)(0);
+	s_WU <= s_sync_control_from_ipbus(11)(1);
+	
+	s_status_to_ipbus(5) <= s_NMaxPulses;
+	s_status_to_ipbus(6) <= s_SuDTime;
+	s_status_to_ipbus(7) <= s_PulseLen;
+	s_status_to_ipbus(8) <= s_IpDTime;
+	s_status_to_ipbus(9) <= s_RearmTime;
+	s_status_to_ipbus(10) <= s_PulseDelay;
+	s_status_to_ipbus(11) <= x"0000000"& "00" & s_WU & s_Veto;
+	s_status_to_ipbus(12) <= x"0000000"& "000" & s_MaxPulses;
+	
+	-- TPx3 registers
+	TPx3_Start_T0sync <= s_sync_control_from_ipbus(1)(0);
+	TPx3_T0syncLen 	<= x"00000001" when s_sync_control_from_ipbus(2)<x"000000002" else
+								s_sync_control_from_ipbus(2);
+  
+	s_status_to_ipbus(1) <= x"0000000" & "000" & TPx3_Start_T0sync;
+	s_status_to_ipbus(2) <= TPx3_T0syncLen;
+  
+  
+	-----------------------------------------------------------------------------
+	-- Synchronization - Rewrite!!!
+	-----------------------------------------------------------------------------
+	p_trigger : process(Trigger_i, s_Trigger)
+	begin
+		if Trigger_i = '1' then
+			s_TrigAux <= '1';
+		elsif s_Trigger = '1' then
+			s_TrigAux <= '0';
+		end if;
+	end process p_trigger;
+	
+	p_sync: process (clk_i )
+	begin  -- process p_run_counter
+		if rising_edge(clk_i) then
+			s_Trigger <= s_TrigAux;
+			
+			s_Busy_d1 <= Busy_i;
+			s_Busy_d2 <= s_Busy_d1;
+			s_Busy_d3 <= s_Busy_d2;
+			s_Busy <= s_Busy_d2;
+		end if;
+  end process p_sync;
+	
+	-----------------------------------------------------------------------------
+	-- I/O
+	-----------------------------------------------------------------------------
+	Trigger_o <= 	s_Trigger when s_handshakeEnabled(1 downto 0) = "00"  and s_Busy = '0' else
+						s_pulse when s_handshakeEnabled(1 downto 0) = "01" else							-- No handshake
+						s_Shutter when s_handshakeEnabled(1 downto 0) = "10" else						-- TPx3 handshake
+						'0';
+	rst_or_clk_o <= 	s_T0sync when s_handshakeEnabled(1 downto 0) = "10" else
+							'0';
+	
+	AIDAhandshake_o <= not s_handshakeEnabled(3); 	-- s_handshakeEnabled = x"00001000" => EUDET handshake.
+																	-- All handshakes with s_handshakeEnabled(3)='0' are AIDA handshakes
+	
+	-- No Handshake (GPP)
+	No_handshake:  entity work.GPP
+	GENERIC MAP( 
+		g_IPBUS_WIDTH => g_IPBUS_WIDTH)
+	PORT MAP( 
+		clk_i       		=> clk_i,
+		Enable_i          => not (s_Busy or s_Veto),
+      Reset_i           => logic_reset_i,
+      RstPulsCnt_i     	=> '0',
+      Trigger_i         => s_Trigger,
+      NMaxPulses_i      => s_NMaxPulses,
+      SuDTime_i         => s_SuDTime,
+      PulsLen_i     		=> s_PulseLen,
+      IpDTime_i         => s_IpDTime,
+		RearmTime_i       => s_RearmTime,
+      Force_PullDown_i  => s_Busy or s_Veto,
+      WU_i              => s_WU,
+      PulseDelay_i      => s_PulseDelay,
+		event_number_o    => open,
+      MaxPulses_o       => s_MaxPulses,
+      Pulse_o           => s_pulse,
+      Pulse_d_o         => open);
+		
+	-- TPx3 Handshake
+	TPx3_logic: entity work.TPx3Logic
+   PORT MAP( 
+      clk_i					=> clk_i,
+		Start_T0sync_i		=> TPx3_Start_T0sync,
+		T0syncLen_i			=> TPx3_T0syncLen,
+      logic_reset_i     => logic_reset_i,
+      Busy_i				=> s_Busy,
+		Veto_i				=> s_Veto,
+		Shutter_o			=> s_Shutter,
+		T0sync_o 			=>	s_T0sync
+   );
+
+END ARCHITECTURE rtl;
+
diff --git a/components/tlu/hdl/ipbus_addr_decode.vhd b/components/tlu/hdl/ipbus_addr_decode.vhd
new file mode 100644
index 00000000..dc630e87
--- /dev/null
+++ b/components/tlu/hdl/ipbus_addr_decode.vhd
@@ -0,0 +1,50 @@
+-- Address decode logic for ipbus fabric
+--
+-- This file has been AUTOGENERATED from the address table - do not hand edit
+--
+-- We assume the synthesis tool is clever enough to recognise exclusive conditions
+-- in the if statement.
+--
+-- Dave Newbold, February 2011
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.all;
+use ieee.numeric_std.all;
+use work.ipbus.all;
+
+package ipbus_addr_decode is
+
+  function ipbus_addr_sel(signal addr : in std_logic_vector(31 downto 0)) return integer;
+
+end ipbus_addr_decode;
+
+package body ipbus_addr_decode is
+
+  function ipbus_addr_sel(signal addr : in std_logic_vector(31 downto 0)) return integer is
+    variable sel : integer;
+  begin
+		if    std_match(addr, "-----------------------0001-----") then
+			sel := 0; -- DUTInterfaces / base 00000020 / mask 0000001f
+		elsif std_match(addr, "-----------------------0010-----") then
+			sel := 1; -- triggerInputs / base 00000040 / mask 0000001f
+		elsif std_match(addr, "-----------------------0011-----") then
+			sel := 2; -- triggerLogic / base 00000060 / mask 0000001f
+		elsif std_match(addr, "-----------------------0100-----") then
+			sel := 3; -- eventBuffer / base 00000080 / mask 0000001f
+		elsif std_match(addr, "-----------------------0101-----") then
+			sel := 4; -- logic_clocks / base 000000a0 / mask 0000001f
+		elsif std_match(addr, "-----------------------0110-----") then
+			sel := 5; -- i2c_master / base 000000c0 / mask 00000007
+		elsif std_match(addr, "-----------------------1010-----") then
+                        sel := 6; -- Event_Formatter / base 00000140 / mask 0000001f
+                elsif std_match(addr, "-----------------------1011-----") then
+                        sel := 7; -- TPix3_iface   / base 00000160 / mask 0000001f
+		elsif std_match(addr, "-----------------------0000-----") then
+			sel := 8; -- version / base 00000000 / mask 00000000
+		else
+			sel := 99;
+		end if;
+		return sel;
+	end ipbus_addr_sel;
+ 
+end ipbus_addr_decode;
diff --git a/components/tlu/hdl/ipbus_decode_ipbus_example.vhd b/components/tlu/hdl/ipbus_decode_ipbus_example.vhd
new file mode 100644
index 00000000..a315ed03
--- /dev/null
+++ b/components/tlu/hdl/ipbus_decode_ipbus_example.vhd
@@ -0,0 +1,69 @@
+-- Address decode logic for ipbus fabric
+-- 
+-- 
+-- We assume the synthesis tool is clever enough to recognise exclusive conditions
+-- in the if statement.
+-- 
+-- Dave Newbold, February 2011
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.all;
+use ieee.numeric_std.all;
+
+package ipbus_decode_ipbus_example is
+
+  constant IPBUS_SEL_WIDTH: positive := 5; -- Should be enough for now?
+  subtype ipbus_sel_t is std_logic_vector(IPBUS_SEL_WIDTH - 1 downto 0);
+  function ipbus_sel_ipbus_example(addr : in std_logic_vector(31 downto 0)) return ipbus_sel_t;
+
+-- START automatically  generated VHDL the Fri Oct  7 12:10:31 2016 
+  constant N_SLV_CTRL_REG: integer := 0; --for tests
+  constant N_SLV_REG: integer := 1; -- for tests
+  constant N_SLV_I2C_0: integer := 2; --I2C core for the TLU
+  constant N_SLV_DUT: integer :=3;
+  constant N_SLV_SHUT: integer :=4;
+  constant N_SLV_EVBUF: integer :=5;
+  constant N_SLV_EVFMT: integer :=6;
+  constant N_SLV_TRGIN: integer :=7;
+  constant N_SLV_TRGLGC: integer :=8;
+  constant N_SLV_LGCCLK: integer :=9;
+    
+  constant N_SLAVES: integer := 10; --Total number of slaves
+-- END automatically generated VHDL
+  --constant N_I2C_CORES: integer := 3; --How many I2C cores
+    
+end ipbus_decode_ipbus_example;
+
+package body ipbus_decode_ipbus_example is
+
+  function ipbus_sel_ipbus_example(addr : in std_logic_vector(31 downto 0)) return ipbus_sel_t is
+    variable sel: ipbus_sel_t;
+  begin
+
+-- START automatically  generated VHDL the Fri Oct  7 12:10:31 2016 
+    if    std_match(addr, "-----------------000----------0-") then
+      sel := ipbus_sel_t(to_unsigned(N_SLV_CTRL_REG, IPBUS_SEL_WIDTH)); -- ctrl_reg / base 0x00000000 / mask 0x00003002
+    elsif std_match(addr, "-----------------000----------1-") then
+      sel := ipbus_sel_t(to_unsigned(N_SLV_REG, IPBUS_SEL_WIDTH)); -- reg / base 0x00000002 / mask 0x00003002
+    --elsif std_match(addr, "-----------------001------------") then
+      --sel := ipbus_sel_t(to_unsigned(N_SLV_RAM, IPBUS_SEL_WIDTH)); -- ram / base 0x00001000 / mask 0x00003000
+    --elsif std_match(addr, "-----------------010----------0-") then
+     -- sel := ipbus_sel_t(to_unsigned(N_SLV_PRAM, IPBUS_SEL_WIDTH)); -- pram / base 0x00002000 / mask 0x00003002
+    elsif std_match(addr, "-----------------011------------") then
+      sel := ipbus_sel_t(to_unsigned(N_SLV_I2C_0, IPBUS_SEL_WIDTH)); -- i2c / base 0x00003000 / mask 0x00003002
+    elsif std_match(addr, "-----------------100------------") then
+      sel := ipbus_sel_t(to_unsigned(N_SLV_DUT, IPBUS_SEL_WIDTH)); -- i2c / base 0x00004000 / mask 0x00003002
+    elsif std_match(addr, "-----------------101------------") then
+      sel := ipbus_sel_t(to_unsigned(N_SLV_TRGIN, IPBUS_SEL_WIDTH)); -- i2c / base 0x00005000 / mask 0x00003002
+-- END automatically generated VHDL
+
+    else
+        sel := ipbus_sel_t(to_unsigned(N_SLAVES, IPBUS_SEL_WIDTH));
+    end if;
+
+    return sel;
+
+  end function ipbus_sel_ipbus_example;
+
+end ipbus_decode_ipbus_example;
+
diff --git a/components/tlu/hdl/ipbus_decode_tlu.vhd b/components/tlu/hdl/ipbus_decode_tlu.vhd
new file mode 100644
index 00000000..114da401
--- /dev/null
+++ b/components/tlu/hdl/ipbus_decode_tlu.vhd
@@ -0,0 +1,73 @@
+-- Address decode logic for ipbus fabric
+-- 
+-- 
+-- 
+-- Paolo Baesso, February 2017
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.all;
+use ieee.numeric_std.all;
+
+package ipbus_decode_tlu is
+
+  constant IPBUS_SEL_WIDTH: positive := 5; -- Should be enough for now?
+  subtype ipbus_sel_t is std_logic_vector(IPBUS_SEL_WIDTH - 1 downto 0);
+  function ipbus_sel_ipbus_example(addr : in std_logic_vector(31 downto 0)) return ipbus_sel_t;
+
+-- START automatically  generated VHDL the Fri Oct  7 12:10:31 2016 
+  constant N_SLV_CTRL_REG: integer := 0; --for tests
+  constant N_SLV_REG: integer := 1; -- for tests
+  constant N_SLV_I2C_0: integer := 2; --I2C core for the TLU
+  constant N_SLV_DUT: integer :=3;
+  constant N_SLV_SHUT: integer :=4;
+  constant N_SLV_EVBUF: integer :=5;
+  constant N_SLV_EVFMT: integer :=6;
+  constant N_SLV_TRGIN: integer :=7;
+  constant N_SLV_TRGLGC: integer :=8;
+  constant N_SLV_LGCCLK: integer :=9;
+    
+  constant N_SLAVES: integer := 10; --Total number of IPBus slaves
+-- END automatically generated VHDL
+  --constant N_I2C_CORES: integer := 3; --How many I2C cores
+    
+end ipbus_decode_tlu;
+
+package body ipbus_decode_tlu is
+
+  function ipbus_sel_ipbus_example(addr : in std_logic_vector(31 downto 0)) return ipbus_sel_t is
+    variable sel: ipbus_sel_t;
+  begin
+
+-- START automatically  generated VHDL the Fri Oct  7 12:10:31 2016 
+    if    std_match(addr, "----------------0000----------0-") then
+        sel := ipbus_sel_t(to_unsigned(N_SLV_CTRL_REG, IPBUS_SEL_WIDTH)); -- ctrl_reg / base 0x00000000 / mask 0x00003002
+    elsif std_match(addr, "----------------0000----------1-") then
+        sel := ipbus_sel_t(to_unsigned(N_SLV_REG, IPBUS_SEL_WIDTH)); -- reg / base 0x00000002 / mask 0x00003002
+    elsif std_match(addr, "----------------0001------------") then
+        sel := ipbus_sel_t(to_unsigned(N_SLV_DUT, IPBUS_SEL_WIDTH)); -- ram / base 0x00001000 / mask 0x00003000
+    elsif std_match(addr, "----------------0010----------0-") then
+        sel := ipbus_sel_t(to_unsigned(N_SLV_SHUT, IPBUS_SEL_WIDTH)); -- shutter / base 0x00002000 / mask 0x00003002
+    elsif std_match(addr, "----------------0011------------") then
+        sel := ipbus_sel_t(to_unsigned(N_SLV_I2C_0, IPBUS_SEL_WIDTH)); -- i2c / base 0x00003000 / mask 0x00003002
+    elsif std_match(addr, "----------------0100------------") then
+        sel := ipbus_sel_t(to_unsigned(N_SLV_EVBUF, IPBUS_SEL_WIDTH)); -- event buffer / base 0x00004000 / mask 0x00003002
+    elsif std_match(addr, "----------------0101------------") then
+        sel := ipbus_sel_t(to_unsigned(N_SLV_EVFMT, IPBUS_SEL_WIDTH)); -- event formatter / base 0x00005000 / mask 0x00003002
+    elsif std_match(addr, "----------------0110------------") then
+        sel := ipbus_sel_t(to_unsigned(N_SLV_TRGIN, IPBUS_SEL_WIDTH)); -- trigger inputs / base 0x00006000 / mask 0x00003002
+    elsif std_match(addr, "----------------0111------------") then
+        sel := ipbus_sel_t(to_unsigned(N_SLV_TRGLGC, IPBUS_SEL_WIDTH)); -- trigger logic / base 0x00007000 / mask 0x00003002
+    elsif std_match(addr, "----------------1000------------") then
+        sel := ipbus_sel_t(to_unsigned(N_SLV_LGCCLK, IPBUS_SEL_WIDTH)); -- logic clocks / base 0x00008000 / mask 0x00003002
+-- END automatically generated VHDL
+ 
+    else
+        sel := ipbus_sel_t(to_unsigned(N_SLAVES, IPBUS_SEL_WIDTH));
+    end if;
+
+    return sel;
+
+  end function ipbus_sel_ipbus_example;
+
+end ipbus_decode_tlu;
+
diff --git a/components/tlu/hdl/ipbus_example.vhd b/components/tlu/hdl/ipbus_example.vhd
new file mode 100644
index 00000000..5cc5f12c
--- /dev/null
+++ b/components/tlu/hdl/ipbus_example.vhd
@@ -0,0 +1,174 @@
+-- ipbus_example
+--
+-- selection of different IPBus slaves without actual function,
+-- just for performance evaluation of the IPbus/uhal system
+--
+-- Kristian Harder, March 2014
+-- based on code by Dave Newbold, February 2011
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+use work.ipbus.all;
+use work.ipbus_reg_types.all;
+use work.ipbus_decode_ipbus_example.all;
+
+entity ipbus_example is
+	port(
+		ipb_clk: in std_logic;
+		ipb_rst: in std_logic;
+		ipb_in: in ipb_wbus;
+		ipb_out: out ipb_rbus;
+		nuke: out std_logic;
+		soft_rst: out std_logic;
+		--i2c_scl_b: INOUT  std_logic;
+        --i2c_sda_b: INOUT  std_logic;
+        
+        --i2c_sda_i: IN std_logic;
+        --i2c_scl_i: IN std_logic;
+        --i2c_scl_enb_o: OUT std_logic;
+        --i2c_sda_enb_o: OUT std_logic;
+                
+        i2c_sda_i: IN std_logic_vector(N_I2C_CORES - 1 downto 0);
+        i2c_scl_i: IN std_logic_vector(N_I2C_CORES - 1 downto 0);
+        i2c_scl_enb_o: OUT std_logic_vector(N_I2C_CORES - 1 downto 0);
+        i2c_sda_enb_o: OUT std_logic_vector(N_I2C_CORES - 1 downto 0);
+        userled: out std_logic
+	);
+
+end ipbus_example;
+
+architecture rtl of ipbus_example is
+
+	signal ipbw: ipb_wbus_array(N_SLAVES - 1 downto 0);
+	signal ipbr: ipb_rbus_array(N_SLAVES - 1 downto 0);
+	signal ctrl, stat: ipb_reg_v(0 downto 0);
+    --SIGNAL s_i2c_scl_enb         : std_logic;
+    --SIGNAL s_i2c_sda_enb         : std_logic;
+           
+    -->P
+       COMPONENT i2c_master
+    PORT (
+       i2c_scl_i     : IN     std_logic;
+       i2c_sda_i     : IN     std_logic;
+       ipbus_clk_i   : IN     std_logic;
+       ipbus_i       : IN     ipb_wbus;
+       ipbus_reset_i : IN     std_logic;
+       i2c_scl_enb_o : OUT    std_logic;
+       i2c_sda_enb_o : OUT    std_logic;
+       ipbus_o       : OUT    ipb_rbus
+    );
+    END COMPONENT i2c_master;
+    FOR ALL : i2c_master USE ENTITY work.i2c_master;--<P
+begin
+
+-- ipbus address decode
+    --i2c_scl_b <= '0' when (s_i2c_scl_enb = '0') else 'Z';
+    --i2c_sda_b <= '0' when (s_i2c_sda_enb = '0') else 'Z';
+		
+	fabric: entity work.ipbus_fabric_sel
+    generic map(
+    	NSLV => N_SLAVES,
+    	SEL_WIDTH => IPBUS_SEL_WIDTH)
+    port map(
+      ipb_in => ipb_in,
+      ipb_out => ipb_out,
+      sel => ipbus_sel_ipbus_example(ipb_in.ipb_addr),
+      ipb_to_slaves => ipbw,
+      ipb_from_slaves => ipbr
+    );
+
+-- Slave 0: id / rst reg
+
+	slave0: entity work.ipbus_ctrlreg_v
+		port map(
+			clk => ipb_clk,
+			reset => ipb_rst,
+			ipbus_in => ipbw(N_SLV_CTRL_REG),
+			ipbus_out => ipbr(N_SLV_CTRL_REG),
+			d => stat,
+			q => ctrl
+		);
+		
+		stat(0) <= X"abcdfedc";
+		soft_rst <= ctrl(0)(0);
+		nuke <= ctrl(0)(1);
+
+-- Slave 1: register
+
+	slave1: entity work.ipbus_reg_v
+		port map(
+			clk => ipb_clk,
+			reset => ipb_rst,
+			ipbus_in => ipbw(N_SLV_REG),
+			ipbus_out => ipbr(N_SLV_REG),
+			q => open
+		);
+
+-- Slave 2: 1kword RAM
+
+	slave4: entity work.ipbus_ram
+		generic map(ADDR_WIDTH => 10)
+		port map(
+			clk => ipb_clk,
+			reset => ipb_rst,
+			ipbus_in => ipbw(N_SLV_RAM),
+			ipbus_out => ipbr(N_SLV_RAM)
+		);
+	
+-- Slave 3: peephole RAM
+
+	slave5: entity work.ipbus_peephole_ram
+		generic map(ADDR_WIDTH => 10)
+		port map(
+			clk => ipb_clk,
+			reset => ipb_rst,
+			ipbus_in => ipbw(N_SLV_PRAM),
+			ipbus_out => ipbr(N_SLV_PRAM)
+		);
+--    slave6 : i2c_master
+--    PORT MAP (
+--         i2c_scl_i     => i2c_scl_b,
+--         i2c_sda_i     => i2c_sda_b,
+--         ipbus_clk_i   => ipb_clk,
+--         ipbus_i       => ipbw(N_SLV_I2C),
+--         ipbus_reset_i => ipb_rst,
+--         i2c_scl_enb_o => s_i2c_scl_enb,
+--         i2c_sda_enb_o => s_i2c_sda_enb,
+--         ipbus_o       => ipbr(N_SLV_I2C)
+--    );
+
+    -- Instantiate a I2C core for the EEPROM
+    slave6 : i2c_master
+    PORT MAP (
+         i2c_scl_i     => i2c_scl_i(0),
+         i2c_sda_i     => i2c_sda_i(0),
+         ipbus_clk_i   => ipb_clk,
+         ipbus_i       => ipbw(N_SLV_I2C_0),
+         ipbus_reset_i => ipb_rst,
+         i2c_scl_enb_o => i2c_scl_enb_o(0),
+         i2c_sda_enb_o => i2c_sda_enb_o(0),
+         ipbus_o       => ipbr(N_SLV_I2C_0)
+    );
+    slave7 : i2c_master
+    PORT MAP (
+         i2c_scl_i     => i2c_scl_i(1),
+         i2c_sda_i     => i2c_sda_i(1),
+         ipbus_clk_i   => ipb_clk,
+         ipbus_i       => ipbw(N_SLV_I2C_1),
+         ipbus_reset_i => ipb_rst,
+         i2c_scl_enb_o => i2c_scl_enb_o(1),
+         i2c_sda_enb_o => i2c_sda_enb_o(1),
+         ipbus_o       => ipbr(N_SLV_I2C_1)
+    );
+    slave8 : i2c_master
+    PORT MAP (
+         i2c_scl_i     => i2c_scl_i(2),
+         i2c_sda_i     => i2c_sda_i(2),
+         ipbus_clk_i   => ipb_clk,
+         ipbus_i       => ipbw(N_SLV_I2C_2),
+         ipbus_reset_i => ipb_rst,
+         i2c_scl_enb_o => i2c_scl_enb_o(2),
+         i2c_sda_enb_o => i2c_sda_enb_o(2),
+         ipbus_o       => ipbr(N_SLV_I2C_2)
+    );
+end rtl;
diff --git a/components/tlu/hdl/ipbus_fabric_sel.vhd b/components/tlu/hdl/ipbus_fabric_sel.vhd
new file mode 100644
index 00000000..86d2fa7a
--- /dev/null
+++ b/components/tlu/hdl/ipbus_fabric_sel.vhd
@@ -0,0 +1,61 @@
+-- The ipbus bus fabric, address select logic, data multiplexers
+--
+-- This version selects the addressed slave depending on the state
+-- of incoming control lines
+--
+-- Dave Newbold, February 2011
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+use ieee.numeric_std.all;
+use work.ipbus.ALL;
+
+entity ipbus_fabric_sel is
+  generic(
+    NSLV: positive;
+    STROBE_GAP: boolean := false;
+    SEL_WIDTH: positive
+   );
+  port(
+  	sel: in std_logic_vector(SEL_WIDTH - 1 downto 0);
+    ipb_in: in ipb_wbus;
+    ipb_out: out ipb_rbus;
+    ipb_to_slaves: out ipb_wbus_array(NSLV - 1 downto 0);
+    ipb_from_slaves: in ipb_rbus_array(NSLV - 1 downto 0) := (others => IPB_RBUS_NULL)
+   );
+
+end ipbus_fabric_sel;
+
+architecture rtl of ipbus_fabric_sel is
+
+	signal sel_i: integer range 0 to NSLV := 0;
+	signal ored_ack, ored_err: std_logic_vector(NSLV downto 0);
+	signal qstrobe: std_logic;
+
+begin
+
+	sel_i <= to_integer(unsigned(sel));
+
+	ored_ack(NSLV) <= '0';
+	ored_err(NSLV) <= '0';
+	
+	qstrobe <= ipb_in.ipb_strobe when STROBE_GAP = false else
+	 ipb_in.ipb_strobe and not (ored_ack(0) or ored_err(0));
+
+	busgen: for i in NSLV-1 downto 0 generate
+	begin
+
+		ipb_to_slaves(i).ipb_addr <= ipb_in.ipb_addr;
+		ipb_to_slaves(i).ipb_wdata <= ipb_in.ipb_wdata;
+		ipb_to_slaves(i).ipb_strobe <= qstrobe when sel_i = i else '0';
+		ipb_to_slaves(i).ipb_write <= ipb_in.ipb_write;
+		ored_ack(i) <= ored_ack(i+1) or ipb_from_slaves(i).ipb_ack;
+		ored_err(i) <= ored_err(i+1) or ipb_from_slaves(i).ipb_err;		
+
+	end generate;
+
+  ipb_out.ipb_rdata <= ipb_from_slaves(sel_i).ipb_rdata when sel_i /= NSLV else (others => '0');
+  ipb_out.ipb_ack <= ored_ack(0);
+  ipb_out.ipb_err <= ored_err(0);
+  
+end rtl;
diff --git a/components/tlu/hdl/ipbus_slaves.vhd b/components/tlu/hdl/ipbus_slaves.vhd
new file mode 100644
index 00000000..e0ee08ff
--- /dev/null
+++ b/components/tlu/hdl/ipbus_slaves.vhd
@@ -0,0 +1,170 @@
+-- ipbus_example
+--
+-- selection of different IPBus slaves without actual function,
+-- just for performance evaluation of the IPbus/uhal system
+--
+-- Kristian Harder, March 2014
+-- based on code by Dave Newbold, February 2011
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+use work.ipbus.all;
+use work.ipbus_reg_types.all;
+use work.ipbus_decode_ipbus_example.all;
+
+entity ipbus_slaves is
+	port(
+		ipb_clk: in std_logic;
+		ipb_rst: in std_logic;
+		ipb_in: in ipb_wbus;
+		ipb_out: out ipb_rbus;
+		nuke: out std_logic;
+		soft_rst: out std_logic;
+		--i2c_scl_b: INOUT  std_logic;
+        --i2c_sda_b: INOUT  std_logic;
+        
+        --i2c_sda_i: IN std_logic;
+        --i2c_scl_i: IN std_logic;
+        --i2c_scl_enb_o: OUT std_logic;
+        --i2c_sda_enb_o: OUT std_logic;
+                
+        i2c_sda_i: IN std_logic_vector(N_I2C_CORES - 1 downto 0);
+        i2c_scl_i: IN std_logic_vector(N_I2C_CORES - 1 downto 0);
+        i2c_scl_enb_o: OUT std_logic_vector(N_I2C_CORES - 1 downto 0);
+        i2c_sda_enb_o: OUT std_logic_vector(N_I2C_CORES - 1 downto 0);
+        userled: out std_logic
+	);
+
+end ipbus_slaves;
+
+architecture rtl of ipbus_slaves is
+
+	signal ipbw: ipb_wbus_array(N_SLAVES - 1 downto 0);
+	signal ipbr: ipb_rbus_array(N_SLAVES - 1 downto 0);
+	signal ctrl, stat: ipb_reg_v(0 downto 0);
+    --SIGNAL s_i2c_scl_enb         : std_logic;
+    --SIGNAL s_i2c_sda_enb         : std_logic;
+           
+    -->P
+    COMPONENT i2c_master
+    PORT (
+       i2c_scl_i     : IN     std_logic;
+       i2c_sda_i     : IN     std_logic;
+       ipbus_clk_i   : IN     std_logic;
+       ipbus_i       : IN     ipb_wbus;
+       ipbus_reset_i : IN     std_logic;
+       i2c_scl_enb_o : OUT    std_logic;
+       i2c_sda_enb_o : OUT    std_logic;
+       ipbus_o       : OUT    ipb_rbus
+    );
+    END COMPONENT i2c_master;
+    FOR ALL : i2c_master USE ENTITY work.i2c_master;--<P
+begin
+
+-- ipbus address decode
+    --i2c_scl_b <= '0' when (s_i2c_scl_enb = '0') else 'Z';
+    --i2c_sda_b <= '0' when (s_i2c_sda_enb = '0') else 'Z';
+		
+	fabric: entity work.ipbus_fabric_sel
+    generic map(
+    	NSLV => N_SLAVES,
+    	SEL_WIDTH => IPBUS_SEL_WIDTH)
+    port map(
+      ipb_in => ipb_in,
+      ipb_out => ipb_out,
+      sel => ipbus_sel_ipbus_example(ipb_in.ipb_addr),
+      ipb_to_slaves => ipbw,
+      ipb_from_slaves => ipbr
+    );
+
+-- Slave 0: id / rst reg
+
+	slave0: entity work.ipbus_ctrlreg_v
+		port map(
+			clk => ipb_clk,
+			reset => ipb_rst,
+			ipbus_in => ipbw(N_SLV_CTRL_REG),
+			ipbus_out => ipbr(N_SLV_CTRL_REG),
+			d => stat,
+			q => ctrl
+		);
+		stat(0) <= X"abcdfedc";
+		soft_rst <= ctrl(0)(0);
+		nuke <= ctrl(0)(1);
+
+-- Slave 1: register
+	slave1: entity work.ipbus_reg_v
+		port map(
+			clk => ipb_clk,
+			reset => ipb_rst,
+			ipbus_in => ipbw(N_SLV_REG),
+			ipbus_out => ipbr(N_SLV_REG),
+			q => open
+		);
+
+-- Slave 2: 1kword RAM
+--	slave4: entity work.ipbus_ram
+--		generic map(ADDR_WIDTH => 10)
+--		port map(
+--			clk => ipb_clk,
+--			reset => ipb_rst,
+--			ipbus_in => ipbw(N_SLV_RAM),
+--			ipbus_out => ipbr(N_SLV_RAM)
+--		);
+	
+-- Slave 3: peephole RAM
+--	slave5: entity work.ipbus_peephole_ram
+--		generic map(ADDR_WIDTH => 10)
+--		port map(
+--			clk => ipb_clk,
+--			reset => ipb_rst,
+--			ipbus_in => ipbw(N_SLV_PRAM),
+--			ipbus_out => ipbr(N_SLV_PRAM)
+--		);
+--    slave6 : i2c_master
+--    PORT MAP (
+--         i2c_scl_i     => i2c_scl_b,
+--         i2c_sda_i     => i2c_sda_b,
+--         ipbus_clk_i   => ipb_clk,
+--         ipbus_i       => ipbw(N_SLV_I2C),
+--         ipbus_reset_i => ipb_rst,
+--         i2c_scl_enb_o => s_i2c_scl_enb,
+--         i2c_sda_enb_o => s_i2c_sda_enb,
+--         ipbus_o       => ipbr(N_SLV_I2C)
+--    );
+
+    -- Instantiate a I2C core for the EEPROM
+    slave6 : i2c_master
+    PORT MAP (
+         i2c_scl_i     => i2c_scl_i(0),
+         i2c_sda_i     => i2c_sda_i(0),
+         ipbus_clk_i   => ipb_clk,
+         ipbus_i       => ipbw(N_SLV_I2C_0),
+         ipbus_reset_i => ipb_rst,
+         i2c_scl_enb_o => i2c_scl_enb_o(0),
+         i2c_sda_enb_o => i2c_sda_enb_o(0),
+         ipbus_o       => ipbr(N_SLV_I2C_0)
+    );
+    slave7 : i2c_master
+    PORT MAP (
+         i2c_scl_i     => i2c_scl_i(1),
+         i2c_sda_i     => i2c_sda_i(1),
+         ipbus_clk_i   => ipb_clk,
+         ipbus_i       => ipbw(N_SLV_I2C_1),
+         ipbus_reset_i => ipb_rst,
+         i2c_scl_enb_o => i2c_scl_enb_o(1),
+         i2c_sda_enb_o => i2c_sda_enb_o(1),
+         ipbus_o       => ipbr(N_SLV_I2C_1)
+    );
+    slave8 : i2c_master
+    PORT MAP (
+         i2c_scl_i     => i2c_scl_i(2),
+         i2c_sda_i     => i2c_sda_i(2),
+         ipbus_clk_i   => ipb_clk,
+         ipbus_i       => ipbw(N_SLV_I2C_2),
+         ipbus_reset_i => ipb_rst,
+         i2c_scl_enb_o => i2c_scl_enb_o(2),
+         i2c_sda_enb_o => i2c_sda_enb_o(2),
+         ipbus_o       => ipbr(N_SLV_I2C_2)
+    );
+end rtl;
diff --git a/components/tlu/hdl/ipbus_ver.vhd b/components/tlu/hdl/ipbus_ver.vhd
new file mode 100644
index 00000000..068f126f
--- /dev/null
+++ b/components/tlu/hdl/ipbus_ver.vhd
@@ -0,0 +1,46 @@
+--=============================================================================
+--! @file  ipbus_ver.vhd
+--=============================================================================
+
+-- Version register, returns a fixed value
+--
+-- To be replaced by a more coherent versioning mechanism later
+--
+-- Dave Newbold, August 2011
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+use work.ipbus.all;
+
+--! @brief IPBus fixed register returning Firmware version number
+entity ipbus_ver is
+	port(
+		ipbus_in: in ipb_wbus;
+		ipbus_out: out ipb_rbus
+	);
+	
+end ipbus_ver;
+
+architecture rtl of ipbus_ver is
+
+begin
+
+  ipbus_out.ipb_rdata <= X"a622" & X"1008"; -- Lower 16b are ipbus firmware build ID (temporary arrangement).
+  ipbus_out.ipb_ack <= ipbus_in.ipb_strobe;
+  ipbus_out.ipb_err <= '0';
+
+end rtl;
+
+-- Build log
+--
+-- build 0x1000 : 22/08/11 : Starting build ID
+-- build 0x1001 : 29/08/11 : Version for SPI testing
+-- build 0x1002 : 27/09/11 : Bug fixes, new transactor code; v1.3 candidate
+-- build 0x1003 : buggy
+-- build 0x1004 : 18/10/11 : New mini-t top level, bug fixes, 1.3 codebase
+-- build 0x1005 : 20/10/11 : ipbus address config testing in mini-t
+-- build 0x1006 : 26/10/11 : trying with jumbo frames
+-- build 0x1007 : 27/10/11 : new slaves / address map + rhino frames
+-- build 0x1008 : 31/10/11 : rhino frames + multibus demo
+
+
diff --git a/components/tlu/hdl/led_stretcher.vhd b/components/tlu/hdl/led_stretcher.vhd
new file mode 100644
index 00000000..c8af6c68
--- /dev/null
+++ b/components/tlu/hdl/led_stretcher.vhd
@@ -0,0 +1,74 @@
+-- stretcher
+--
+-- Stretches a single clock pulse so it's visible on an LED
+--
+-- Dave Newbold, January 2013
+--
+-- $Id$
+
+library ieee;
+use ieee.std_logic_1164.all;
+use ieee.numeric_std.all;
+
+entity led_stretcher is
+	generic(
+		WIDTH: positive := 1
+	);
+	port(
+		clk: in std_logic; -- Assumed to be 125MHz ipbus clock
+		d: in std_logic_vector(WIDTH - 1 downto 0); -- Input (edge detected)
+		q: out std_logic_vector(WIDTH - 1 downto 0) -- LED output, ~250ms pulse
+	);
+
+end led_stretcher;
+
+architecture rtl of led_stretcher is
+
+	signal d17, d17_d: std_logic;
+	
+begin
+	
+	clkdiv: entity work.ipbus_clock_div
+		port map(
+			clk => clk,
+			d17 => d17
+		);
+
+	process(clk)
+	begin
+		if rising_edge(clk) then
+			d17_d <= d17;
+		end if;
+	end process;
+	
+	lgen: for i in WIDTH - 1 downto 0 generate
+	
+		signal s, sd, e, e_d, sl: std_logic;
+		signal scnt: unsigned(6 downto 0);
+	
+	begin
+	
+		process(clk)
+		begin
+			if rising_edge(clk) then
+				s <= d(i); -- Possible clock domain crossing from slower clock (sync not important)
+				sd <= s;
+				e <= (e or (s and not sd)) and not e_d;
+				if d17 = '1' and d17_d = '0' then
+					e_d <= e;
+					if e = '1' then
+						scnt <= "0000001";
+					elsif sl = '0' then
+						scnt <= scnt + 1;
+					end if;					
+				end if;
+			end if;
+		end process;
+
+		sl <= '1' when scnt = "0000000" else '0';
+		
+		q(i) <= not sl;
+		
+	end generate;
+	
+end rtl;
diff --git a/components/tlu/hdl/logic_clocks_rtl.vhd b/components/tlu/hdl/logic_clocks_rtl.vhd
new file mode 100644
index 00000000..631007a5
--- /dev/null
+++ b/components/tlu/hdl/logic_clocks_rtl.vhd
@@ -0,0 +1,344 @@
+--=============================================================================
+--! @file logic_clocks_rtl.vhd
+--=============================================================================
+--
+-------------------------------------------------------------------------------
+-- --
+-- University of Bristol, High Energy Physics Group.
+-- --
+------------------------------------------------------------------------------- --
+-- VHDL Architecture fmc_mTLU_lib.logic_clocks.rtl
+--
+--------------------------------------------------------------------------------
+-- 
+-- Created using using Mentor Graphics HDL Designer(TM) 2010.3 (Build 21)
+--
+-- Based on output of Xilinx Coregen and Alvro Dosil TLU code.
+------------------------------------------------------------------------------
+-- "Output    Output      Phase     Duty      Pk-to-Pk        Phase"
+-- "Clock    Freq (MHz) (degrees) Cycle (%) Jitter (ps)  Error (ps)"
+------------------------------------------------------------------------------
+-- CLK_OUT1___640.000______0.000______50.0______175.916____213.982
+-- CLK_OUT2___160.000______0.000______50.0______223.480____213.982
+-- CLK_OUT3____40.000______0.000______50.0______306.416____213.982
+--
+------------------------------------------------------------------------------
+-- "Input Clock   Freq (MHz)    Input Jitter (UI)"
+------------------------------------------------------------------------------
+-- __primary__________40.000____________0.010
+
+LIBRARY ieee;
+USE ieee.std_logic_1164.all;
+USE ieee.numeric_std.all;
+
+USE work.ipbus.all;
+
+library unisim;
+use unisim.vcomponents.all;
+
+--! @brief Generates 160MHz , 640MHz clocks from an incoming 40MHz clock.
+--! Can switch between clock generated from on-board Xtal ( clk_logic_xtal ) and external clock.
+--! Can also output clock to external clock pins.
+--!
+--! @author David Cussans , David.Cussans@bristol.ac.uk
+--
+--! @date 14:20:26 11/14/12
+--
+--! @version v0.1
+--
+--! @details
+--! \br <b> IPBus Address map:</b>
+--! \br (decode 2 bits)
+--! \li 0x00000000 - control/status register:
+--! \li             bit-0 - PLL locked ( 1 = locked )
+--! \li              bit-1 - buff-PLL locked ( 1 = locked )
+--! \li             bit-2 - use xtal for logic ( 1 = xtal , 0= external)
+--! \li             bit-3 - clock connector is an input ( 1=input , 0 = output)
+--! \li 0x00000001 - reset logic. Write to bit-zero to send reset.
+--!
+--!
+ENTITY logic_clocks IS
+    GENERIC( 
+        g_USE_EXTERNAL_CLK : integer := 1
+    );
+    PORT( 
+        ipbus_clk_i           : IN     std_logic;
+        ipbus_i               : IN     ipb_wbus;
+        ipbus_reset_i         : IN     std_logic;
+        Reset_i               : IN     std_logic;
+        clk_logic_xtal_i      : IN     std_logic;   --! 40MHz clock derived from onboard xtal
+        clk_8x_logic_o       : OUT    std_logic;   --! 640MHz clock
+        clk_4x_logic_o        : OUT    std_logic;   --! 160MHz clock
+        ipbus_o               : OUT    ipb_rbus;
+        strobe_8x_logic_o    : OUT    std_logic;   --! strobes once every 4 cycles of clk_16x
+        strobe_4x_logic_o     : OUT    std_logic;   --! one pulse every 4 cycles of clk_4x
+        DUT_clk_o             : OUT    std_logic;   --! 40MHz to DUTs
+        logic_clocks_locked_o : OUT    std_logic;   --! Goes high if clocks locked.
+        logic_reset_o         : OUT    std_logic    --! Goes high to reset counters etc. Sync with clk_4x_logic
+    );
+
+-- Declarations
+END ENTITY logic_clocks ;
+
+--
+ARCHITECTURE rtl OF logic_clocks IS
+    signal s_clk40 , s_clk40_internal : std_logic;
+    signal s_clk160 ,s_clk160_internal : std_logic;
+    signal ryanclock : std_logic;
+    signal s_clk320 , s_clk320_internal : std_logic;
+    signal s_clk40_out : std_logic;       -- Clock generated by DDR register to feed out of chip.
+    signal s_clk_is_xtal, s_clk_is_ext_buf : std_logic := '0'; -- default to
+                                                             -- input from ext
+    --  signal s_logic_clk_rst : std_logic := '0';
+    signal s_locked_pll, s_locked_bufpll : std_logic;
+    
+    signal s_clk : std_logic;
+    signal s_DUT_Clk, s_DUT_Clk_o, s_DUT_ClkG : std_logic;
+    signal s_extclk, s_extclkG : std_logic;
+    -- signal s_clk_d1 , s_strobe_4x_p1 , s_strobe_4x_logic  : std_logic;
+    signal s_clkfbout_buf , s_clkfbout : std_logic;
+    
+    signal s_strobe_generator  : std_logic_vector(3 downto 0) := "1000";  -- ! Store state of ring buffer to generate strobe
+    signal s_logic_clk_generator : std_logic_vector(3 downto 0) := "1100";  --! Stores state of 40MHz "clock"
+    --signal s_strobe_generator  : std_logic_vector(15 downto 0) := "1111000000000000";  -- ! Store state of ring buffer to generate strobe
+    --signal s_logic_clk_generator : std_logic_vector(15 downto 0) := "1111111100000000";  --! Stores state of 40MHz "clock"
+    signal s_strobe160 :std_logic_vector(15 downto 0) := "1000000000000000"; -- 160 strobe ring
+    signal s_strobe_fb : std_logic := '0';
+    
+    signal s_logic_reset_ipb, s_logic_reset_ipb_d1 : std_logic := '0';  
+                                        -- ! Reset signal in IPBus clock domain
+    signal s_logic_reset , s_logic_reset_d1 , s_logic_reset_d2 , s_logic_reset_d3 , s_logic_reset_d4 : std_logic := '0';  
+                                        -- ! reset signal clocked onto logic-clock domain.
+    attribute SHREG_EXTRACT: string;
+    attribute SHREG_EXTRACT of s_logic_reset_d1: signal is "no"; -- Synchroniser not to be optimised into shre
+    attribute SHREG_EXTRACT of s_logic_reset_d2: signal is "no"; -- Synchroniser not to be optimised into shreg
+    attribute SHREG_EXTRACT of s_logic_reset_d3: signal is "no"; -- Synchroniser not to be optimised into shreg
+    attribute SHREG_EXTRACT of s_logic_reset_d4: signal is "no"; -- Synchroniser not to be optimised into shreg
+    signal s_ipbus_ack : std_logic := '0';
+    signal s_reset_pll : std_logic := '0';
+    
+    
+    -- ! Global Reset signal
+    signal  s_extclk_internal  : std_logic := '0';
+    signal s_clock_status_ipb : std_logic_vector( ipbus_o.ipb_rdata'range );   --! Hold status of clocks
+  
+BEGIN
+    -----------------------------------------------------------------------------
+    -- IPBus write
+    -----------------------------------------------------------------------------
+    ipbus_write: process (ipbus_clk_i)
+    begin  -- process ipb_clk_i
+    if rising_edge(ipbus_clk_i) then
+        s_logic_reset_ipb <= '0';
+        if (ipbus_i.ipb_strobe = '1' and ipbus_i.ipb_write = '1') then
+            case ipbus_i.ipb_addr(1 downto 0) is
+            when "00" =>
+             s_clk_is_xtal <= ipbus_i.ipb_wdata(2) ; -- select clock source
+             
+            when "01" =>
+             s_logic_reset_ipb <= ipbus_i.ipb_wdata(0) ; -- write to reset
+            when others => null;
+            end case;
+       end if;
+
+        -- register reset signal to aid timing.
+        s_logic_reset_ipb_d1 <= s_logic_reset_ipb;
+        s_ipbus_ack <= ipbus_i.ipb_strobe and not s_ipbus_ack;
+        -- register the clock status signals onto IPBus domain.
+        --s_clock_status_ipb <=  x"0000000" & '0' & s_clk_is_xtal & s_locked_bufpll & s_locked_pll;
+        s_clock_status_ipb <=  x"0000000" & '0' & '0' & '0' & s_locked_pll; -- The only useful bit is not the PLL lock status. 
+    end if;
+    end process ipbus_write;
+
+    ipbus_o.ipb_ack <= s_ipbus_ack;
+    ipbus_o.ipb_err <= '0';
+
+    -----------------------------------------------------------------------------
+    -- IPBUS read
+    -----------------------------------------------------------------------------
+    with ipbus_i.ipb_addr(1 downto 0) select
+    ipbus_o.ipb_rdata <=
+        s_clock_status_ipb  when "00",
+        (others => '1')      when others;
+
+
+    -----------------------------------------------------------------------------
+    -- Generate reset signal on logic-clock domain
+    -- This relies on the IPBus clock being much slower than the 4x logic clock.
+    -----------------------------------------------------------------------------
+    p_reset: process (s_clk160_internal)
+    begin  -- process p_reset
+    if rising_edge(s_clk160_internal) then
+        s_logic_reset_d1 <= s_logic_reset_ipb_d1;
+        s_logic_reset_d2 <= s_logic_reset_d1;
+        s_logic_reset_d3 <= s_logic_reset_d2;
+        s_logic_reset_d4 <= s_logic_reset_d2 and ( not s_logic_reset_d3); 
+        s_logic_reset <= s_logic_reset_d4;
+    end if;
+    end process p_reset;
+    
+    logic_reset_o <= s_logic_reset;
+    logic_clocks_locked_o <= s_locked_bufpll and s_locked_pll;
+
+
+    -- Use Generate, since can't figure out how BUFGMUX works    
+    --  gen_extclk_input: if ( g_USE_EXTERNAL_CLK = 1) generate
+    --    s_DUT_Clk <= s_extclkG; -- Hard wire for now.    
+    --  end generate gen_extclk_input;
+    --  gen_intclk_input: if ( g_USE_EXTERNAL_CLK = 0) generate
+    s_DUT_Clk <= clk_logic_xtal_i; 
+    --  end generate gen_intclk_input;  
+  
+
+  
+    --! Clocking primitive
+    -------------------------------------
+    --! Instantiation of the PLL primitive
+    pll_base_inst : PLL_BASE
+    generic map
+       (BANDWIDTH            => "OPTIMIZED",
+        --CLK_FEEDBACK         => "CLKOUT0", --"CLKFBOUT",
+        CLK_FEEDBACK         => "CLKFBOUT",
+        COMPENSATION         => "SYSTEM_SYNCHRONOUS",
+        DIVCLK_DIVIDE        => 1,
+        CLKFBOUT_MULT        => 16,
+        CLKFBOUT_PHASE       => 0.000,
+        CLKOUT0_DIVIDE       => 2, -- 1-->2 move from 640 to 320
+        CLKOUT0_PHASE        => 0.000,
+        CLKOUT0_DUTY_CYCLE   => 0.500,
+        CLKOUT1_DIVIDE       => 4, -- 4-->8 move from 160 to 80
+        CLKOUT1_PHASE        => 0.000,
+        CLKOUT1_DUTY_CYCLE   => 0.500,
+        CLKOUT2_DIVIDE       => 16, -- 16--> 32 move from 40 to 20
+        CLKOUT2_PHASE        => 0.000,
+        CLKOUT2_DUTY_CYCLE   => 0.500,
+        CLKIN_PERIOD         => 25.000,
+        REF_JITTER           => 0.010)
+    port map(
+        -- Output clocks
+        CLKFBOUT            => s_clkfbout,
+        CLKOUT0             => s_clk320,
+        CLKOUT1             => s_clk160,
+        CLKOUT2             => s_clk40,
+        CLKOUT3             => open,
+        CLKOUT4             => open,
+        CLKOUT5             => open,
+        -- Status and control signals
+        LOCKED              => s_locked_pll,
+        --    RST                 => s_logic_clk_rst,
+        RST                 => s_reset_pll,
+        -- Input clock control
+        --    CLKFBIN             => s_clkfbout_buf,
+        CLKFBIN             => s_clkfbout,
+        CLKIN               => s_DUT_clk);
+        --      CLKIN               => clk_logic_xtal_i);
+
+    s_reset_pll <= Reset_i or s_logic_reset; 
+
+-----------------------------------------------
+--BUFPLL not supported by 7 Series. We need to replace it with BUFIO+BUFR 
+  -- Buffer the 16x clock and generate the ISERDES strobe signal
+--   BUFPLL_inst : BUFPLL
+--   generic map (
+--      DIVIDE => 4)
+--   port map (
+--      IOCLK  => s_clk640_internal,          -- 1-bit output: Output I/O clock
+--      LOCK   => s_locked_bufpll,            -- 1-bit output: Synchronized LOCK output
+--      SERDESSTROBE => strobe_16x_logic_O,   -- 1-bit output: Output SERDES strobe (connect to ISERDES2/OSERDES2)
+--      GCLK   => s_clk160_internal,          -- 1-bit input: BUFG clock input
+--      LOCKED => s_locked_pll,               -- 1-bit input: LOCKED input from PLL
+--      PLLIN  => s_clk640                    -- 1-bit input: Clock input from PLL
+--   );
+
+    BUFG_inst: BUFG
+    port map (
+        I => s_clk320,
+        O => s_clk320_internal    
+    );
+    
+--    BUFR_inst: BUFR
+--    generic map (
+--        BUFR_DIVIDE => "4"
+--    )
+--    port map (
+--        I   => s_clk160_internal,
+--        CE  => '1',
+--        CLR => '0',
+--        O   => ryanclock
+--    );
+    
+--    BUFG_inst2: BUFG
+--    port map (
+--        I => ryanclock,
+--        O => strobe_16x_logic_O    -- Not sure this is actually a strobe... Check
+--    );
+-----------------------------------------------
+
+	clk_8x_logic_o <= s_clk320_internal;
+	DUT_clk_o <= s_DUT_clk;
+
+
+  
+  -- Generate a strobe signal every 4 clocks. 
+  -- Can't use a clock signal as a combinatorial signal. Hence the baroque
+  -- method of generating a strobe. Add a mechanism to restart if the '1' gets
+  -- lost ....
+    
+    ------------------
+    generate_4x_strobe: process (s_clk160_internal)-- , s_clk40_out)
+    begin  -- process generate_4x_strobe
+    if rising_edge(s_clk160_internal) then
+        if s_logic_reset = '1' then
+            s_strobe_generator <= "1000";
+            s_logic_clk_generator <= "1100";
+            --s_strobe160 <= "1000000000000000";
+        elsif (s_locked_pll ='1') then
+            s_strobe_generator <= s_strobe_generator(2 downto 0) & s_strobe_generator(3); -- <- bit shift left      
+            s_logic_clk_generator <= s_logic_clk_generator(2 downto 0) & s_logic_clk_generator(3); -- <- bit shift left 
+            --s_strobe160 <= s_strobe160(14 downto 0) & s_strobe160(15);
+        end if;
+    end if;
+    end process generate_4x_strobe;
+    strobe_4x_logic_o <=  s_strobe_generator(3); -- Every 4 clocks this gets to 1 for one pulse
+    s_clk40_out <= s_logic_clk_generator(3); -- Every 4 clocks this gets to 1 for two pulses (so half F of the original clock? But then it is a clk80 not clk40.) Not used it seems.
+    ---------------
+    
+    generate_8x_strobe: process (s_clk320_internal)
+    begin
+    if rising_edge(s_clk320_internal) then
+        if s_logic_reset = '1' then
+            s_strobe160 <= "1000000000000000"; 
+            --s_strobe_generator <= "1111000000000000";--
+            --s_logic_clk_generator <= "1111111100000000";--
+        elsif (s_locked_pll ='1') then
+            s_strobe160 <= s_strobe160(14 downto 0) & s_strobe160(15);
+            --s_strobe_generator <= s_strobe_generator(14 downto 0) & s_strobe_generator(15); --       
+            --s_logic_clk_generator <= s_logic_clk_generator(14 downto 0) & s_logic_clk_generator(15); -- <- bit shift left
+        end if;
+    end if;
+    end process generate_8x_strobe;
+    strobe_8x_logic_O <= s_strobe160(15);
+    --strobe_4x_logic_o <=  s_strobe_generator(15); -- 
+    --s_clk40_out <= s_logic_clk_generator(15); -- 
+        
+
+  -- buffer 160MHz (4x) clock
+  --------------------------------------
+    clk160_o_buf : BUFG
+    port map(
+        O   => s_clk160_internal,
+        I   => s_clk160);
+    
+    clk_4x_logic_o <= s_clk160_internal;
+ 
+--   -- buffer 40MHz (1x) clock
+--  --------------------------------------
+--  clk40_o_buf : BUFG
+--  port map(
+--    O   => s_clk40_internal,
+--    I   => s_clk40);
+
+--  clk_logic_o <= s_clk40_out;
+
+END ARCHITECTURE rtl;
+
diff --git a/components/tlu/hdl/pulseClockDomainCrossing_rtl.vhd b/components/tlu/hdl/pulseClockDomainCrossing_rtl.vhd
new file mode 100644
index 00000000..663cac3b
--- /dev/null
+++ b/components/tlu/hdl/pulseClockDomainCrossing_rtl.vhd
@@ -0,0 +1,100 @@
+--=============================================================================
+--! @file pulseClockDomainCrossing_rtl.vhd
+--=============================================================================
+--
+-------------------------------------------------------------------------------
+-- --
+-- University of Bristol, High Energy Physics Group.
+-- --
+------------------------------------------------------------------------------- --
+-- VHDL Architecture worklib.pulseClockDomainCrossing.rtl
+--
+--! @brief Takes a pulse synchronized with one clock and produces a
+--! pulse synchronized to another clock.
+--
+--! @author David Cussans , David.Cussans@bristol.ac.uk
+--
+--! @date September/2012
+--
+--! @version v0.1
+--
+--! @details A "ring" of D-type flip-flops is used to transfer a strobe
+--! from the input clock domain to the output clock domain and then back again.
+--! The time taken to transit from input to output is approximately
+--! two clock cycles of clock_output_i .
+--! After an additional two cycles of clk_input_i another pulse can be sent
+--!
+--!
+--! <b>Dependencies:</b>\n
+--!
+--! <b>References:</b>\n
+--!
+--! <b>Modified by:</b>\n
+--! Author: 
+-------------------------------------------------------------------------------
+--! \n\n<b>Last changes:</b>\n
+-------------------------------------------------------------------------------
+--! @todo <next thing to do> \n
+--! <another thing to do> \n
+--
+--------------------------------------------------------------------------------
+
+library ieee;
+use ieee.std_logic_1164.all;
+
+entity pulseClockDomainCrossing is
+  port (
+    clk_input_i : in std_logic;         --! clock for input
+    pulse_i     : in std_logic;         --! input pulse. Active high
+    clk_output_i: in std_logic;         --! clock for output
+    pulse_o     : out std_logic         --! Single cycle pulse synchronized to clock_output_i
+    );
+
+end pulseClockDomainCrossing;
+
+architecture rtl of pulseClockDomainCrossing is
+
+  signal s_pulse_out , s_pulse_out_d1 , s_pulse_out_d2 , s_pulse_out_d3 , s_pulse_out_d4 , s_pulse_back_d1 , s_pulse_back_d2: std_logic := '0';
+  
+begin  -- rtl
+
+  -- purpose: registers and flip-flop on clk_input_i
+  p_input_clock_logic: process (clk_input_i)
+  begin  
+    if rising_edge(clk_input_i) then
+
+      -- Register signals coming from output clock domain back to the
+      -- input clock domain
+      s_pulse_back_d1 <= s_pulse_out_d2;
+      s_pulse_back_d2 <= s_pulse_back_d1;
+
+      -- JK flip-flop
+      if (s_pulse_back_d2 = '1')  then
+        s_pulse_out <= '0';
+      elsif (pulse_i = '1')  then
+        s_pulse_out <= '1';
+      end if;
+
+    end if;
+  end process p_input_clock_logic;
+
+  -- purpose: registers and flip-flop on clk_output_o
+  p_output_clock_logic: process (clk_output_i)
+  begin  
+    if rising_edge(clk_output_i) then
+
+      -- Register signal on input clock domain onto output clock domain
+      s_pulse_out_d1 <= s_pulse_out;
+      s_pulse_out_d2 <= s_pulse_out_d1;
+
+      s_pulse_out_d3 <= s_pulse_out_d2;
+      s_pulse_out_d4 <= s_pulse_out_d3;
+
+      -- Generate single clock-cycle pulse on pulse_o
+      pulse_o <= s_pulse_out_d3 and ( not s_pulse_out_d4 );
+
+    end if;
+  end process p_output_clock_logic;
+
+
+end rtl;
diff --git a/components/tlu/hdl/registerCounter_rtl.vhd b/components/tlu/hdl/registerCounter_rtl.vhd
new file mode 100644
index 00000000..de5587cd
--- /dev/null
+++ b/components/tlu/hdl/registerCounter_rtl.vhd
@@ -0,0 +1,113 @@
+--=============================================================================
+--! @file registerCounter_rtl.vhd
+--=============================================================================
+--
+-------------------------------------------------------------------------------
+-- --
+-- University of Bristol, High Energy Physics Group.
+-- --
+------------------------------------------------------------------------------- --
+-- VHDL Architecture worklib.registerCounter.rtl
+--
+--! @brief Regularly transfers the input to the output.\n
+--! One clock for input , one clock for output\n
+--! Can't just put entire bus through a couple of register stages,\n
+--! Since this will just swap meta-stability issues for race issues.
+--
+--! @author David Cussans , David.Cussans@bristol.ac.uk
+--
+--! @date 24/Nov/12
+--
+--! @version v0.1
+--
+--! @details A six stage "ring oscillator" is used to generate two strobes.
+--! One reads data into a register. The other registers the data to the output
+--! Three stages are clocked on clk_write_i , three stages are clocked on clk_read_i
+--! We could use gray-scale and put through registers, but this method
+--! should work well enough at the expense of latency.\n
+--! \n
+--! The time taken for an edge to travel round the complete loop is
+--! 2 cycles of clk_read_i and 2 cycles of clk_write_i plus two intervals
+--! that depend on the relative phase of clk_read_i and clk_write_i
+--!
+--!
+--!
+--! <b>Dependencies:</b>\n
+--!
+--! <b>References:</b>\n
+--!
+--! <b>Modified by:</b>\n
+--! Author:
+--! David Cussans, 26/2/14 - Added registers to output to aid timing closure.
+-------------------------------------------------------------------------------
+--! \n\n<b>Last changes:</b>\n
+-------------------------------------------------------------------------------
+--! @todo <next thing to do> \n
+--! <another thing to do> \n
+--
+--------------------------------------------------------------------------------
+
+library ieee;
+use ieee.std_logic_1164.all;
+
+entity registerCounter is
+  
+  generic (
+    g_DATA_WIDTH : positive := 15);     -- ! Width of counter
+
+  port (
+    clk_input_i : in std_logic;         -- ! clock for input
+    data_i      : in std_logic_vector(g_DATA_WIDTH-1 downto 0);  -- ! data to transfer to output
+    data_o     : out std_logic_vector(g_DATA_WIDTH-1 downto 0);  -- ! Data now in clk_read_i domain
+    clk_output_i  : in std_logic);        -- ! clock for output
+
+end registerCounter;
+
+architecture rtl of registerCounter is
+  signal s_ring_d0 , s_ring_d1 , s_ring_d2 , s_ring_d3 , s_ring_d4, s_ring_d5: std_logic := '0';  -- stages in "ring oscillator" used to generate strobes
+  signal s_registered_data : std_logic_vector(data_i'range) := ( others => '0');  -- ! Register to store data between clock domains
+
+  signal s_read_strobe , s_write_strobe : std_logic := '0';  -- ! Strobes high to register data from input and to output
+  
+begin  -- rtl
+
+  -- purpose: part of "ring oscillator" transfering strobe between clock domains
+  -- type   : combinational
+  -- inputs : clk_read_i
+  -- outputs: 
+  p_gen_capture_strobe: process (clk_input_i)
+  begin  -- process p_gen_capture_strobe
+    if rising_edge(clk_input_i) then
+      s_ring_d0 <= not s_ring_d5;
+      s_ring_d1 <= s_ring_d0;
+      s_ring_d2 <= s_ring_d1;
+
+      if s_read_strobe = '1' then
+        s_registered_data <= data_i;
+      end if;
+    end if;    
+  end process p_gen_capture_strobe;
+
+  s_read_strobe <= s_ring_d1 xor s_ring_d2;  --! Generate a strobe with
+                                                --width one clk_read_i
+  
+  -- purpose: part of "ring oscillator" transfering strobe between clock domains
+  -- type   : combinational
+  -- inputs : clk_output_i
+  -- outputs: 
+  p_gen_output_strobe: process (clk_output_i)
+  begin  -- process p_gen_output_strobe
+    if rising_edge(clk_output_i) then
+      s_ring_d3 <= s_ring_d2;
+      s_ring_d4 <= s_ring_d3;
+      s_ring_d5 <= s_ring_d4;
+
+      if s_write_strobe = '1' then
+        data_o <= s_registered_data;
+      end if;
+    end if;    
+  end process p_gen_output_strobe;
+
+  s_write_strobe <= s_ring_d4 xor s_ring_d5;  --! Generate a strobe
+                                                  --
+end rtl;
diff --git a/components/tlu/hdl/serdes_1_to_n_SDR.vhd b/components/tlu/hdl/serdes_1_to_n_SDR.vhd
new file mode 100644
index 00000000..a0a119e3
--- /dev/null
+++ b/components/tlu/hdl/serdes_1_to_n_SDR.vhd
@@ -0,0 +1,235 @@
+------------------------------------------------------------------------------/
+-- Copyright (c) 2009 Xilinx, Inc.
+-- This design is confidential and proprietary of Xilinx, All Rights Reserved.
+------------------------------------------------------------------------------/
+--   ____  ____
+--  /   /\/   /
+-- /___/  \  /   Vendor: Xilinx
+-- \   \   \/    Version: 1.0
+--  \   \        Filename: top_nto1_ddr_diff_rx.vhd
+--  /   /        Date Last Modified:  November 5 2009
+-- /___/   /\    Date Created: June 1 2009
+-- \   \  /  \
+--  \___\/\___\
+-- 
+--Device:   Spartan 6
+--Purpose:    Example differential input receiver for DDR clock and data using 2 x BUFIO2
+--    Serdes factor and number of data lines are set by constants in the code
+--Reference:
+--    
+--Revision History:
+--    Rev 1.0 - First created (nicks)
+--
+------------------------------------------------------------------------------/
+--
+--  Disclaimer: 
+--
+--    This disclaimer is not a license and does not grant any rights to the materials 
+--              distributed herewith. Except as otherwise provided in a valid license issued to you 
+--              by Xilinx, and to the maximum extent permitted by applicable law: 
+--              (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND WITH ALL FAULTS, 
+--              AND XILINX HEREBY DISCLAIMS ALL WARRANTIES AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, 
+--              INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-INFRINGEMENT, OR 
+--              FITNESS FOR ANY PARTICULAR PURPOSE; and (2) Xilinx shall not be liable (whether in contract 
+--              or tort, including negligence, or under any other theory of liability) for any loss or damage 
+--              of any kind or nature related to, arising under or in connection with these materials, 
+--              including for any direct, or any indirect, special, incidental, or consequential loss 
+--              or damage (including loss of data, profits, goodwill, or any type of loss or damage suffered 
+--              as a result of any action brought by a third party) even if such damage or loss was 
+--              reasonably foreseeable or Xilinx had been advised of the possibility of the same.
+--
+--  Critical Applications:
+--
+--    Xilinx products are not designed or intended to be fail-safe, or for use in any application 
+--    requiring fail-safe performance, such as life-support or safety devices or systems, 
+--    Class III medical devices, nuclear facilities, applications related to the deployment of airbags,
+--    or any other applications that could lead to death, personal injury, or severe property or 
+--    environmental damage (individually and collectively, "Critical Applications"). Customer assumes 
+--    the sole risk and liability of any use of Xilinx products in Critical Applications, subject only 
+--    to applicable laws and signalulations governing limitations on product liability.
+--
+--  THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS PART OF THIS FILE AT ALL TIMES.
+--
+------------------------------------------------------------------------------
+-------------------------------------------------------
+--! @file
+--! @brief Serdes 1 to n SDR
+--! @author Alvaro Dosil
+-------------------------------------------------------
+
+library IEEE;
+use IEEE.std_logic_1164.all;
+use IEEE.std_logic_unsigned.all ;
+
+library unisim ;
+use unisim.vcomponents.all ;
+
+entity serdes_1_to_n_SDR is 
+generic ( g_S : integer := 4);       --! Parameter to set the serdes factor 1..8
+port( clk_i  : in std_logic;         --! Fast clock to sample data (640MHz)
+      hclk_i   : in std_logic;       --! A quarter frequency clock (160MHz)
+      reset_i  : in std_logic;       --! reset signal
+      Data_i   : in std_logic;       --! 1-Bit Input data
+      strobe_i : in std_logic;       --! Iserdes strobe_i
+      Data_o   : out std_logic_vector(2*g_S-1 downto 0)  --! data output
+		);
+    
+end serdes_1_to_n_SDR;
+
+
+architecture Behavioral of serdes_1_to_n_SDR is
+
+signal s_Data_i_d_m  : std_logic;     -- Data_i delayed master
+signal s_Data_i_d_2m : std_logic;     -- Data_i delayed master second signal
+signal s_Data_i_d_s  : std_logic;     -- Data_i delayed slave
+signal s_Data_i_d_2s : std_logic;     -- Data_i delayed slave second signal
+signal s_Data_o      : std_logic_vector(2*g_S-1 downto 0);
+
+--signal s_clk_b       : std_logic;
+--signal s_ISERDES_STROBE : std_logic;
+
+begin
+	
+---- Generate the ISERDES strobe signal
+--
+--   BUFPLL_inst : BUFPLL
+--   generic map (
+--      DIVIDE => 4)
+--   port map (
+--      IOCLK => s_clk_b,                -- 1-bit output: Output I/O clock
+--      LOCK => open,                     -- 1-bit output: Synchronized LOCK output
+--      SERDESSTROBE => s_ISERDES_STROBE, -- 1-bit output: Output SERDES strobe (connect to ISERDES2/OSERDES2)
+--      GCLK => hclk_i,                     -- 1-bit input: BUFG clock input
+--      LOCKED => locked_pll_i,                  -- 1-bit input: LOCKED input from PLL
+--      PLLIN => clk_i                -- 1-bit input: Clock input from PLL
+--   );
+	
+
+  IODELAY2_M : IODELAY2
+  generic map (
+    COUNTER_WRAPAROUND => "WRAPAROUND",     -- "STAY_AT_LIMIT" or "WRAPAROUND" 
+    DATA_RATE          => "SDR",            -- "SDR" or "DDR" 
+    DELAY_SRC          => "IDATAIN",        -- "IO", "ODATAIN" or "IDATAIN" 
+    IDELAY_MODE        => "NORMAL",         -- "NORMAL" or "PCI" 
+    IDELAY_TYPE        => "FIXED",          -- "FIXED", "DEFAULT", "VARIABLE_FROM_ZERO", "VARIABLE_FROM_HALF_MAX" 
+                              --  or "DIFF_PHASE_DETECTOR" 
+    IDELAY_VALUE     => 0,                -- Amount of taps for fixed input delay (0-255)
+    IDELAY2_VALUE    => 0,                -- Delay value when IDELAY_MODE="PCI" (0-255)
+    ODELAY_VALUE     => 0,                -- Amount of taps fixed output delay (0-255)
+    SERDES_MODE      => "NONE"            -- "NONE", "MASTER" or "SLAVE" 
+--    SIM_TAPDELAY_VALUE=> 43                -- Per tap delay used for simulation in ps
+   )
+  port map (
+    BUSY     => open,          -- 1-bit output: Busy output after CAL
+    DATAOUT  => s_Data_i_d_m,     -- 1-bit output: Delayed data output to ISERDES/input register
+    DATAOUT2 => s_Data_i_d_2m,    -- 1-bit output: Delayed data output to general FPGA fabric
+    DOUT     => open,          -- 1-bit output: Delayed data output
+    TOUT     => open,          -- 1-bit output: Delayed 3-state output
+    CAL      => '0',           -- 1-bit input: Initiate calibration input
+    CE       => '0',           -- 1-bit input: Enable INC input
+    CLK      => '0',           -- 1-bit input: Clock input
+    IDATAIN  => Data_i,        -- 1-bit input: Data input (connect to top-level port or I/O buffer)
+    INC      => '0',           -- 1-bit input: Increment / decrement input
+    IOCLK0   => '0',           -- 1-bit input: Input from the I/O clock network
+    IOCLK1   => '0',           -- 1-bit input: Input from the I/O clock network
+    ODATAIN  => '0',           -- 1-bit input: Output data input from output register or OSERDES2.
+    RST      => reset_i,         -- 1-bit input: reset_i to zero or 1/2 of total delay period
+    T        => '0'            -- 1-bit input: 3-state input signal
+   );
+
+
+  IODELAY2_S : IODELAY2
+  generic map (
+    COUNTER_WRAPAROUND => "WRAPAROUND",  -- "STAY_AT_LIMIT" or "WRAPAROUND" 
+    DATA_RATE          => "SDR",         -- "SDR" or "DDR" 
+    DELAY_SRC          => "IDATAIN",     -- "IO", "ODATAIN" or "IDATAIN" 
+    IDELAY_MODE        => "NORMAL",      -- "NORMAL" or "PCI" 
+    IDELAY_TYPE        => "FIXED",       -- "FIXED", "DEFAULT", "VARIABLE_FROM_ZERO", "VARIABLE_FROM_HALF_MAX" 
+                              --  or "DIFF_PHASE_DETECTOR" 
+    IDELAY_VALUE       => 10,--29,            -- Amount of taps for fixed input delay (0-255) 10->0.75nS, 11->0.825nS
+    IDELAY2_VALUE      => 0,             -- Delay value when IDELAY_MODE="PCI" (0-255)
+    ODELAY_VALUE       => 0,             -- Amount of taps fixed output delay (0-255)
+    SERDES_MODE        => "NONE"         -- "NONE", "MASTER" or "SLAVE" 
+    --SIM_TAPDELAY_VALUE => 43              -- Per tap delay used for simulation in ps
+   )
+  port map (
+    BUSY     => open,             -- 1-bit output: Busy output after CAL
+    DATAOUT  => s_Data_i_d_s,        -- 1-bit output: Delayed data output to ISERDES/input register
+    DATAOUT2 => s_Data_i_d_2s,       -- 1-bit output: Delayed data output to general FPGA fabric
+    DOUT     => open,             -- 1-bit output: Delayed data output
+    TOUT     => open,             -- 1-bit output: Delayed 3-state output
+    CAL      => '0',              -- 1-bit input: Initiate calibration input
+    CE       => '0',              -- 1-bit input: Enable INC input
+    CLK      => '0',              -- 1-bit input: Clock input
+    IDATAIN  => Data_i,           -- 1-bit input: Data input (connect to top-level port or I/O buffer)
+    INC      => '0',              -- 1-bit input: Increment / decrement input
+    IOCLK0   => '0',              -- 1-bit input: Input from the I/O clock network
+    IOCLK1   => '0',              -- 1-bit input: Input from the I/O clock network
+    ODATAIN  => '0',              -- 1-bit input: Output data input from output register or OSERDES2.
+    RST      => reset_i,            -- 1-bit input: reset_i to zero or 1/2 of total delay period
+    T        => '0'               -- 1-bit input: 3-state input signal
+   );
+
+
+  ISERDES2_M : ISERDES2
+  generic map (
+    BITSLIP_ENABLE => FALSE,         -- Enable Bitslip Functionality (TRUE/FALSE)
+    DATA_RATE      => "SDR",         -- Data-rate ("SDR" or "DDR")
+    DATA_WIDTH     => g_S,             -- Parallel data width selection (2-8)
+    INTERFACE_TYPE => "NETWORKING_PIPELINED", -- "NETWORKING", "NETWORKING_PIPELINED" or "RETIMED" 
+    SERDES_MODE    => "NONE"         -- "NONE", "MASTER" or "SLAVE" 
+   )
+  port map (
+    -- Q1 - Q4: 1-bit (each) output Registered outputs to FPGA logic
+    Q1     => s_Data_o(1),
+    Q2     => s_Data_o(3),
+    Q3     => s_Data_o(5),
+    Q4     => s_Data_o(7), 
+    --SHIFTOUT => SHIFTOUTsig,       -- 1-bit output Cascade output signal for master/slave I/O
+    VALID   => open,                 -- 1-bit output Output status of the phase detector
+    BITSLIP => '0',                  -- 1-bit input Bitslip enable input
+    CE0     => '1',                  -- 1-bit input Clock enable input
+	 CLK0    => clk_i,                -- 1-bit input I/O clock network input
+    CLK1    => '0',                  -- 1-bit input Secondary I/O clock network input
+    CLKDIV  => hclk_i,               -- 1-bit input FPGA logic domain clock input
+    D       => s_Data_i_d_m,         -- 1-bit input Input data
+    IOCE    => strobe_i,             -- 1-bit input Data strobe_i input
+    RST     => reset_i,              -- 1-bit input Asynchronous reset_i input
+    SHIFTIN => '0'                   -- 1-bit input Cascade input signal for master/slave I/O
+   );
+
+  ISERDES2_S : ISERDES2
+  generic map (
+    BITSLIP_ENABLE => FALSE,          -- Enable Bitslip Functionality (TRUE/FALSE)
+    DATA_RATE      => "SDR",       -- Data-rate ("SDR" or "DDR")
+    DATA_WIDTH     => g_S,             -- Parallel data width selection (2-8)
+    INTERFACE_TYPE => "NETWORKING_PIPELINED", -- "NETWORKING", "NETWORKING_PIPELINED" or "RETIMED" 
+    SERDES_MODE    => "NONE"          -- "NONE", "MASTER" or "SLAVE" 
+   )
+  port map (
+    -- Q1 - Q4: 1-bit (each) output Registered outputs to FPGA logic
+    Q1     => s_Data_o(0),
+    Q2     => s_Data_o(2),
+    Q3     => s_Data_o(4),
+    Q4     => s_Data_o(6),
+    --SHIFTOUT => SHIFTOUTsig,     -- 1-bit output Cascade output signal for master/slave I/O
+    VALID   => open,               -- 1-bit output Output status of the phase detector
+    BITSLIP => '0',                -- 1-bit input Bitslip enable input
+    CE0     => '1',                -- 1-bit input Clock enable input
+	 CLK0    => clk_i,              -- 1-bit input I/O clock network input
+    CLK1    => '0',                -- 1-bit input Secondary I/O clock network input
+    CLKDIV  => hclk_i,             -- 1-bit input FPGA logic domain clock input
+    D       => s_Data_i_d_s,       -- 1-bit input Input data
+    IOCE    => strobe_i,           -- 1-bit input Data strobe_i input
+    RST     => reset_i,            -- 1-bit input Asynchronous reset_i input
+    SHIFTIN => '0'                 -- 1-bit input Cascade input signal for master/slave I/O
+   );
+
+reg_out : process(hclk_i)
+begin
+  if rising_edge(hclk_i) then
+    Data_o <= s_Data_o;
+  end if;
+end process;
+
+end Behavioral;
diff --git a/components/tlu/hdl/single_pulse_rtl.vhd b/components/tlu/hdl/single_pulse_rtl.vhd
new file mode 100644
index 00000000..e5da6214
--- /dev/null
+++ b/components/tlu/hdl/single_pulse_rtl.vhd
@@ -0,0 +1,93 @@
+-------------------------------------------------------------------------------
+--! @file
+-------------------------------------------------------------------------------
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+
+-------------------------------------------------------------------------------
+--
+-- VHDL for producing a single clock low-high-low pulse on the rising edge
+-- of input signal (LEVEL)
+--
+-- David Cussans, Ocala, April 2005
+--
+-- LEVEL (input) - when LEVEL goes high, PULSE goes high for one clock cycle
+--               - on next rising edge of CLK
+-- CLK (input)   - rising edge active
+-- PULSE         - changes on rising edge of clk
+--
+--! @brief gives a single cycle pulse ( high active) following the rising edge of LEVEL
+
+entity single_pulse is
+  generic (
+    g_PRE_REGISTER  : boolean := false;  -- --! Set true to put a register before rising edge detect
+    g_POST_REGISTER : boolean := false);  -- --! Set tru to put a register after rising edge detect
+  port (
+    level : in  std_logic; --! When LEVEL goes high, PULSE goes high for one clock cycle
+    clk : in  std_logic; --! rising edge active
+    pulse : out  std_logic              --! Pulses high for one cycle
+    );
+end entity single_pulse;
+
+architecture rtl of single_pulse is
+
+  signal pre_level, pre_pulse , x, v : std_logic;
+  
+begin  -- architecture rtl
+
+  -----------------------------------------------
+  -- Optional register on input
+  -----------------------------------------------
+  gen_pre_ff: if g_PRE_REGISTER=true generate
+    ffpre: process (clk , level) is
+    begin  -- process ff1
+      if rising_edge(clk) then
+        pre_level <= level;
+      end if;
+    end process ffpre;
+  end generate gen_pre_ff;
+
+  gen_no_pre_ff: if g_PRE_REGISTER=false generate
+    pre_level <= level;
+  end generate gen_no_pre_ff;
+
+  -----------------------------------------------
+  -- Register signal
+  -----------------------------------------------  
+  ff1: process (clk , level) is
+  begin  -- process ff1
+    if rising_edge(clk) then
+      x <= pre_level;
+    end if;
+  end process ff1;
+
+  -----------------------------------------------
+  -- Edge detection logic
+  -----------------------------------------------  
+  ff2: process (clk , x) is
+  begin  -- process ff2
+    if rising_edge(clk) then
+      v <= not x;
+    end if;
+  end process ff2;                           
+                           
+  pre_pulse <= ( x and v );
+
+
+  -----------------------------------------------
+  -- Optional register on output
+  -----------------------------------------------
+  gen_post_ff: if g_POST_REGISTER=true generate
+    ffpost: process (clk , level) is
+    begin  -- process ff1
+      if rising_edge(clk) then
+        pulse <= pre_pulse;
+      end if;
+    end process ffpost;
+  end generate gen_post_ff;
+
+  gen_no_post_ff: if g_POST_REGISTER=false generate
+    pulse <= pre_pulse;
+  end generate gen_no_post_ff;
+  
+end architecture rtl;
diff --git a/components/tlu/hdl/stretchPulse_rtl.vhd b/components/tlu/hdl/stretchPulse_rtl.vhd
new file mode 100644
index 00000000..957a4c6d
--- /dev/null
+++ b/components/tlu/hdl/stretchPulse_rtl.vhd
@@ -0,0 +1,92 @@
+--=============================================================================
+--! @file stretchPulse_rtl.vhd
+--=============================================================================
+--
+-------------------------------------------------------------------------------
+-- --
+-- University of Bristol, High Energy Physics Group.
+-- --
+------------------------------------------------------------------------------- --
+-- VHDL Architecture fmc_mTLU_lib.triggerLogic.rtl
+--
+--! @brief Takes a pulse on input, stretches it and delays it.
+--
+-------------------------------------------------------------------------------
+
+LIBRARY ieee;
+USE ieee.std_logic_1164.all;
+USE ieee.numeric_std.all;
+
+--! Definition of trigger time
+USE work.fmcTLU.all;                    
+
+entity stretchPulse is
+  
+  generic (
+    g_PARAM_WIDTH : positive := 5);  --! number of bits in parameters (width,  delay)
+
+  port (
+    clk_i        : in  std_logic;       --! Active high
+    pulse_i      : in  std_logic;       --! Active high
+    pulse_o      : out std_logic;       --! delayed and stretched
+    triggerTime_i : in t_triggerTime;   --! 5-bit time
+    triggerTime_o : out t_triggerTime;  --! Delayed by same amount as pulse
+    
+    pulseWidth_i : in  std_logic_vector(g_PARAM_WIDTH-1 downto 0);  --! Minimum pulse width ( in clock cycles )
+    pulseDelay_i : in  std_logic_vector(g_PARAM_WIDTH-1 downto 0) --! Delay is pulseDelay_i +1 clock cycles
+    );      
+
+end entity stretchPulse;
+
+-- For now just delay the pulse.
+architecture rtl of stretchPulse is
+
+  signal s_delaySR : std_logic_vector( (2**g_PARAM_WIDTH) -1 downto 0) := ( others => '0' );  -- --! Shift register to generate delay
+  signal s_stretchSR : std_logic_vector( (2**g_PARAM_WIDTH) -1 downto 0) := ( others => '0' );  -- --! Shift register to generate stretch
+  signal s_delayedPulse : std_logic := '0';  -- delayed pulse before stretch
+
+  signal s_triggerTimeSR : t_triggerTimeArray ( (2**g_PARAM_WIDTH)-1 downto 0) := ( others => ( others => '0'));  -- array of trigger times
+  signal s_triggerTime_d1 : t_triggerTime := ( others => '0');  -- shim out by one more clock cycle...
+  signal s_stretchedTriggerTime : t_triggerTime := ( others => '0');  -- shim out by one more clock cycle...
+  
+begin  -- architecture rtl
+
+  
+  --! Delay pulse
+  p_delayPulse: process (clk_i , pulse_i) is
+  begin  -- process p_delayPulse
+    if rising_edge(clk_i) then
+      s_delaySR <= s_delaySR( (s_delaySR'left -1) downto 0 ) & pulse_i;
+      s_delayedPulse <= s_delaySR( to_integer(unsigned(pulseDelay_i)) );
+
+      -- delay the trigger time to match trigger delay
+      s_triggerTimeSR <=  s_triggerTimeSR( (s_triggerTimeSR'left -1)  downto 0 ) & triggerTime_i;
+      s_triggerTime_d1 <=  s_triggerTimeSR( to_integer(unsigned(pulseDelay_i)) ); 
+--      triggerTime_o <= s_triggerTime_d1 ;
+      
+    end if;
+  end process p_delayPulse;
+
+  --! Stretch pulse. the output pulse is always at least as long as the input pulse
+  p_stretchPulse: process (clk_i , pulse_i) is
+  begin  -- process p_stretchPulse
+    if rising_edge(clk_i) then
+      if s_delayedPulse = '1' then
+        s_stretchSR <= ( others => '1' ) ;
+        pulse_o <= s_delayedPulse ;
+      else
+        s_stretchSR <= s_stretchSR( (s_stretchSR'left -1) downto 0 ) & '0';
+        pulse_o <= s_stretchSR( to_integer(unsigned(pulseWidth_i)) );
+      end if;
+
+      if s_stretchSR( to_integer(unsigned(pulseWidth_i)) ) = '0' then
+        --s_stretchedTriggerTime <= s_triggerTimeSR( to_integer(unsigned(pulseDelay_i)) );
+        triggerTime_o <= s_triggerTime_d1;
+      end if;
+      --triggerTime_o <= s_stretchedTriggerTime ;
+      
+    end if;
+  end process p_stretchPulse;
+
+end architecture rtl;
+
diff --git a/components/tlu/hdl/sychronizedIPBusCtrlRegV_rtl.vhd b/components/tlu/hdl/sychronizedIPBusCtrlRegV_rtl.vhd
new file mode 100644
index 00000000..1e1d7512
--- /dev/null
+++ b/components/tlu/hdl/sychronizedIPBusCtrlRegV_rtl.vhd
@@ -0,0 +1,83 @@
+--=============================================================================
+--! @file 
+--=============================================================================
+--
+-------------------------------------------------------------------------------
+-- --
+-- University of Bristol, High Energy Physics Group.
+-- --
+------------------------------------------------------------------------------- --
+LIBRARY ieee;
+USE ieee.std_logic_1164.all;
+
+USE work.ipbus.all;
+use work.ipbus_reg_types.all;
+
+--! @brief IPBus registers synchronzied onto logic clock
+--!
+--! @details Uses DMN ipbus_ctrlreg_v - originally tried to use
+--! ipbus_ctrlreg_sync, but had poor results and added own synchronzier.
+
+entity synchronizedIPBusCtrlRegV_rtl is
+	generic(
+		N_CTRL: positive := 1;
+		N_STAT: positive := 1
+	);
+	port(
+		ipbus_clk_i: in std_logic;
+		ipbus_reset_i: in std_logic;
+		ipbus_i: in ipb_wbus;
+		ipbus_o: out ipb_rbus;
+                logic_clk_i: in std_logic;
+		status_to_ipbus_i: in ipb_reg_v(N_STAT - 1 downto 0); --! Synchronized to logic_clk_i       
+		sync_control_from_ipbus_o: out ipb_reg_v(N_CTRL - 1 downto 0); --! Synchronized to logic_clk_i
+		stb_o: out std_logic_vector(N_CTRL - 1 downto 0) --! high when change made to a control register. Broken ( needs to be retimed )
+	);
+	
+end synchronizedIPBusCtrlRegV_rtl;
+
+
+architecture rtl of synchronizedIPBusCtrlRegV_rtl is
+
+  signal s_sync_status_to_ipbus : ipb_reg_v(c_N_STAT-1 downto 0);
+  signal s_control_from_ipbus   : ipb_reg_v(c_N_CTRL-1 downto 0);
+ 
+begin  -- architecture rtl
+
+  
+  ipbus_registers: entity work.ipbus_ctrlreg_v
+    generic map(
+      N_CTRL => c_N_CTRL,
+      N_STAT => c_N_STAT
+      )
+    port map(
+      clk => ipbus_clk_i,
+      reset=> ipbus_reset_i ,
+      ipbus_in=>  ipbus_i,
+      ipbus_out=> ipbus_o,
+      d=>  s_sync_status_to_ipbus,
+      q=>  s_control_from_ipbus,
+      stb=>  stb_o
+      );
+
+  -- Synchronize registers from logic clock to ipbus.
+    sync_status: entity work.synchronizeRegisters
+    generic map (
+      g_NUM_REGISTERS => c_N_STAT )
+    port map (
+      clk_input_i => clk_4x_logic_i,
+      data_i      =>  status_to_ipbus_i,
+      data_o      => s_sync_status_to_ipbus,
+      clk_output_i => ipbus_clk_i);
+
+    -- Synchronize registers from logic clock to ipbus.
+    sync_ctrl: entity work.synchronizeRegisters
+    generic map (
+      g_NUM_REGISTERS => c_N_CTRL )
+    port map (
+      clk_input_i => ipbus_clk_i,
+      data_i      =>  s_control_from_ipbus,
+      data_o      => sync_control_from_ipbus_o,
+      clk_output_i => clk_4x_logic_i);
+
+end architecture rtl;
diff --git a/components/tlu/hdl/sync_reg.vhd b/components/tlu/hdl/sync_reg.vhd
new file mode 100644
index 00000000..e88eb54b
--- /dev/null
+++ b/components/tlu/hdl/sync_reg.vhd
@@ -0,0 +1,50 @@
+----------------------------------------------------------------------------------
+-- Company: Universidade de Santiago de Compostela
+-- Engineer: Alvaro Dosil
+-- 
+-- Create Date:    15/08/2012 
+-- Module Name:    Conf_Regs - Behavioral 
+-- Revision 1.00 - File Created
+-- Additional Comments: 
+----------------------------------------------------------------------------------
+-------------------------------------------------------
+--! @file
+--! @brief Synchronization module 32b
+--! @author Alvaro Dosil
+-------------------------------------------------------
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+
+
+entity sync_reg is
+  generic(g_Data_width : positive := 32);
+  port(
+    clk_i : in std_logic;  --! synchronous clock
+    Async_i : in std_logic_vector(g_Data_width-1 downto 0); --! Asynchronous input data
+	 Sync_o : out std_logic_vector(g_Data_width-1 downto 0)); --! Synchronous output data
+  
+end sync_reg;
+
+--! @brief
+--! @details Synchronize words (n bits)of data 
+
+architecture Behavioral of sync_reg is
+
+signal s_async_i : std_logic_vector(g_Data_width-1 downto 0);
+signal s_sync_o : std_logic_vector(g_Data_width-1 downto 0);
+begin
+  
+loop0: for i in 0 to g_Data_width-1 generate
+  begin
+  reg: entity work.Reg_2clks
+    port map(
+	   clk_i => clk_i,
+		async_i => s_async_i(i),
+		sync_o => s_sync_o(i));
+  end generate;
+ 
+s_async_i <= Async_i; 
+Sync_o <= s_sync_o;
+
+end Behavioral;
+
diff --git a/components/tlu/hdl/synchronizeRegisters_fifo.vhd b/components/tlu/hdl/synchronizeRegisters_fifo.vhd
new file mode 100644
index 00000000..ebae77b4
--- /dev/null
+++ b/components/tlu/hdl/synchronizeRegisters_fifo.vhd
@@ -0,0 +1,110 @@
+--=============================================================================
+--! @file synchronizeRegisters_rtl.vhd
+--=============================================================================
+--
+-------------------------------------------------------------------------------
+-- --
+-- University of Bristol, High Energy Physics Group.
+-- --
+------------------------------------------------------------------------------- --
+-- VHDL Architecture worklib.synchronizeRegisters.rtl
+--
+--------------------------------------------------------------------------------
+
+library ieee;
+use ieee.std_logic_1164.all;
+
+use work.ipbus_reg_types.all;
+
+
+
+entity synchronizeRegisters_fifo is
+  
+  generic (
+    --g_DATA_WIDTH : positive := 15;
+    g_NUM_REGISTERS : positive := 1);     --! Number of registers to synchronize
+
+  port (
+    clk_input_i : in std_logic;         --! clock for input
+    data_i      : in ipb_reg_v(g_NUM_REGISTERS-1 downto 0);  --! array of registers to transfer to output
+    data_o     : out ipb_reg_v(g_NUM_REGISTERS-1 downto 0);  --! Data now in clk_output_i domain
+    clk_output_i  : in std_logic);        --! clock for output
+
+end synchronizeRegisters_fifo;
+
+architecture rtl of synchronizeRegisters_fifo is
+  signal s_ring_d0 , s_ring_d1 , s_ring_d2 , s_ring_d3 , s_ring_d4, s_ring_d5: std_logic := '0';  -- stages in "ring oscillator" used to generate strobes
+  signal s_registered_data : ipb_reg_v(data_i'range) := ( others => ( others => '0'));  --! Register to store data between clock domains
+
+  signal s_read_strobe , s_write_strobe : std_logic := '0';  --! Strobes high to register data from input and to output
+  
+  COMPONENT sync_fifo
+    PORT (
+      rst : IN STD_LOGIC;
+      wr_clk : IN STD_LOGIC;
+      rd_clk : IN STD_LOGIC;
+      din : IN STD_LOGIC_VECTOR(31 DOWNTO 0);
+      wr_en : IN STD_LOGIC;
+      rd_en : IN STD_LOGIC;
+      dout : OUT STD_LOGIC_VECTOR(31 DOWNTO 0);
+      full : OUT STD_LOGIC;
+      empty : OUT STD_LOGIC
+    );
+  END COMPONENT;
+  
+begin  -- rtl
+
+  --! purpose: part of "ring oscillator" transfering strobe between clock domains
+  -- type   : combinational
+  -- inputs : clk_read_i
+  -- outputs: 
+  gen_syncReg: for v_reg in 0 to g_NUM_REGISTERS-1 generate
+      mySynchReg : sync_fifo
+        PORT MAP (
+          rst => '0',
+          wr_clk => clk_input_i,
+          rd_clk => clk_output_i,
+          din => data_i(v_reg),
+          wr_en => '1',
+          rd_en => '1',
+          dout => data_o(v_reg),
+          full => open,
+          empty => open
+        );
+  end generate gen_syncReg;
+  
+--  p_gen_capture_strobe: process (clk_input_i)
+--  begin  -- process p_gen_capture_strobe
+--    if rising_edge(clk_input_i) then
+--      s_ring_d0 <= not s_ring_d5;
+--      s_ring_d1 <= s_ring_d0;
+--      s_ring_d2 <= s_ring_d1;
+
+--      if s_read_strobe = '1' then
+--        s_registered_data <= data_i;
+--      end if;
+--    end if;    
+--  end process p_gen_capture_strobe;
+
+--  s_read_strobe <= s_ring_d1 xor s_ring_d2; --! Generate a strobe (with width one clk_read_i) that captures data at input
+  
+--  --! purpose: part of "ring oscillator" transfering strobe between clock domains
+--  -- type   : combinational
+--  -- inputs : clk_output_i
+--  -- outputs: 
+--  p_gen_output_strobe: process (clk_output_i)
+--  begin  -- process p_gen_output_strobe
+--    if rising_edge(clk_output_i) then
+--      s_ring_d3 <= s_ring_d2;
+--      s_ring_d4 <= s_ring_d3;
+--      s_ring_d5 <= s_ring_d4;
+
+--      if s_write_strobe = '1' then
+--        data_o <= s_registered_data;
+--      end if;
+--    end if;    
+--  end process p_gen_output_strobe;
+
+--  s_write_strobe <= s_ring_d4 xor s_ring_d5; --! Generate the strobe that causes data to be written to output
+
+end rtl;
diff --git a/components/tlu/hdl/synchronizeRegisters_rtl.vhd b/components/tlu/hdl/synchronizeRegisters_rtl.vhd
new file mode 100644
index 00000000..bb7d59a7
--- /dev/null
+++ b/components/tlu/hdl/synchronizeRegisters_rtl.vhd
@@ -0,0 +1,103 @@
+--=============================================================================
+--! @file synchronizeRegisters_rtl.vhd
+--=============================================================================
+--
+-------------------------------------------------------------------------------
+-- --
+-- University of Bristol, High Energy Physics Group.
+-- --
+------------------------------------------------------------------------------- --
+-- VHDL Architecture worklib.synchronizeRegisters.rtl
+--
+--------------------------------------------------------------------------------
+
+library ieee;
+use ieee.std_logic_1164.all;
+
+use work.ipbus_reg_types.all;
+
+--! @brief Regularly transfers the input to the output.
+--! One clock for input , one clock for output
+--! Can't just put entire bus through a couple of register stages,
+--! Since this will just swap meta-stability issues for race issues.
+--!
+--! @author David Cussans , David.Cussans@bristol.ac.uk
+--!
+--! @date 24/Nov/12
+--!
+--! @version v0.1
+--!
+--! @details A six stage "ring oscillator" is used to generate two strobes.
+--! One reads data into a register. The other registers the data to the output
+--! Three stages are clocked on clk_write_i , three stages are clocked on clk_read_i
+--! The time taken for an edge to travel round the complete loop is
+--! 2 cycles of clk_read_i and 2 cycles of clk_write_i plus two intervals
+--! that depend on the relative phase of clk_read_i and clk_write_i
+--!
+--! Based on registerCounters
+--!
+--! <b>Modified by:</b>\n
+--! Author:
+--! David Cussans, 26/2/14 - Added registers to output to aid timing closure.
+
+entity synchronizeRegisters is
+  
+  generic (
+    --g_DATA_WIDTH : positive := 15;
+    g_NUM_REGISTERS : positive := 1);     --! Number of registers to synchronize
+
+  port (
+    clk_input_i : in std_logic;         --! clock for input
+    data_i      : in ipb_reg_v(g_NUM_REGISTERS-1 downto 0);  --! array of registers to transfer to output
+    data_o     : out ipb_reg_v(g_NUM_REGISTERS-1 downto 0);  --! Data now in clk_output_i domain
+    clk_output_i  : in std_logic);        --! clock for output
+
+end synchronizeRegisters;
+
+architecture rtl of synchronizeRegisters is
+  signal s_ring_d0 , s_ring_d1 , s_ring_d2 , s_ring_d3 , s_ring_d4, s_ring_d5: std_logic := '0';  -- stages in "ring oscillator" used to generate strobes
+  signal s_registered_data : ipb_reg_v(data_i'range) := ( others => ( others => '0'));  --! Register to store data between clock domains
+
+  signal s_read_strobe , s_write_strobe : std_logic := '0';  --! Strobes high to register data from input and to output
+  
+begin  -- rtl
+
+  --! purpose: part of "ring oscillator" transfering strobe between clock domains
+  -- type   : combinational
+  -- inputs : clk_read_i
+  -- outputs: 
+  p_gen_capture_strobe: process (clk_input_i)
+  begin  -- process p_gen_capture_strobe
+    if rising_edge(clk_input_i) then
+      s_ring_d0 <= not s_ring_d5;
+      s_ring_d1 <= s_ring_d0;
+      s_ring_d2 <= s_ring_d1;
+
+      if s_read_strobe = '1' then
+        s_registered_data <= data_i;
+      end if;
+    end if;    
+  end process p_gen_capture_strobe;
+
+  s_read_strobe <= s_ring_d1 xor s_ring_d2; --! Generate a strobe (with width one clk_read_i) that captures data at input
+  
+  --! purpose: part of "ring oscillator" transfering strobe between clock domains
+  -- type   : combinational
+  -- inputs : clk_output_i
+  -- outputs: 
+  p_gen_output_strobe: process (clk_output_i)
+  begin  -- process p_gen_output_strobe
+    if rising_edge(clk_output_i) then
+      s_ring_d3 <= s_ring_d2;
+      s_ring_d4 <= s_ring_d3;
+      s_ring_d5 <= s_ring_d4;
+
+      if s_write_strobe = '1' then
+        data_o <= s_registered_data;
+      end if;
+    end if;    
+  end process p_gen_output_strobe;
+
+  s_write_strobe <= s_ring_d4 xor s_ring_d5; --! Generate the strobe that causes data to be written to output
+
+end rtl;
diff --git a/components/tlu/hdl/test_inToOut.vhd b/components/tlu/hdl/test_inToOut.vhd
new file mode 100644
index 00000000..91b60eec
--- /dev/null
+++ b/components/tlu/hdl/test_inToOut.vhd
@@ -0,0 +1,106 @@
+----------------------------------------------------------------------------------
+-- Company: 
+-- Engineer: 
+-- 
+-- Create Date: 09.02.2017 14:45:31
+-- Design Name: 
+-- Module Name: test_inToOut - Behavioral
+-- Project Name: 
+-- Target Devices: 
+-- Tool Versions: 
+-- Description: 
+-- 
+-- Dependencies: 
+-- 
+-- Revision:
+-- Revision 0.01 - File Created
+-- Additional Comments:
+-- 
+----------------------------------------------------------------------------------
+
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+
+-- Uncomment the following library declaration if using
+-- arithmetic functions with Signed or Unsigned values
+use IEEE.NUMERIC_STD.ALL;
+
+-- Uncomment the following library declaration if instantiating
+-- any Xilinx leaf cells in this code.
+library UNISIM;
+use UNISIM.VComponents.all;
+
+entity test_inToOut is
+    Generic(
+        DUT_TOGGLE : integer  :=1; --HDMI that toggles
+        DUT_OUT : integer := 2; --HDMI used as input
+        DUT_IN : integer := 0; --HDMI used as output
+        DUT_DULL : integer := 3 --HDMI not used
+    );
+    Port ( clk_in : in STD_LOGIC;
+           busy_in : in STD_LOGIC_VECTOR (3 downto 0);
+           control_in : in STD_LOGIC_VECTOR (3 downto 0);
+           trig_in : in STD_LOGIC_VECTOR (3 downto 0);
+           clkDut_in : in STD_LOGIC_VECTOR (3 downto 0);
+           spare_in : in STD_LOGIC_VECTOR (3 downto 0);
+           busy_out : out STD_LOGIC_VECTOR (3 downto 0);
+           control_out : out STD_LOGIC_VECTOR (3 downto 0);
+           trig_out : out STD_LOGIC_VECTOR (3 downto 0);
+           clkDut_out : out STD_LOGIC_VECTOR (3 downto 0);
+           spare_out : out STD_LOGIC_VECTOR (3 downto 0));
+end test_inToOut;
+
+architecture Behavioral of test_inToOut is
+
+    signal prescaler : unsigned(23 downto 0);
+    signal outcounter: unsigned(4 downto 0);
+    signal clk_slow_i : std_logic_vector(4 downto 0);
+    signal placeholder: std_logic_vector(4 downto 0);
+
+begin
+
+    gen_clk : process (clk_in)
+    begin  -- process gen_clk
+    if rising_edge(clk_in) then   -- rising clock edge
+      if prescaler = X"30D40" then     -- 200 000 in hex
+        prescaler   <= (others => '0');
+        --clk_slow_i   <= not clk_slow_i;
+        outcounter <= outcounter +1;
+        clk_slow_i(0) <= outcounter(0);
+        clk_slow_i(1) <= outcounter(1);
+        clk_slow_i(2) <= outcounter(2);
+        clk_slow_i(3) <= outcounter(3);
+        clk_slow_i(4) <= outcounter(4);
+      else
+        prescaler <= prescaler + "1";
+      end if;
+      clkDut_out(DUT_TOGGLE) <= clk_slow_i(0);
+      busy_out(DUT_TOGGLE) <= clk_slow_i(1);
+      control_out(DUT_TOGGLE) <= clk_slow_i(2);
+      trig_out(DUT_TOGGLE) <= clk_slow_i(3);
+      spare_out(DUT_TOGGLE) <= clk_slow_i(4);
+      
+      clkDut_out(DUT_TOGGLE) <= clk_slow_i(0);
+      busy_out(DUT_TOGGLE) <= clk_slow_i(1);
+      control_out(DUT_TOGGLE) <= clk_slow_i(2);
+      trig_out(DUT_TOGGLE) <= clk_slow_i(3);
+      spare_out(DUT_TOGGLE) <= clk_slow_i(4);
+  
+      clkDut_out(DUT_OUT) <= clkDut_in(DUT_IN);
+      busy_out(DUT_OUT) <= busy_in(DUT_IN);
+      control_out(DUT_OUT) <= control_in(DUT_IN);
+      trig_out(DUT_OUT) <= trig_in(DUT_IN);
+      spare_out(DUT_OUT) <= spare_in(DUT_IN);
+      
+      clkDut_out(DUT_DULL) <= '0';
+      busy_out(DUT_DULL) <= '0';
+      control_out(DUT_DULL) <= '0';
+      trig_out(DUT_DULL) <= '0';
+      spare_out(DUT_DULL) <= '0';
+    end if;
+    end process gen_clk;
+    
+
+
+end Behavioral;
diff --git a/components/tlu/hdl/test_inputToOutput.vhd b/components/tlu/hdl/test_inputToOutput.vhd
new file mode 100644
index 00000000..b8cbb1d9
--- /dev/null
+++ b/components/tlu/hdl/test_inputToOutput.vhd
@@ -0,0 +1,53 @@
+----------------------------------------------------------------------------------
+-- Company: 
+-- Engineer: 
+-- 
+-- Create Date: 09.02.2017 12:54:36
+-- Design Name: 
+-- Module Name: test_inputToOutput - Behavioral
+-- Project Name: 
+-- Target Devices: 
+-- Tool Versions: 
+-- Description: 
+-- 
+-- Dependencies: 
+-- 
+-- Revision:
+-- Revision 0.01 - File Created
+-- Additional Comments:
+-- 
+----------------------------------------------------------------------------------
+
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+
+-- Uncomment the following library declaration if using
+-- arithmetic functions with Signed or Unsigned values
+--use IEEE.NUMERIC_STD.ALL;
+
+-- Uncomment the following library declaration if instantiating
+-- any Xilinx leaf cells in this code.
+library UNISIM;
+use UNISIM.VComponents.all;
+
+entity test_inputToOutput is
+    Port ( clk_i : in STD_LOGIC;
+           test_i : in STD_LOGIC_VECTOR (3 downto 0);
+           test_o : out STD_LOGIC_VECTOR (3 downto 0));
+end test_inputToOutput;
+
+architecture Behavioral of test_inputToOutput is
+    signal synch_lines : std_logic_vector(3 downto 0);
+begin
+    synch_io : process (clk_i)
+    begin
+        if rising_edge(clk_i) then
+            synch_lines <= test_i;
+            test_o(1) <= synch_lines(0);
+            test_o(3) <= synch_lines(2);
+            test_o(0) <= '0';
+            test_o(2) <= '1';
+        end if;
+    end process synch_io;
+end Behavioral;
diff --git a/components/tlu/hdl/test_toggleLines.vhd b/components/tlu/hdl/test_toggleLines.vhd
new file mode 100644
index 00000000..ed585cdb
--- /dev/null
+++ b/components/tlu/hdl/test_toggleLines.vhd
@@ -0,0 +1,70 @@
+----------------------------------------------------------------------------------
+-- Company: 
+-- Engineer: 
+-- 
+-- Create Date: 06.02.2017 10:09:26
+-- Design Name: 
+-- Module Name: test_toggleLines - Behavioral
+-- Project Name: 
+-- Target Devices: 
+-- Tool Versions: 
+-- Description: 
+-- 
+-- Dependencies: 
+-- 
+-- Revision:
+-- Revision 0.01 - File Created
+-- Additional Comments:
+-- 
+----------------------------------------------------------------------------------
+
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+
+-- Uncomment the following library declaration if using
+-- arithmetic functions with Signed or Unsigned values
+use IEEE.NUMERIC_STD.ALL;
+
+-- Uncomment the following library declaration if instantiating
+-- any Xilinx leaf cells in this code.
+--library UNISIM;
+--use UNISIM.VComponents.all;
+
+entity test_toggleLines is
+    Port (
+        clk_in : in STD_LOGIC;
+        toggle_o : out std_logic_vector(3 downto 0)
+        );
+end test_toggleLines;
+
+architecture Behavioral of test_toggleLines is
+
+    signal prescaler : unsigned(23 downto 0);
+    signal outcounter: unsigned(3 downto 0);
+    signal clk_slow_i : std_logic_vector(3 downto 0);
+    
+begin
+
+  gen_clk : process (clk_in)
+  begin  -- process gen_clk
+    if rising_edge(clk_in) then   -- rising clock edge
+      if prescaler = X"30D40" then     -- 200 000 in hex
+        prescaler   <= (others => '0');
+        --clk_slow_i   <= not clk_slow_i;
+        outcounter <= outcounter +1;
+        clk_slow_i(0) <= outcounter(0);
+        clk_slow_i(1) <= outcounter(1);
+        clk_slow_i(2) <= outcounter(2);
+        clk_slow_i(3) <= outcounter(3);
+      else
+        prescaler <= prescaler + "1";
+      end if;
+    end if;
+  end process gen_clk;
+
+  toggle_o <= clk_slow_i;
+
+
+
+end Behavioral;
diff --git a/components/tlu/hdl/testbench_clocks.vhd b/components/tlu/hdl/testbench_clocks.vhd
new file mode 100644
index 00000000..052b220c
--- /dev/null
+++ b/components/tlu/hdl/testbench_clocks.vhd
@@ -0,0 +1,43 @@
+----------------------------------------------------------------------------------
+-- Company: 
+-- Engineer: 
+-- 
+-- Create Date: 17.02.2017 11:26:56
+-- Design Name: 
+-- Module Name: testbench_clocks - Behavioral
+-- Project Name: 
+-- Target Devices: 
+-- Tool Versions: 
+-- Description: 
+-- 
+-- Dependencies: 
+-- 
+-- Revision:
+-- Revision 0.01 - File Created
+-- Additional Comments:
+-- 
+----------------------------------------------------------------------------------
+
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+
+-- Uncomment the following library declaration if using
+-- arithmetic functions with Signed or Unsigned values
+--use IEEE.NUMERIC_STD.ALL;
+
+-- Uncomment the following library declaration if instantiating
+-- any Xilinx leaf cells in this code.
+--library UNISIM;
+--use UNISIM.VComponents.all;
+
+entity testbench_clocks is
+--  Port ( );
+end testbench_clocks;
+
+architecture Behavioral of testbench_clocks is
+
+begin
+
+
+end Behavioral;
diff --git a/components/tlu/hdl/testbench_myclocks.vhd b/components/tlu/hdl/testbench_myclocks.vhd
new file mode 100644
index 00000000..c17c7db5
--- /dev/null
+++ b/components/tlu/hdl/testbench_myclocks.vhd
@@ -0,0 +1,99 @@
+----------------------------------------------------------------------------------
+-- Company: 
+-- Engineer: 
+-- 
+-- Create Date: 17.02.2017 11:31:53
+-- Design Name: 
+-- Module Name: testbench_myclocks - Behavioral
+-- Project Name: 
+-- Target Devices: 
+-- Tool Versions: 
+-- Description: 
+-- 
+-- Dependencies: 
+-- 
+-- Revision:
+-- Revision 0.01 - File Created
+-- Additional Comments:
+-- 
+----------------------------------------------------------------------------------
+
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+use work.ipbus.all;
+-- Uncomment the following library declaration if using
+-- arithmetic functions with Signed or Unsigned values
+--use IEEE.NUMERIC_STD.ALL;
+
+-- Uncomment the following library declaration if instantiating
+-- any Xilinx leaf cells in this code.
+--library UNISIM;
+--use UNISIM.VComponents.all;
+
+
+
+entity testbench_myclocks is
+end testbench_myclocks;
+
+architecture Behavioral of testbench_myclocks is
+
+ COMPONENT logic_clocks
+    GENERIC (
+        g_USE_EXTERNAL_CLK : integer := 1
+    );
+    PORT (
+        ipbus_clk_i           : IN     std_logic ;
+        ipbus_i               : IN     ipb_wbus ;
+        ipbus_reset_i         : IN     std_logic ;
+        Reset_i               : IN     std_logic ;
+        clk_logic_xtal_i      : IN     std_logic ; -- ! 40MHz clock from onboard xtal
+        clk_8x_logic_o       : OUT    std_logic ; -- 640MHz clock
+        clk_4x_logic_o        : OUT    std_logic ; -- 160MHz clock
+        ipbus_o               : OUT    ipb_rbus ;
+        strobe_8x_logic_o    : OUT    std_logic ; -- strobes once every 4 cycles of clk_16x
+        strobe_4x_logic_o     : OUT    std_logic ; -- one pulse every 4 cycles of clk_4x
+        --extclk_p_b            : INOUT  std_logic ; -- either external clock in, or a clock being driven out
+        --extclk_n_b            : INOUT  std_logic ;
+        DUT_clk_o             : OUT    std_logic ;
+        logic_clocks_locked_o : OUT    std_logic ;
+        logic_reset_o         : OUT    std_logic   -- Goes high TO reset counters etc. Sync with clk_4x_logic
+    );
+    END COMPONENT logic_clocks;
+    FOR ALL : logic_clocks USE ENTITY work.logic_clocks;
+    SIGNAL sysclk_40         : std_logic := '0';
+    SIGNAL clk_8x_logic         : std_logic := '0';
+    SIGNAL clk_4x_logic         : std_logic := '0';
+    SIGNAL strobe_8x_logic         : std_logic := '0';
+    SIGNAL strobe_4x_logic         : std_logic := '0';
+    SIGNAL logic_reset         : std_logic := '0';
+    signal ipbus_i_const             : ipb_wbus;
+
+
+begin
+    
+      ipbus_i_const.ipb_strobe <= '0';
+      ipbus_i_const.ipb_write <= '0';
+      ipbus_i_const.ipb_wdata <= (others => '0');
+    
+        I3_Clocks : logic_clocks
+    GENERIC MAP (
+        g_USE_EXTERNAL_CLK => 0
+    )
+    PORT MAP (
+        ipbus_clk_i           => '0',
+        ipbus_i               => ipbus_i_const,
+        ipbus_reset_i         => '0',
+        Reset_i               => '0',
+        clk_logic_xtal_i      => sysclk_40, -- Not sure this is correct
+        clk_8x_logic_o       => clk_8x_logic,
+        clk_4x_logic_o        => clk_4x_logic,
+        ipbus_o               => open,
+        strobe_8x_logic_o    => strobe_8x_logic,
+        strobe_4x_logic_o     => strobe_4x_logic,
+        DUT_clk_o             => open,
+        logic_clocks_locked_o => open,
+        logic_reset_o         => logic_reset
+    );  
+
+end Behavioral;
diff --git a/components/tlu/hdl/top_enclustra_ax3_pm3.vhd b/components/tlu/hdl/top_enclustra_ax3_pm3.vhd
new file mode 100644
index 00000000..589be2f2
--- /dev/null
+++ b/components/tlu/hdl/top_enclustra_ax3_pm3.vhd
@@ -0,0 +1,173 @@
+-- Top-level design for ipbus demo
+--
+-- This version is for Enclustra AX3 module, using the RGMII PHY on the PM3 baseboard
+--
+-- You must edit this file to set the IP and MAC addresses
+--
+-- Dave Newbold, 4/10/16--
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+--Library UNISIM;
+--use UNISIM.vcomponents.all;
+
+use work.ipbus.ALL;
+
+entity top is
+    generic(
+    g_NUM_DUTS  : positive := 3;
+    g_NUM_TRIG_INPUTS   :positive := 4;
+    g_NUM_EXT_SLAVES    :positive :=8;
+    g_EVENT_DATA_WIDTH  :positive := 64;
+    g_IPBUS_WIDTH   :positive := 32;
+    g_NUM_EDGE_INPUTS   :positive := 4;
+    g_SPILL_COUNTER_WIDTH   :positive := 12;
+    g_BUILD_SIMULATED_MAC   :integer := 0
+    );
+    port(
+        sysclk: in std_logic;
+        leds: out std_logic_vector(3 downto 0); -- status LEDs
+        dip_sw: in std_logic_vector(3 downto 0); -- switches
+        rgmii_txd: out std_logic_vector(3 downto 0);
+        rgmii_tx_ctl: out std_logic;
+        rgmii_txc: out std_logic;
+        rgmii_rxd: in std_logic_vector(3 downto 0);
+        rgmii_rx_ctl: in std_logic;
+        rgmii_rxc: in std_logic;
+        i2c_scl_b: inout std_logic_vector(2 downto 0);
+        i2c_sda_b: inout std_logic_vector(2 downto 0);
+        phy_rstn: out std_logic; --default example ends here
+        busy_n_i: in std_logic_vector(g_NUM_DUTS-1 downto 0);
+        busy_p_i: in std_logic_vector(g_NUM_DUTS-1 downto 0);
+        cfd_discr_n_i: in std_logic_vector(g_NUM_TRIG_INPUTS-1 downto 0);
+        cfd_discr_p_i: in std_logic_vector(g_NUM_TRIG_INPUTS-1 downto 0);
+        threshold_discr_n_i: in std_logic_vector(g_NUM_TRIG_INPUTS-1 downto 0);
+        threshold_discr_p_i: in std_logic_vector(g_NUM_TRIG_INPUTS-1 downto 0);
+        gpio_hdr: out std_logic_vector(3 downto 0);
+        reset_or_clk_n_o: out std_logic_vector(g_NUM_DUTS-1 downto 0);
+        reset_or_clk_p_o: out std_logic_vector(g_NUM_DUTS-1 downto 0);
+        shutter_to_dut_n_o: out std_logic_vector(g_NUM_DUTS-1 downto 1);
+        shutter_to_dut_p_o: out std_logic_vector(g_NUM_DUTS-1 downto 1)
+        );
+
+end top;
+
+architecture rtl of top is
+
+	signal clk_ipb, rst_ipb, nuke, soft_rst, phy_rst_e, userled: std_logic;
+	signal mac_addr: std_logic_vector(47 downto 0);
+	signal ip_addr: std_logic_vector(31 downto 0);
+	signal ipb_out: ipb_wbus;
+	signal ipb_in: ipb_rbus;
+	signal inf_leds: std_logic_vector(1 downto 0);
+	SIGNAL s_i2c_scl_enb         : std_logic_vector(2 downto 0);
+    SIGNAL s_i2c_sda_enb         : std_logic_vector(2 downto 0);
+	--signal s_i2c_sda_i : std_logic;
+	--signal s_i2c_scl_i : std_logic;
+	
+begin
+    
+--led_iic_test <= iic_test;
+
+--Implicit instantiation of output tristate buffers.
+    i2c_scl_b(0) <= '0' when (s_i2c_scl_enb(0) = '0') else 'Z';
+    i2c_sda_b(0) <= '0' when (s_i2c_sda_enb(0) = '0') else 'Z';
+    i2c_scl_b(1) <= '0' when (s_i2c_scl_enb(1) = '0') else 'Z';
+    i2c_sda_b(1) <= '0' when (s_i2c_sda_enb(1) = '0') else 'Z';
+    i2c_scl_b(2) <= '0' when (s_i2c_scl_enb(2) = '0') else 'Z';
+    i2c_sda_b(2) <= '0' when (s_i2c_sda_enb(2) = '0') else 'Z';
+-- Infrastructure
+
+
+
+
+	infra: entity work.enclustra_ax3_pm3_infra
+		port map(
+			sysclk => sysclk,
+			clk_ipb_o => clk_ipb,
+			rst_ipb_o => rst_ipb,
+			rst_125_o => phy_rst_e,
+			nuke => nuke,
+			soft_rst => soft_rst,
+			leds => inf_leds,
+			rgmii_txd => rgmii_txd,
+			rgmii_tx_ctl => rgmii_tx_ctl,
+			rgmii_txc => rgmii_txc,
+			rgmii_rxd => rgmii_rxd,
+			rgmii_rx_ctl => rgmii_rx_ctl,
+			rgmii_rxc => rgmii_rxc,
+			mac_addr => mac_addr,
+			ip_addr => ip_addr,
+			ipb_in => ipb_in,
+			ipb_out => ipb_out
+		);
+		
+	leds <= not ('0' & userled & inf_leds);
+	phy_rstn <= not phy_rst_e;
+		
+--	mac_addr <= X"020ddba1151" & dip_sw; -- Careful here, arbitrary addresses do not always work
+--	ip_addr <= X"c0a8c81" & dip_sw; -- 192.168.200.16+n
+	mac_addr <= X"020ddba1151f"; -- Careful here, arbitrary addresses do not always work
+	ip_addr <= X"c0a8c81f"; -- 192.168.200.16+n
+
+-- ipbus slaves live in the entity below, and can expose top-level ports
+-- The ipbus fabric is instantiated within.
+
+--	slaves: entity work.ipbus_example
+--		port map(
+--			ipb_clk => clk_ipb,
+--			ipb_rst => rst_ipb,
+--			ipb_in => ipb_out,
+--			ipb_out => ipb_in,
+--			nuke => nuke,
+--			soft_rst => soft_rst,
+--			i2c_scl_b => i2c_scl_b,
+--            i2c_sda_b => i2c_sda_b,
+--			userled => userled
+--		);
+    --OBUFT: Single-ended 3-state Output Buffer
+--7 Series
+-- Xilinx HDL Libraries Guide, version 2012.2
+
+--OBUFT_inst_scl : IOBUF
+--generic map (
+--	DRIVE => 12,
+--	IOSTANDARD => "DEFAULT",
+--	SLEW => "SLOW")
+--port map (
+--    IO => i2c_scl_b, -- Buffer output (connect directly to top-level port)
+--    I => '0', -- Buffer input
+--    T => s_i2c_scl_enb, -- 3-state enable input
+--    O =>  s_i2c_scl_i
+--); -- End of OBUFT_inst instantiation
+
+--OBUFT_inst_sda : IOBUF
+--generic map (
+--	DRIVE => 12,
+--	IOSTANDARD => "DEFAULT",
+--	SLEW => "SLOW")
+--port map (
+--    IO => i2c_sda_b, -- Buffer output (connect directly to top-level port)
+--    I => '0', -- Buffer input
+--    T => s_i2c_sda_enb, -- 3-state enable input
+--    O =>  s_i2c_sda_i
+--); -- End of OBUFT_inst instantiation
+    
+    slaves: entity work.ipbus_example
+    port map(
+        ipb_clk => clk_ipb,
+        ipb_rst => rst_ipb,
+        ipb_in => ipb_out,
+        ipb_out => ipb_in,
+        nuke => nuke,
+        soft_rst => soft_rst,
+        --i2c_scl_i => s_i2c_scl_i,
+        --i2c_sda_i => s_i2c_sda_i,
+        i2c_sda_i => i2c_sda_b,
+        i2c_scl_i => i2c_scl_b,
+        i2c_scl_enb_o => s_i2c_scl_enb,
+        i2c_sda_enb_o => s_i2c_sda_enb,
+        userled => userled
+    );
+
+end rtl;
diff --git a/components/tlu/hdl/top_enclustra_tlu_v1e.vhd b/components/tlu/hdl/top_enclustra_tlu_v1e.vhd
new file mode 100644
index 00000000..4c270159
--- /dev/null
+++ b/components/tlu/hdl/top_enclustra_tlu_v1e.vhd
@@ -0,0 +1,758 @@
+-- Top-level design for TLU v1E
+--
+-- This version is for Enclustra AX3 module, using the RGMII PHY on the PM3 baseboard
+--
+-- You must edit this file to set the IP and MAC addresses
+--
+-- Dave Newbold, 4/10/16--
+
+library IEEE;
+library UNISIM;
+use IEEE.STD_LOGIC_1164.ALL;
+use ieee.numeric_std.all;
+use work.fmcTLU.all;
+use work.ipbus_decode_tlu.all;
+use work.ipbus.all;
+use work.ipbus_reg_types.all;
+use UNISIM.vcomponents.all;
+
+--Library UNISIM;
+--use UNISIM.vcomponents.all;
+
+use work.ipbus.ALL;
+
+entity top_tlu_v1e is
+    generic(
+    constant FW_VERSION : unsigned(31 downto 0):= X"1e000008"; -- Firmware revision. Remember to change this as needed.
+    g_NUM_DUTS  : positive := 4; -- <- was 3
+    g_NUM_TRIG_INPUTS   :positive := 6;-- <- was 4
+    g_NUM_EDGE_INPUTS   :positive := 6;--  <-- was 4
+    g_NUM_EXT_SLAVES    :positive :=8;--  <-- ??
+    g_EVENT_DATA_WIDTH  :positive := 64;--  <-- ??
+    g_IPBUS_WIDTH   :positive := 32;--  <-- was 32 
+    g_SPILL_COUNTER_WIDTH   :positive := 12;--  <-- ??
+    g_BUILD_SIMULATED_MAC   :integer := 0
+    );
+    port(
+    --Clock
+        --sysclk: in std_logic; --50 MHz clock input from FPGA
+        clk_enclustra: in std_logic; --Enclustra onboard oscillator 40 MHz. Used for the IPBus block
+        sysclk_50_o_p : out std_logic; --50 MHz clock output to FMC pins
+        sysclk_50_o_n : out std_logic; --50 MHz clock output to FMC pins
+        sysclk_40_i_p: in std_logic;
+        sysclk_40_i_n: in std_logic;
+    --Misc
+        leds: out std_logic_vector(3 downto 0); -- status LEDs
+        dip_sw: in std_logic_vector(3 downto 0); -- switches
+        gpio: out std_logic; -- gpio pin on J1 (eventually make it inout)
+    --RGMII interface signals
+        rgmii_txd: out std_logic_vector(3 downto 0);
+        rgmii_tx_ctl: out std_logic;
+        rgmii_txc: out std_logic;
+        rgmii_rxd: in std_logic_vector(3 downto 0);
+        rgmii_rx_ctl: in std_logic;
+        rgmii_rxc: in std_logic;
+        phy_rstn: out std_logic; 
+    --I2C bus
+        i2c_scl_b: inout std_logic;
+        i2c_sda_b: inout std_logic;
+        i2c_reset: out std_logic; --Reset line for the expander serial lines
+    --Clock generator controls
+        clk_gen_rst: out std_logic; --Reset line for the Si5345 clock generator (active low)
+        --clk_gen_lol: in std_logic; --LOL signal. Do not use for now as it is connected to CONT_FROM_FPGA<0>
+    --TLU signals for DUTs
+        busy_i: in std_logic_vector(g_NUM_DUTS-1 downto 0);-- Busy lines from DUTs (active high) (busy to FPGA)
+        busy_o: out std_logic_vector(g_NUM_DUTS-1 downto 0);-- Busy lines to DUTs (active high) (busy from FPGA)
+        cont_i: in std_logic_vector(g_NUM_DUTS-1 downto 0); --Control lines from DUTs
+        cont_o: out std_logic_vector(g_NUM_DUTS-1 downto 0); --Control lines to DUTs
+        spare_i: in std_logic_vector(g_NUM_DUTS-1 downto 0); --Spare lines from DUTs
+        spare_o: out std_logic_vector(g_NUM_DUTS-1 downto 0); --Spare lines to DUTs
+        triggers_i: in std_logic_vector(g_NUM_DUTS-1 downto 0); --Trigger lines from DUTs
+        triggers_o: out std_logic_vector(g_NUM_DUTS-1 downto 0); --Trigger lines to DUTs
+        dut_clk_i: in std_logic_vector(g_NUM_DUTS-1 downto 0); --Clock from DUTs
+        dut_clk_o: out std_logic_vector(g_NUM_DUTS-1 downto 0); --Clock to DUTs
+        
+        --reset_or_clk_n_o: out std_logic_vector(g_NUM_DUTS-1 downto 0); --T0 synchronization signal
+        --reset_or_clk_p_o: out std_logic_vector(g_NUM_DUTS-1 downto 0);
+        --shutter_to_dut_n_o: out std_logic_vector(g_NUM_DUTS-1 downto 0); --Shutter output
+        --shutter_to_dut_p_o: out std_logic_vector(g_NUM_DUTS-1 downto 0);
+                
+     --TLU trigger inputs   
+        threshold_discr_n_i: in std_logic_vector(g_NUM_TRIG_INPUTS-1 downto 0);
+        threshold_discr_p_i: in std_logic_vector(g_NUM_TRIG_INPUTS-1 downto 0)
+        --gpio_hdr: out std_logic_vector(3 downto 0);
+        --extclk_n_b: inout std_logic; --External clock in or clock output
+        --extclk_p_b: inout std_logic
+    );
+
+end top_tlu_v1e;
+
+architecture rtl of top_tlu_v1e is
+
+	signal clk_ipb, rst_ipb, nuke, soft_rst, phy_rst_e, clk_200, sysclk_40, clk_encl_buf, userled: std_logic;
+	signal mac_addr: std_logic_vector(47 downto 0);
+	signal ip_addr: std_logic_vector(31 downto 0);
+	signal ipb_out: ipb_wbus;
+	signal ipb_in: ipb_rbus;
+	signal inf_leds: std_logic_vector(1 downto 0);
+	signal s_i2c_scl_enb         : std_logic;
+    signal s_i2c_sda_enb         : std_logic;
+    signal encl_clock50: std_logic; -- This is a 50 MHz clock generated from the Enclustra onboard oscillator (rather than the clock input)
+    
+	--signal s_i2c_sda_i : std_logic;
+	--signal s_i2c_scl_i : std_logic;
+	------------------------------------------
+	-- Internal signal declarations
+    SIGNAL T0_o                  : std_logic;
+    SIGNAL buffer_full_o         : std_logic;                                             --! Goes high when event buffer almost full
+    SIGNAL clk_8x_logic         : std_logic;                                             -- 320MHz clock
+    SIGNAL clk_4x_logic          : std_logic;                                             --! normally 160MHz
+    SIGNAL clk_logic_xtal        : std_logic;                                             -- ! 40MHz clock from onboard xtal
+    SIGNAL data_strobe           : std_logic;                                             -- goes high when data ready to load into event buffer
+    SIGNAL dout                  : std_logic;
+    SIGNAL dout1                 : std_logic;
+    SIGNAL event_data            : std_logic_vector(g_EVENT_DATA_WIDTH-1 DOWNTO 0);
+    signal ipbww: ipb_wbus_array(N_SLAVES - 1 downto 0);
+    signal ipbrr: ipb_rbus_array(N_SLAVES - 1 downto 0);
+    SIGNAL logic_clocks_reset    : std_logic;                                             -- Goes high to reset counters etc. Sync with clk_4x_logic
+    SIGNAL logic_reset           : std_logic;
+    SIGNAL overall_trigger       : std_logic;                                             --! goes high to load trigger data
+    SIGNAL overall_veto          : std_logic;                                             --! Halts triggers when high
+    SIGNAL postVetoTrigger_times : t_triggerTimeArray(g_NUM_TRIG_INPUTS-1 DOWNTO 0);      -- ! trigger arrival time ( w.r.t. logic_strobe)
+    SIGNAL postVetotrigger       : std_logic_vector(g_NUM_TRIG_INPUTS-1 DOWNTO 0);        -- ! High when trigger from input connector active and enabled
+    --trigger_count_i   : IN     std_logic_vector (g_IPBUS_WIDTH-1 DOWNTO 0); --! Not used yet.
+    SIGNAL rst_fifo_o            : std_logic;                                             --! rst signal to first level fifos
+    SIGNAL s_edge_fall_times     : t_triggerTimeArray(g_NUM_EDGE_INPUTS-1 DOWNTO 0);      -- Array of edge times ( w.r.t. logic_strobe)
+    SIGNAL s_edge_falling        : std_logic_vector(g_NUM_EDGE_INPUTS-1 DOWNTO 0);        -- ! High when falling edge
+    SIGNAL s_edge_rise_times     : t_triggerTimeArray(g_NUM_EDGE_INPUTS-1 DOWNTO 0);      -- Array of edge times ( w.r.t. logic_strobe)
+    SIGNAL s_edge_rising         : std_logic_vector(g_NUM_EDGE_INPUTS-1 DOWNTO 0);        -- ! High when rising edge
+    --SIGNAL s_i2c_scl_enb         : std_logic;
+    --SIGNAL s_i2c_sda_enb         : std_logic;
+    SIGNAL s_shutter             : std_logic;                                             --! shutter signal from TimePix, retimed onto local clock
+    SIGNAL s_triggerLogic_reset  : std_logic;
+    SIGNAL shutter_cnt_i         : std_logic_vector(g_SPILL_COUNTER_WIDTH-1 DOWNTO 0);
+    SIGNAL shutter_i             : std_logic;
+    SIGNAL spill_cnt_i           : std_logic_vector(g_SPILL_COUNTER_WIDTH-1 DOWNTO 0);
+    SIGNAL spill_i               : std_logic;
+    SIGNAL strobe_8x_logic      : std_logic;                                             --! Pulses one cycle every 4 of 16x clock.
+    SIGNAL strobe_4x_logic       : std_logic;                                             -- one pulse every 4 cycles of clk_4x
+    SIGNAL trigger_count         : std_logic_vector(g_IPBUS_WIDTH-1 DOWNTO 0);
+    SIGNAL trigger_times         : t_triggerTimeArray(g_NUM_TRIG_INPUTS-1 DOWNTO 0);      -- ! trigger arrival time ( w.r.t. logic_strobe)
+    SIGNAL triggers              : std_logic_vector(g_NUM_TRIG_INPUTS-1 DOWNTO 0);
+    SIGNAL veto_o                : std_logic;                                             --! goes high when one or more DUT are busy
+	signal ctrl, stat: ipb_reg_v(0 downto 0);
+	--My signals
+	--SIGNAL busy_toggle_o         : std_logic_vector(g_NUM_DUTS-1 downto 0);
+	
+----------------------------------------------
+----------------------------------------------
+    component DUTInterfaces
+    generic(
+	   g_NUM_DUTS : positive := 4;-- <- was 3
+	   g_IPBUS_WIDTH : positive := 32
+	   );
+    port (
+        clk_4x_logic_i          : IN     std_logic ;
+        strobe_4x_logic_i       : IN     std_logic ;                                  --! goes high every 4th clock cycle
+        trigger_counter_i       : IN     std_logic_vector (g_IPBUS_WIDTH-1 DOWNTO 0); --! Number of trigger events since last reset
+        trigger_i               : IN     std_logic ;                                  --! goes high when trigger logic issues a trigger
+        reset_or_clk_to_dut_i   : IN     std_logic ;                                  --! Synchronization signal. Passed TO DUT pins
+        shutter_to_dut_i        : IN     std_logic ;                                  --! Goes high TO indicate data-taking active. DUTs report busy unless ignoreShutterVeto IPBus flag is set high
+        -- IPBus signals.
+        ipbus_clk_i             : IN     std_logic ;
+        ipbus_i                 : IN     ipb_wbus ;                                   --! Signals from IPBus core TO slave
+        ipbus_reset_i           : IN     std_logic ;
+        ipbus_o                 : OUT    ipb_rbus ;                                   --! signals from slave TO IPBus core
+        -- Signals to/from DUT
+        busy_from_dut       : IN     std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);    --! BUSY input from DUTs
+        busy_to_dut       : OUT     std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);     --! BUSY input to DUTs (single ended)
+        clk_from_dut  : IN std_logic_vector(g_NUM_DUTS-1 DOWNTO 0); --new signal for TLU, replace differential I/O
+        clk_to_dut : OUT std_logic_vector(g_NUM_DUTS-1 DOWNTO 0); --new signal for TLU, replace differential I/O
+        reset_to_dut: OUT    std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);     --! Replaces reset_or_clk_to_dut
+        trigger_to_dut : OUT    std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);     --! Trigger output
+        shutter_to_dut      : OUT    std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);     --! Shutter output
+        veto_o                  : OUT    std_logic   
+    );
+    end component DUTInterfaces;
+----------------------------------------------
+----------------------------------------------
+    COMPONENT T0_Shutter_Iface
+    PORT (
+        clk_4x_i      : IN     std_logic;
+        clk_4x_strobe : IN     std_logic;
+        ipbus_clk_i   : IN     std_logic;
+        ipbus_i       : IN     ipb_wbus;
+        T0_o          : OUT    std_logic;
+        ipbus_o       : OUT    ipb_rbus;
+        shutter_o     : OUT    std_logic
+    );
+    END COMPONENT T0_Shutter_Iface;
+----------------------------------------------
+----------------------------------------------
+
+   COMPONENT eventBuffer
+   GENERIC (
+        g_EVENT_DATA_WIDTH   : positive := 64;
+        g_IPBUS_WIDTH        : positive := 32;
+        g_READ_COUNTER_WIDTH : positive := 16
+   );
+   PORT (
+        clk_4x_logic_i    : IN     std_logic ;
+        data_strobe_i     : IN     std_logic ;                                     -- Indicates data TO transfer
+        event_data_i      : IN     std_logic_vector (g_EVENT_DATA_WIDTH-1 DOWNTO 0);
+        ipbus_clk_i       : IN     std_logic ;
+        ipbus_i           : IN     ipb_wbus ;
+        ipbus_reset_i     : IN     std_logic ;
+        strobe_4x_logic_i : IN     std_logic ;
+        --trigger_count_i   : IN     std_logic_vector (g_IPBUS_WIDTH-1 DOWNTO 0); --! Not used yet.
+        rst_fifo_o        : OUT    std_logic ;                                     --! rst signal TO first level fifos
+        buffer_full_o     : OUT    std_logic ;                                     --! Goes high when event buffer almost full
+        ipbus_o           : OUT    ipb_rbus ;
+        logic_reset_i     : IN     std_logic                                       -- reset buffers when high. Synch withclk_4x_logic
+   );
+   END COMPONENT eventBuffer;
+----------------------------------------------
+----------------------------------------------
+    COMPONENT eventFormatter
+    GENERIC (
+        g_EVENT_DATA_WIDTH   : positive := 64;
+        g_IPBUS_WIDTH        : positive := 32;
+        g_COUNTER_TRIG_WIDTH : positive := 32;
+        g_COUNTER_WIDTH      : positive := 12;
+        g_EVTTYPE_WIDTH      : positive := 4;      --! Width of the event type word
+        --g_NUM_INPUT_TYPES     : positive := 4;               -- Number of different input types (trigger, shutter, edge...)
+        g_NUM_EDGE_INPUTS    : positive := 4;      --! Number of edge inputs
+        g_NUM_TRIG_INPUTS    : positive := 6       --! Number of trigger inputs (POSSIBLY WRONG!)
+    );
+    PORT (
+        clk_4x_logic_i         : IN     std_logic ;                                         --! Rising edge active
+        ipbus_clk_i            : IN     std_logic ;
+        logic_strobe_i         : IN     std_logic ;                                         --! Pulses high once every 4 cycles of clk_4x_logic
+        logic_reset_i          : IN     std_logic ;                                         --! goes high TO reset counters. Synchronous with clk_4x_logic
+        rst_fifo_i             : IN     std_logic ;                                         --! Goes high TO reset FIFOs
+        buffer_full_i          : IN     std_logic ;                                         --! Goes high when output fifo full
+        trigger_i              : IN     std_logic ;                                         --! goes high TO load trigger data. One cycle of clk_4x_logic
+        trigger_times_i        : IN     t_triggerTimeArray (g_NUM_TRIG_INPUTS-1 DOWNTO 0);  --! Array of trigger times ( w.r.t. logic_strobe)
+        trigger_inputs_fired_i : IN     std_logic_vector (g_NUM_TRIG_INPUTS-1 DOWNTO 0);    --! high for each input that "fired"
+        trigger_cnt_i          : IN     std_logic_vector (g_COUNTER_TRIG_WIDTH-1 DOWNTO 0); --! Trigger count
+        shutter_i              : IN     std_logic ;
+        shutter_cnt_i          : IN     std_logic_vector (g_COUNTER_WIDTH-1 DOWNTO 0);
+        spill_i                : IN     std_logic ;
+        spill_cnt_i            : IN     std_logic_vector (g_COUNTER_WIDTH-1 DOWNTO 0);
+        edge_rise_i            : IN     std_logic_vector (g_NUM_EDGE_INPUTS-1 DOWNTO 0);    --! High when rising edge
+        edge_fall_i            : IN     std_logic_vector (g_NUM_EDGE_INPUTS-1 DOWNTO 0);    --! High when falling edge
+        edge_rise_time_i       : IN     t_triggerTimeArray (g_NUM_EDGE_INPUTS-1 DOWNTO 0);  --! Array of edge times ( w.r.t. logic_strobe)
+        edge_fall_time_i       : IN     t_triggerTimeArray (g_NUM_EDGE_INPUTS-1 DOWNTO 0);  --! Array of edge times ( w.r.t. logic_strobe)
+        ipbus_i                : IN     ipb_wbus ;
+        ipbus_o                : OUT    ipb_rbus ;
+        data_strobe_o          : OUT    std_logic ;                                         --! goes high when data ready TO load into event buffer
+        event_data_o           : OUT    std_logic_vector (g_EVENT_DATA_WIDTH-1 DOWNTO 0);
+        reset_timestamp_i      : IN     std_logic ;                                         --! Taking high causes timestamp TO be reset. Combined with internal timestmap reset and written to reset_timestamp_o
+        reset_timestamp_o      : OUT    std_logic                                           --! Goes high for one clock cycle of clk_4x_logic when timestamp reset
+    );
+    END COMPONENT eventFormatter;   
+----------------------------------------------
+----------------------------------------------
+    COMPONENT logic_clocks
+    GENERIC (
+        g_USE_EXTERNAL_CLK : integer := 1
+    );
+    PORT (
+        ipbus_clk_i           : IN     std_logic ;
+        ipbus_i               : IN     ipb_wbus ;
+        ipbus_reset_i         : IN     std_logic ;
+        Reset_i               : IN     std_logic ;
+        clk_logic_xtal_i      : IN     std_logic ; -- ! 40MHz clock from onboard xtal
+        clk_8x_logic_o       : OUT    std_logic ; -- 640MHz clock
+        clk_4x_logic_o        : OUT    std_logic ; -- 160MHz clock
+        ipbus_o               : OUT    ipb_rbus ;
+        strobe_8x_logic_o    : OUT    std_logic ; -- strobes once every 4 cycles of clk_16x
+        strobe_4x_logic_o     : OUT    std_logic ; -- one pulse every 4 cycles of clk_4x
+        --extclk_p_b            : INOUT  std_logic ; -- either external clock in, or a clock being driven out
+        --extclk_n_b            : INOUT  std_logic ;
+        DUT_clk_o             : OUT    std_logic ;
+        logic_clocks_locked_o : OUT    std_logic ;
+        logic_reset_o         : OUT    std_logic   -- Goes high TO reset counters etc. Sync with clk_4x_logic
+    );
+    END COMPONENT logic_clocks;
+----------------------------------------------
+----------------------------------------------
+    COMPONENT triggerInputs_newTLU
+    GENERIC (
+        g_NUM_INPUTS  : natural  := 1;
+        g_IPBUS_WIDTH : positive := 32
+    );
+    PORT (
+        --cfd_discr_p_i        : IN     std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);        --! Inputs from constant-fraction discriminators
+        --cfd_discr_n_i        : IN     std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);        --! Input from CFD
+        clk_4x_logic         : IN     std_logic ;                                        --! Rising edge active. By default = 4*40MHz = 160MHz
+        clk_200_i : IN     std_logic ;
+        strobe_4x_logic_i    : IN     std_logic ;                                        --! Pulses high once every 4 cycles of clk_4x_logic
+        threshold_discr_p_i  : IN     std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);        --! inputs from threshold comparators
+        threshold_discr_n_i  : IN     std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);        --! inputs from threshold comparators
+        reset_i              : IN     std_logic ;
+        trigger_times_o      : OUT    t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);      --! trigger arrival time ( w.r.t. logic_strobe)
+        trigger_o            : OUT    std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);        --!  Goes high on leading edge of trigger, in sync with clk_4x_logic_i
+        --trigger_debug_o      : OUT    std_logic_vector ( ((2*g_NUM_INPUTS)-1) DOWNTO 0); --! Copy of input trigger level. High bits CFD, Low threshold
+        edge_rising_times_o  : OUT    t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);      --! edge arrival time ( w.r.t. logic_strobe)
+        edge_falling_times_o : OUT    t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);      --! edge arrival time ( w.r.t. logic_strobe)
+        edge_rising_o        : OUT    std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);        --! High when rising edge. Syncronous with clk_4x_logic_i
+        edge_falling_o       : OUT    std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);        --! High when falling edge
+        ipbus_clk_i          : IN     std_logic ;
+        ipbus_reset_i        : IN     std_logic ;
+        ipbus_i              : IN     ipb_wbus ;                                         --! Signals from IPBus core TO slave
+        ipbus_o              : OUT    ipb_rbus ;                                         --! signals from slave TO IPBus core
+        clk_8x_logic_i      : IN     std_logic ;                                        --! 640MHz clock ( 16x 40MHz )
+        strobe_8x_logic_i   : IN     std_logic                                          --! Pulses one cycle every 4 of 8x clock.
+    );
+    END COMPONENT triggerInputs_newTLU;
+----------------------------------------------
+----------------------------------------------
+    COMPONENT triggerLogic
+    GENERIC (
+        g_NUM_INPUTS  : positive := 4;
+        g_IPBUS_WIDTH : positive := 32
+    );
+    PORT (
+        clk_4x_logic_i      : IN     std_logic ;                                   -- ! Rising edge active
+        ipbus_clk_i         : IN     std_logic ;
+        ipbus_i             : IN     ipb_wbus ;                                    -- Signals from IPBus core TO slave
+        ipbus_reset_i       : IN     std_logic ;
+        logic_reset_i       : IN     std_logic ;                                   -- active high. Synchronous with clk_4x_logic
+        logic_strobe_i      : IN     std_logic ;                                   -- ! Pulses high once every 4 cycles of clk_4x_logic
+        trigger_i           : IN     std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);   -- ! High when trigger from input connector active
+        trigger_times_i     : IN     t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0); --! trigger arrival time
+        veto_i              : IN     std_logic ;                                   -- ! Halts triggers when high
+        trigger_o           : OUT    std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);   -- ! High when trigger from input connector active and enabled
+        trigger_times_o     : OUT    t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0); --! trigger arrival time
+        event_number_o      : OUT    std_logic_vector (g_IPBUS_WIDTH-1 DOWNTO 0);  -- starts at one. Increments for each post_veto_trigger
+        ipbus_o             : OUT    ipb_rbus ;                                    -- signals from slave TO IPBus core
+        post_veto_trigger_o : OUT    std_logic ;                                   -- ! goes high when trigger passes
+        pre_veto_trigger_o  : OUT    std_logic ;
+        trigger_active_o    : OUT    std_logic                                     --! Goes high when triggers are active ( ie. not veoted)
+    );
+    END COMPONENT triggerLogic;
+    
+    COMPONENT i2c_master
+        PORT (
+           i2c_scl_i     : IN     std_logic;
+           i2c_sda_i     : IN     std_logic;
+           ipbus_clk_i   : IN     std_logic;
+           ipbus_i       : IN     ipb_wbus;
+           ipbus_reset_i : IN     std_logic;
+           i2c_scl_enb_o : OUT    std_logic;
+           i2c_sda_enb_o : OUT    std_logic;
+           ipbus_o       : OUT    ipb_rbus
+    );
+    END COMPONENT i2c_master;
+    
+    component clk_wiz_0
+    port
+     (-- Clock in ports
+      clk_in1           : in     std_logic;
+      -- Clock out ports
+      clk_out1          : out    std_logic;
+      -- Status and control signals
+      reset             : in     std_logic;
+      locked            : out    std_logic
+     );
+    end component;
+    
+
+    -- Optional embedded configurations
+    -- pragma synthesis_off
+    FOR ALL : DUTInterfaces USE ENTITY work.DUTInterfaces;
+    --FOR ALL : IPBusInterface USE ENTITY work.IPBusInterface;
+    FOR ALL : T0_Shutter_Iface USE ENTITY work.T0_Shutter_Iface;
+    FOR ALL : eventBuffer USE ENTITY work.eventBuffer;
+    FOR ALL : eventFormatter USE ENTITY work.eventFormatter;
+    FOR ALL : i2c_master USE ENTITY work.i2c_master;--<P
+    FOR ALL : logic_clocks USE ENTITY work.logic_clocks;
+    FOR ALL : triggerInputs_newTLU USE ENTITY work.triggerInputs_newTLU;
+    FOR ALL : triggerLogic USE ENTITY work.triggerLogic;
+    -- pragma synthesis_on 
+      	
+begin
+    
+--led_iic_test <= iic_test;
+
+--Implicit instantiation of output tristate buffers.
+    i2c_scl_b <= '0' when (s_i2c_scl_enb = '0') else 'Z';
+    i2c_sda_b <= '0' when (s_i2c_sda_enb = '0') else 'Z';
+
+    
+    
+    -- Infrastructure
+    -- ModuleWare code(v1.12) for instance 'I9' of 'gnd'
+    logic_clocks_reset <= '0';
+    -- ModuleWare code(v1.12) for instance 'I11' of 'gnd'
+    spill_i <= '0';
+    -- ModuleWare code(v1.12) for instance 'I12' of 'gnd'
+    spill_cnt_i <= (OTHERS => '0');
+    -- ModuleWare code(v1.12) for instance 'I13' of 'gnd'
+    shutter_i <= '0';
+    -- ModuleWare code(v1.12) for instance 'I14' of 'gnd'
+    shutter_cnt_i <= (OTHERS => '0');
+    -- ModuleWare code(v1.12) for instance 'I17' of 'gnd'
+    dout1 <= '0';
+    -- ModuleWare code(v1.12) for instance 'I18' of 'gnd'
+    dout <= '0';
+    -- ModuleWare code(v1.12) for instance 'I19' of 'merge'
+    --gpio_hdr <= dout1 & dout & s_shutter & T0_o;
+    -- ModuleWare code(v1.12) for instance 'I8' of 'sor'
+    overall_veto <= buffer_full_o OR veto_o;
+    -- ModuleWare code(v1.12) for instance 'I16' of 'sor'
+    s_triggerLogic_reset <= logic_reset OR T0_o;
+
+    i2c_reset <= '1';
+    clk_gen_rst <= '1';
+    ---gpio <= strobe_8x_logic;---
+    gpio <= veto_o;---
+    --gpio <= busy_i(1);---
+    
+    --Set diff clock out to 0 because we cannot have the correct differential voltage output
+    sysclk_50_o_p <= '0';
+    sysclk_50_o_n <= '0';
+    --Set busy_o to 0 for now
+    busy_o <= std_logic_vector(to_unsigned(0,    busy_o'length));
+    --sysclk_40_o_p <= sysclk;
+
+------------------------------------------
+	infra: entity work.enclustra_ax3_pm3_infra
+		port map(
+			sysclk => clk_encl_buf,
+			clk_ipb_o => clk_ipb,
+			rst_ipb_o => rst_ipb,
+			rst_125_o => phy_rst_e,
+			clk_200_o => clk_200,
+			nuke => nuke,
+			soft_rst => soft_rst,
+			leds => inf_leds,
+			rgmii_txd => rgmii_txd,
+			rgmii_tx_ctl => rgmii_tx_ctl,
+			rgmii_txc => rgmii_txc,
+			rgmii_rxd => rgmii_rxd,
+			rgmii_rx_ctl => rgmii_rx_ctl,
+			rgmii_rxc => rgmii_rxc,
+			mac_addr => mac_addr,
+			ip_addr => ip_addr,
+			ipb_in => ipb_in,
+			ipb_out => ipb_out
+		);
+		
+	--leds <= not ('0' & userled & inf_leds); -- Check this.
+	phy_rstn <= not phy_rst_e;
+		
+--	mac_addr <= X"020ddba1151" & dip_sw; -- Careful here, arbitrary addresses do not always work
+--	ip_addr <= X"c0a8c81" & dip_sw; -- 192.168.200.16+n
+	mac_addr <= X"020ddba1151e"; -- Careful here, arbitrary addresses do not always work
+	ip_addr <= X"c0a8c81e"; -- 192.168.200.16+n
+
+------------------------------------------
+    I1 : entity work.ipbus_ctrlreg_v
+    port map(
+        clk => clk_ipb,
+        reset => rst_ipb,
+        ipbus_in => ipbww(N_SLV_CTRL_REG),
+        ipbus_out => ipbrr(N_SLV_CTRL_REG),
+        d => stat,
+        q => ctrl
+    );
+    stat(0) <= std_logic_vector(FW_VERSION);-- <-Let's use this as firmware revision number
+    soft_rst <= ctrl(0)(0);
+    nuke <= ctrl(0)(1);
+    
+------------------------------------------
+	I2 : entity work.ipbus_fabric_sel
+    generic map(
+    	NSLV => N_SLAVES,
+    	SEL_WIDTH => IPBUS_SEL_WIDTH)
+    port map(
+      ipb_in => ipb_out,
+      ipb_out => ipb_in,
+      sel => ipbus_sel_ipbus_example(ipb_out.ipb_addr),
+      ipb_to_slaves => ipbww,
+      ipb_from_slaves => ipbrr
+    );
+
+------------------------------------------
+    I3 : i2c_master
+    PORT MAP (
+        i2c_scl_i     => i2c_scl_b,
+        i2c_sda_i     => i2c_sda_b,
+        ipbus_clk_i   => clk_ipb,
+        ipbus_i       => ipbww(N_SLV_I2C_0),
+        ipbus_reset_i => rst_ipb,
+        i2c_scl_enb_o => s_i2c_scl_enb,
+        i2c_sda_enb_o => s_i2c_sda_enb,
+        ipbus_o       => ipbrr(N_SLV_I2C_0)
+    );
+    
+----------------------------------------------
+    I4 : logic_clocks
+    GENERIC MAP (
+        g_USE_EXTERNAL_CLK => 0
+    )
+    PORT MAP (
+        ipbus_clk_i           => clk_ipb,
+        ipbus_i               => ipbww(N_SLV_LGCCLK),
+        ipbus_reset_i         => rst_ipb,
+        Reset_i               => logic_clocks_reset,
+        clk_logic_xtal_i      => sysclk_40, -- Not sure this is correct
+        clk_8x_logic_o       => clk_8x_logic,
+        clk_4x_logic_o        => clk_4x_logic,
+        ipbus_o               => ipbrr(N_SLV_LGCCLK),
+        strobe_8x_logic_o    => strobe_8x_logic,
+        strobe_4x_logic_o     => strobe_4x_logic,
+        DUT_clk_o             => open,
+        logic_clocks_locked_o => leds(3),
+        logic_reset_o         => logic_reset
+    );    
+
+----------------------------------------------
+    I5 : triggerInputs_newTLU 
+    GENERIC MAP (
+        g_NUM_INPUTS  => g_NUM_TRIG_INPUTS,
+        g_IPBUS_WIDTH => 32
+    )
+    PORT MAP (
+        clk_4x_logic         => clk_4x_logic,
+        clk_200_i => clk_200,
+        strobe_4x_logic_i    => strobe_4x_logic,
+        threshold_discr_p_i  => threshold_discr_p_i,
+        threshold_discr_n_i  => threshold_discr_n_i,
+        reset_i              => logic_reset,
+        trigger_times_o      => trigger_times,
+        trigger_o            => triggers,
+        --trigger_debug_o      => OPEN,
+        edge_rising_times_o  => s_edge_rise_times,
+        edge_falling_times_o => s_edge_fall_times,
+        edge_rising_o        => s_edge_rising,
+        edge_falling_o       => s_edge_falling,
+        ipbus_clk_i          => clk_ipb,
+        ipbus_reset_i        => rst_ipb,
+        ipbus_i              => ipbww(N_SLV_TRGIN),
+        ipbus_o              => ipbrr(N_SLV_TRGIN),
+        clk_8x_logic_i      => clk_8x_logic,
+        strobe_8x_logic_i   => strobe_8x_logic
+    );
+
+------------------------------------------      
+    I6 : eventFormatter
+    GENERIC MAP (
+        g_EVENT_DATA_WIDTH   => g_EVENT_DATA_WIDTH,
+        g_IPBUS_WIDTH        => g_IPBUS_WIDTH,
+        g_COUNTER_TRIG_WIDTH => g_IPBUS_WIDTH,
+        g_COUNTER_WIDTH      => 12,
+        g_EVTTYPE_WIDTH      => 4,                         --! Width of the event type word
+        --g_NUM_INPUT_TYPES     : positive := 4;               -- Number of different input types (trigger, shutter, edge...)
+        g_NUM_EDGE_INPUTS    => g_NUM_EDGE_INPUTS,         --! Number of edge inputs
+        g_NUM_TRIG_INPUTS    => g_NUM_TRIG_INPUTS          --! Number of trigger inputs
+    )
+    PORT MAP (
+        clk_4x_logic_i         => clk_4x_logic,
+        ipbus_clk_i            => clk_ipb,
+        logic_strobe_i         => strobe_4x_logic,
+        logic_reset_i          => logic_reset,
+        rst_fifo_i             => rst_fifo_o,
+        buffer_full_i          => buffer_full_o,
+        trigger_i              => overall_trigger,
+        trigger_times_i        => postVetoTrigger_times,
+        trigger_inputs_fired_i => postVetotrigger,
+        trigger_cnt_i          => trigger_count,
+        shutter_i              => shutter_i,
+        shutter_cnt_i          => shutter_cnt_i,
+        spill_i                => spill_i,
+        spill_cnt_i            => spill_cnt_i,
+        edge_rise_i            => s_edge_rising,
+        edge_fall_i            => s_edge_falling,
+        edge_rise_time_i       => s_edge_rise_times,
+        edge_fall_time_i       => s_edge_fall_times,
+        ipbus_i                => ipbww(N_SLV_EVFMT),
+        ipbus_o                => ipbrr(N_SLV_EVFMT),
+        data_strobe_o          => data_strobe,
+        event_data_o           => event_data,
+        reset_timestamp_i      => T0_o,
+        reset_timestamp_o      => OPEN
+    );
+
+------------------------------------------
+    I7 : eventBuffer
+    GENERIC MAP (
+        g_EVENT_DATA_WIDTH   => g_EVENT_DATA_WIDTH,
+        g_IPBUS_WIDTH        => g_IPBUS_WIDTH,
+        g_READ_COUNTER_WIDTH => 14
+        
+    )
+    PORT MAP (
+        clk_4x_logic_i    => clk_4x_logic,
+        data_strobe_i     => data_strobe,
+        event_data_i      => event_data,
+        ipbus_clk_i       => clk_ipb,
+        ipbus_i           => ipbww(N_SLV_EVBUF),
+        ipbus_reset_i     => rst_ipb,
+        strobe_4x_logic_i => strobe_4x_logic,
+        rst_fifo_o        => rst_fifo_o,
+        buffer_full_o     => buffer_full_o,
+        ipbus_o           => ipbrr(N_SLV_EVBUF),
+        logic_reset_i     => logic_reset
+    );
+    
+------------------------------------------
+    I8 : T0_Shutter_Iface
+    PORT MAP (
+        clk_4x_i      => clk_4x_logic,
+        clk_4x_strobe => strobe_4x_logic,
+        T0_o          => T0_o,
+        shutter_o     => s_shutter,
+        ipbus_clk_i   => clk_ipb,
+        ipbus_i       => ipbww(N_SLV_SHUT),
+        ipbus_o       => ipbrr(N_SLV_SHUT)
+    );
+
+------------------------------------------
+    I9 : DUTInterfaces
+    GENERIC MAP (
+        g_NUM_DUTS    => g_NUM_DUTS,
+        g_IPBUS_WIDTH => g_IPBUS_WIDTH
+    )
+    PORT MAP (
+         clk_4x_logic_i          => clk_4x_logic,
+         strobe_4x_logic_i       => strobe_4x_logic,
+         trigger_counter_i       => trigger_count,
+         trigger_i               => overall_trigger,
+         reset_or_clk_to_dut_i   => T0_o,
+         shutter_to_dut_i        => s_shutter,
+         ipbus_clk_i             => clk_ipb,
+         ipbus_i                 => ipbww(N_SLV_DUT),
+         ipbus_reset_i           => rst_ipb,
+         ipbus_o                 => ipbrr(N_SLV_DUT),
+         busy_from_dut       => busy_i,
+         busy_to_dut        => open,
+         clk_from_dut => dut_clk_i,
+         clk_to_dut => dut_clk_o,
+         --reset_or_clk_to_dut_n_o => reset_or_clk_n_o,
+         --reset_or_clk_to_dut_p_o => reset_or_clk_p_o,
+         reset_to_dut => spare_o,
+         trigger_to_dut => triggers_o,
+         --shutter_to_dut_n_o      => shutter_to_dut_n_o,
+         --shutter_to_dut_p_o      => shutter_to_dut_p_o,
+         shutter_to_dut  => cont_o,
+         veto_o                  => veto_o
+    );
+    
+------------------------------------------ 
+        I10 : triggerLogic
+        GENERIC MAP (
+            g_NUM_INPUTS  => g_NUM_TRIG_INPUTS,
+            g_IPBUS_WIDTH => g_IPBUS_WIDTH
+        )
+        PORT MAP (
+            clk_4x_logic_i      => clk_4x_logic,
+            ipbus_clk_i         => clk_ipb,
+            ipbus_i             => ipbww(N_SLV_TRGLGC),
+            ipbus_reset_i       => rst_ipb,
+            logic_reset_i       => s_triggerLogic_reset,
+            logic_strobe_i      => strobe_4x_logic,
+            trigger_i           => triggers,
+            trigger_times_i     => trigger_times,
+            veto_i              => overall_veto,
+            trigger_o           => postVetotrigger,
+            trigger_times_o     => postVetoTrigger_times,
+            event_number_o      => trigger_count,
+            ipbus_o             => ipbrr(N_SLV_TRGLGC),
+            post_veto_trigger_o => overall_trigger,
+            pre_veto_trigger_o  => OPEN,
+            trigger_active_o    => leds(2)
+        );     
+         
+-------------TEST AREA------------    
+--    test0: entity work.test_inToOut
+--    port map(
+--        clk_in => clk_200,
+--        busy_in=> busy_i,
+--        control_in=> cont_i,
+--        trig_in=> triggers_i,
+--        clkDut_in=> dut_clk_i,
+--        spare_in=> spare_i,
+--        busy_out=> busy_o,
+--        control_out=> cont_o,
+--        trig_out=> triggers_o,
+--        clkDut_out=> dut_clk_o,
+--        spare_out=> spare_o
+--    );
+
+--    dutout0: entity work.DUTs_outputs
+--    port map(
+--        clk_in => clk_encl_buf, 
+--       d_clk_o => open, --dut_clk_o,
+--        d_trg_o => open, --triggers_o,
+--        d_busy_o => busy_o,
+--        d_cont_o => open, --cont_o,
+--        d_spare_o => open --spare_o
+--    );
+   
+--    clk50_o_fromEnclustra : clk_wiz_0
+--       port map ( 
+--       -- Clock in ports
+--       clk_in1 => clk_encl_buf, --sysclk_40,
+--      -- Clock out ports  
+--       clk_out1 => encl_clock50,
+--      -- Status and control signals                
+--       reset => '0',
+--       locked =>  open          
+--     );
+
+    
+----------------------------------------------
+
+
+
+
+
+
+
+
+
+
+    
+
+------------------------------------------      
+
+
+------------------------------------------
+    IBUFGDS_inst: IBUFGDS
+    generic map (
+        IBUF_LOW_PWR=> false
+    )
+    port map (
+        O => sysclk_40,
+        I => sysclk_40_i_p,
+        IB => sysclk_40_i_n
+    );
+    
+------------------------------------------
+    IBUFG_inst: IBUFG
+    port map (
+        O => clk_encl_buf,
+        I => clk_enclustra--sysclk
+    );    
+
+------------------------------------------
+-- Do not use this: we need differential 3.3 V, not available.
+--    OBUFDS_inst : OBUFDS
+--    generic map (
+--        SLEW => "FAST") -- Specify the output slew rate
+--    port map (
+--        O => sysclk_50_o_p, -- Diff_p output (connect directly to top-level port)
+--        OB => sysclk_50_o_n, -- Diff_n output (connect directly to top-level port)
+--        I => encl_clock50 -- Buffer input
+--    );
+    -- This might not work: these are just two single ended. If we remove R coupling maybe?
+    --sysclk_50_o_p <= encl_clock50;
+    --sysclk_50_o_n <= not encl_clock50;
+
+      
+
+
+end rtl;
diff --git a/components/tlu/hdl/trigger/IODELAYCal_FSM_rtl.vhd b/components/tlu/hdl/trigger/IODELAYCal_FSM_rtl.vhd
new file mode 100644
index 00000000..9d69931d
--- /dev/null
+++ b/components/tlu/hdl/trigger/IODELAYCal_FSM_rtl.vhd
@@ -0,0 +1,102 @@
+--=============================================================================
+--! @file IODELAYCal_FSM_rtl.vhd
+--=============================================================================
+--
+-------------------------------------------------------------------------------
+-- --
+-- UoB , USC
+-- --
+------------------------------------------------------------------------------- --
+--
+--! @brief Finite-state machine to control calibration and reset signals to
+--! Iserdes, IDelay
+--! based on code by Alvaro Dosil\n
+--
+--! @author  Alvaro Dosil 
+--
+--! @date 22/Feb/2014
+--
+--! @version v0.1
+--
+--! @details
+--
+-------------------------------------------------------------------------------
+--! \n\n<b>Last changes:</b>\n
+-------------------------------------------------------------------------------
+--! @todo Implement a periodic calibration sequence\n
+--! <another thing to do> \n
+
+  LIBRARY ieee;
+USE ieee.std_logic_1164.all;
+
+entity IODELAYCal_FSM is
+	port (
+		clk_i 		: in std_logic;		--! Global clock
+		startcal_i 	: in std_logic;      --! Start calibration
+		busy_i 		: in std_logic;     	--! Status of the IDELAY component
+		calibrate_o : out std_logic;     --! Calibration signals to IODELAY
+		reset_o 		: out std_logic  		--! Reset to IODELAY component
+    );
+end entity IODELAYCal_FSM;
+
+architecture rtl of IODELAYCal_FSM is
+
+  --! Calibration FSM state values
+  type state_values is (st0, st1, st2, st3);
+  signal pres_state, next_state: state_values := st0;
+  
+	signal s_cal_FSM      : std_logic := '0';         -- IODELAY reset
+  signal s_rst_FSM      : std_logic := '0';         -- IODELAY reset
+  
+begin  -- rtl
+
+  --! Calibration FSM register
+  statereg: process(clk_i)
+  begin
+    if rising_edge(clk_i) then
+      pres_state <= next_state;     -- Move to next state
+      
+    end if;
+  end process statereg;
+
+
+  --! Calibration FSM combinational block
+  fsm: process(pres_state, startcal_i, busy_i)
+  begin
+    next_state <= pres_state;
+    -- Default values
+    s_Rst_FSM <= '0';
+    s_cal_FSM <= '0';
+    
+    case pres_state is
+      
+      -- st0 - IDLE
+      when st0=>
+        if ( startcal_i = '1') then 
+          next_state <= st1;            -- Next state is "st1 - SEND CALIBRATION SIGNAL"
+        end if;
+        
+      -- st1 - SEND CALIBRATION SIGNAL
+      when st1=>
+        s_cal_FSM <= '1';
+		  next_state <= st2;            -- Next state is "st2 - WAIT BUSY = '0'"
+        
+      -- st2 - WAIT BUSY = '0'
+      when st2=>
+        if busy_i = '0' then 
+          next_state <= st3;            -- Next state is "st3 - RESET STATE"
+        end if;
+        
+        -- st3 - RESET STATE
+      when st3=>
+        s_Rst_FSM <= '1';
+		  next_state <= st0;              -- Next state is "st0 - IDLE"
+		
+    end case;
+    
+  end process fsm;
+
+  calibrate_o <= s_cal_FSM;
+  reset_o <= s_Rst_FSM;
+                
+end rtl;
diff --git a/components/tlu/hdl/trigger/arrivalTimeLUT_rtl.vhd b/components/tlu/hdl/trigger/arrivalTimeLUT_rtl.vhd
new file mode 100644
index 00000000..f1b1acc0
--- /dev/null
+++ b/components/tlu/hdl/trigger/arrivalTimeLUT_rtl.vhd
@@ -0,0 +1,187 @@
+--=============================================================================
+--! @file arrivalTimeLUT_rtl.vhd
+--=============================================================================
+--
+-------------------------------------------------------------------------------
+-- --
+-- University of Bristol, High Energy Physics Group.
+-- --
+------------------------------------------------------------------------------- --
+-- VHDL Architecture work.ArivalTimeLUT.rtl
+--
+--------------------------------------------------------------------------------
+-- 
+-- Created using using Mentor Graphics HDL Designer(TM) 2010.3 (Build 21)
+--
+LIBRARY ieee;
+USE ieee.std_logic_1164.all;
+USE ieee.numeric_std.all;
+
+--! @brief Uses a look-up-table to convert the eight bits from the two 1:4 deserializers\n
+--! into a 5-bit time ( 3 bits from the position in 8-bit deserialized data \n
+--! plus two bits from position w.r.t. the strobe_4x_logic_i signal ( one pulse
+--! every 4 cycles of clk_4x_logic_i 
+--
+--! @author David Cussans , David.Cussans@bristol.ac.uk
+--
+--! @date 12:46:34 11/21/12
+--
+--! @version v0.1
+--
+--! @details
+--! Rising and falling edge times encoded as a LUT. Contents:
+--! MRFrrrfff
+--! \li M = multiple edges present ( more than one rising or falling edge)
+--! \li R = at least one rising edge present
+--! \li F = at least one falling edge present.
+--! \li rrr = time of first rising edge
+--! \li fff = time of first falling edge
+ENTITY arrivalTimeLUT IS
+   GENERIC( 
+      g_NUM_FINE_BITS   : positive := 3;
+      g_NUM_COARSE_BITS : positive := 2
+   );
+   PORT( 
+      clk_4x_logic_i           : IN     std_logic;                                                        --! Rising edge active
+      strobe_4x_logic_i        : IN     std_logic;                                                        --! Pulses high once every 4 cycles of clk_4x_logic
+      deserialized_data_i      : IN     std_logic_vector (8 DOWNTO 0);                                    --! Output from the two 4-bit deserializers, concatenated with most recent bit of previous clock cycle. Clocked by clk_4x_logic_i . bit-8 is the most recent data
+      first_rising_edge_time_o : OUT    std_logic_vector (g_NUM_FINE_BITS+g_NUM_COARSE_BITS-1 DOWNTO 0);  --! Position of rising edge w.r.t. 40MHz strobe. Clocked by clk_4x_logic_i
+      last_falling_edge_time_o : OUT    std_logic_vector (g_NUM_FINE_BITS+g_NUM_COARSE_BITS-1 DOWNTO 0);  --! Position of rising edge w.r.t. 40MHz strobe. Clocked by clk_4x_logic_i
+      rising_edge_o            : OUT    std_logic;                                                        --! goes high if there is a rising edge in the data. Clocked by clk_4x_logic_i
+      falling_edge_o           : OUT    std_logic;                                                        --! goes high if there is a falling edge in the data.Clocked by clk_4x_logic_i
+      multiple_edges_o         : OUT    std_logic                                                         --! there is more than one rising or falling edge transition.
+   );
+
+-- Declarations
+
+END ENTITY arrivalTimeLUT ;
+
+--
+ARCHITECTURE rtl OF arrivalTimeLUT IS
+
+  constant c_FALLING_EDGE_BIT : positive := 2*g_NUM_FINE_BITS;  --! Bit position of bit set when falling edge detected
+  constant c_RISING_EDGE_BIT : positive :=  2*g_NUM_FINE_BITS+1;  --! Bit position of bit set when rising edge detected
+  constant c_MULTI_EDGE_BIT : positive :=  2*g_NUM_FINE_BITS+2;  --! Bit position of bit set when rising edge detected
+
+
+  signal s_coarse_bits : std_logic_vector(g_NUM_COARSE_BITS-1 downto 0) := "00";  --! phase w.r.t. strobe
+
+  signal s_LUT_ENTRY : std_logic_vector(g_NUM_FINE_BITS*2 +3-1 downto 0);  -- stores intermediate LUT value.
+  
+  type t_LUT is array (natural range <>) of std_logic_vector(g_NUM_FINE_BITS*2 + 3 -1 downto 0);
+  --! Lookup table for arrival time and rising/falling edge detection (3bits
+  --! for position in 9-bit deserialized data plus two bits for rising/falling 
+  constant c_LUT : t_LUT(0 to 511) := (
+    "000000000", "001000000", "011000001", "001000001", "011001010", "011001010", "011000010", "001000010", --0 [0, 7]
+    "011010011", "011010011", "111000011", "011010011", "011001011", "011001011", "011000011", "001000011", --1 [8, 15]
+    "011011100", "011011100", "111000100", "011011100", "111001100", "111001100", "111000100", "011011100", --2 [16, 23]
+    "011010100", "011010100", "111000100", "011010100", "011001100", "011001100", "011000100", "001000100", --3 [24, 31]
+    "011100101", "011100101", "111000101", "011100101", "111001101", "111001101", "111000101", "011100101", --4 [32, 39]
+    "111010101", "111010101", "111000101", "111010101", "111001101", "111001101", "111000101", "011100101", --5 [40, 47]
+    "011011101", "011011101", "111000101", "011011101", "111001101", "111001101", "111000101", "011011101", --6 [48, 55]
+    "011010101", "011010101", "111000101", "011010101", "011001101", "011001101", "011000101", "001000101", --7 [56, 63]
+    "011101110", "011101110", "111000110", "011101110", "111001110", "111001110", "111000110", "011101110", --8 [64, 71]
+    "111010110", "111010110", "111000110", "111010110", "111001110", "111001110", "111000110", "011101110", --9 [72, 79]
+    "111011110", "111011110", "111000110", "111011110", "111001110", "111001110", "111000110", "111011110", --10 [80, 87]
+    "111010110", "111010110", "111000110", "111010110", "111001110", "111001110", "111000110", "011101110", --11 [88, 95]
+    "011100110", "011100110", "111000110", "011100110", "111001110", "111001110", "111000110", "011100110", --12 [96, 103]
+    "111010110", "111010110", "111000110", "111010110", "111001110", "111001110", "111000110", "011100110", --13 [104, 111]
+    "011011110", "011011110", "111000110", "011011110", "111001110", "111001110", "111000110", "011011110", --14 [112, 119]
+    "011010110", "011010110", "111000110", "011010110", "011001110", "011001110", "011000110", "001000110", --15 [120, 127]
+    "011110111", "011110111", "111000111", "011110111", "111001111", "111001111", "111000111", "011110111", --16 [128, 135]
+    "111010111", "111010111", "111000111", "111010111", "111001111", "111001111", "111000111", "011110111", --17 [136, 143]
+    "111011111", "111011111", "111000111", "111011111", "111001111", "111001111", "111000111", "111011111", --18 [144, 152]
+    "111010111", "111010111", "111000111", "111010111", "111001111", "111001111", "111000111", "011110111", --19 [152, 159]
+    "111100111", "111100111", "111000111", "111100111", "111001111", "111001111", "111000111", "111100111", --20 [160, 167]
+    "111010111", "111010111", "111000111", "111010111", "111001111", "111001111", "111000111", "111100111", --21 [168, 175]
+    "111011111", "111011111", "111000111", "111011111", "111001111", "111001111", "111000111", "111011111", --22 [176, 183]
+    "111010111", "111010111", "111000111", "111010111", "111001111", "111001111", "111000111", "011110111", --23 [184, 191]
+    "011101111", "011101111", "111000111", "011101111", "111001111", "111001111", "111000111", "011101111", --24 [192, 199]
+    "111010111", "111010111", "111000111", "111010111", "111001111", "111001111", "111000111", "011101111", --25 [200, 207]
+    "111011111", "111011111", "111000111", "111011111", "111001111", "111001111", "111000111", "111011111", --26 [208, 215]
+    "111010111", "111010111", "111000111", "111010111", "111001111", "111001111", "111000111", "011101111", --27 [216, 223]
+    "011100111", "011100111", "111000111", "011100111", "111001111", "111001111", "111000111", "011100111", --28 [224, 231]
+    "111010111", "111010111", "111000111", "111010111", "111001111", "111001111", "111000111", "011100111", --29 [232, 239]
+    "011011111", "011011111", "111000111", "011011111", "111001111", "111001111", "111000111", "011011111", --30 [240, 247]
+    "011010111", "011010111", "111000111", "011010111", "011001111", "011001111", "011000111", "001000111", --31 [248, 255]
+    "010111000", "011111000", "111000001", "011111001", "111001010", "111001010", "111000010", "011111010", --32 [256, 263]
+    "111010011", "111010011", "111000011", "111010011", "111001011", "111001011", "111000011", "011111011", --33 [264, 271]
+    "111011100", "111011100", "111000100", "111011100", "111001100", "111001100", "111000100", "111011100", --34 [272, 279]
+    "111010100", "111010100", "111000100", "111010100", "111001100", "111001100", "111000100", "011111100", --35 [280, 287]
+    "111100101", "111100101", "111000101", "111100101", "111001101", "111001101", "111000101", "111100101", --36 [288, 295]
+    "111010101", "111010101", "111000101", "111010101", "111001101", "111001101", "111000101", "111100101", --37 [296, 303]
+    "111011101", "111011101", "111000101", "111011101", "111001101", "111001101", "111000101", "111011101", --38 [304, 311]
+    "111010101", "111010101", "111000101", "111010101", "111001101", "111001101", "111000101", "011111101", --39 [312, 319]
+    "111101110", "111101110", "111000110", "111101110", "111001110", "111001110", "111000110", "111101110", --40 [320, 327]
+    "111010110", "111010110", "111000110", "111010110", "111001110", "111001110", "111000110", "111101110", --41 [328, 333]
+    "111011110", "111011110", "111000110", "111011110", "111001110", "111001110", "111000110", "111011110", --42 [336, 343]
+    "111010110", "111010110", "111000110", "111010110", "111001110", "111001110", "111000110", "111101110", --43 [344, 351]
+    "111100110", "111100110", "111000110", "111100110", "111001110", "111001110", "111000110", "111100110", --44 [352, 359]
+    "111010110", "111010110", "111000110", "111010110", "111001110", "111001110", "111000110", "111100110", --45 [360, 367]
+    "111011110", "111011110", "111000110", "111011110", "111001110", "111001110", "111000110", "111011110", --46 [368, 375]
+    "111010110", "111010110", "111000110", "111010110", "111001110", "111001110", "111000110", "011111110", --47 [376, 383]
+    "010110000", "011110000", "111000001", "011110001", "111001010", "111001010", "111000010", "011110010", --48 [384, 391]
+    "111010011", "111010011", "111000011", "111010011", "111001011", "111001011", "111000011", "011110011", --49 [392, 399]
+    "111011100", "111011100", "111000100", "111011100", "111001100", "111001100", "111000100", "111011100", --50 [400, 407]
+    "111010100", "111010100", "111000100", "111010100", "111001100", "111001100", "111000100", "011110100", --51 [408, 415]
+    "111100101", "111100101", "111000101", "111100101", "111001101", "111001101", "111000101", "111100101", --52 [416, 423]
+    "111010101", "111010101", "111000101", "111010101", "111001101", "111001101", "111000101", "111100101", --53 [424, 431]
+    "111011101", "111011101", "111000101", "111011101", "111001101", "111001101", "111000101", "111011101", --54 [432, 439]
+    "111010101", "111010101", "111000101", "111010101", "111001101", "111001101", "111000101", "011110101", --55 [440, 447]
+    "010101000", "011101000", "111000001", "011101001", "111001010", "111001010", "111000010", "011101010", --56 [448, 455]
+    "111010011", "111010011", "111000011", "111010011", "111001011", "111001011", "111000011", "011101011", --57 [456, 463]
+    "111011100", "111011100", "111000100", "111011100", "111001100", "111001100", "111000100", "111011100", --58 [464, 471]
+    "111010100", "111010100", "111000100", "111010100", "111001100", "111001100", "111000100", "011101100", --59 [472, 479]
+    "010100000", "011100000", "111000001", "011100001", "111001010", "111001010", "111000010", "011100010", --60 [480, 487]
+    "111010011", "111010011", "111000011", "111010011", "111001011", "111001011", "111000011", "011100011", --61 [488, 495]
+    "010011000", "011011000", "111000001", "011011001", "111001010", "111001010", "111000010", "011011010", --62 [496, 503]
+    "010010000", "011010000", "111000001", "011010001", "010001000", "011001000", "010000000", "000000000" -- 63 [504, 511]
+    );  
+  
+BEGIN
+
+  -- purpose: uses the deserialized data as a index into
+  --          a lookup table holding the position of the first rising edge (if any)
+  --          and if there is a rising or falling edge
+  -- type   : combinational
+  -- inputs : clk_4x_logic_i
+  -- outputs: arrival_time_o , rising_edge_o , falling_edge_o
+  examine_lut: process (clk_4x_logic_i) -- , deserialized_data_i)
+--    variable v_LUT_entry : std_logic_vector(g_NUM_FINE_BITS+2-1 downto 0);  --! Entry in LUT pointed to by deserialized data
+  begin  -- process examine_lut
+    
+--    v_LUT_entry := c_LUT(to_integer(unsigned(deserialized_data_i)));
+
+    if rising_edge(clk_4x_logic_i) then
+      s_LUT_ENTRY <= c_LUT(to_integer(unsigned(deserialized_data_i)));
+      first_rising_edge_time_o <= s_coarse_bits & s_LUT_ENTRY(g_NUM_FINE_BITS*2-1 downto g_NUM_FINE_BITS);
+      last_falling_edge_time_o <= s_coarse_bits & s_LUT_ENTRY(g_NUM_FINE_BITS-1 downto 0);
+      rising_edge_o  <= s_LUT_ENTRY(c_RISING_EDGE_BIT);
+      falling_edge_o <= s_LUT_ENTRY(c_FALLING_EDGE_BIT);
+      multiple_edges_o <= s_LUT_ENTRY(c_MULTI_EDGE_BIT); 
+    end if;
+
+  end process examine_lut;
+  
+  --! Coarse time stamp. Phase w.r.t. strobe
+--	c_coarse_ts : entity work.CounterUp
+--   PORT MAP (
+--     clk   => clk_4x_logic_i,
+--     ce    => '1',
+--     sinit => strobe_4x_logic_i, --'0',
+--	  q(31 downto 2) => open,
+--     q(1 downto 0)  => s_coarse_bits
+--	);
+--  
+  	c_coarse_ts : entity work.CounterWithReset
+  	GENERIC MAP (
+  	  g_COUNTER_WIDTH => 2 )
+   PORT MAP (
+     clock_i   => clk_4x_logic_i,
+     enable_i   => '1',
+     reset_i => strobe_4x_logic_i,        -- Synchronous reset, so the counter will present result_o="11" when reset_i='1'
+     result_o => s_coarse_bits
+	);
+	
+END ARCHITECTURE rtl;
+
diff --git a/components/tlu/hdl/trigger/dualSERDES_1to4_rtl.vhd b/components/tlu/hdl/trigger/dualSERDES_1to4_rtl.vhd
new file mode 100644
index 00000000..dd090f4a
--- /dev/null
+++ b/components/tlu/hdl/trigger/dualSERDES_1to4_rtl.vhd
@@ -0,0 +1,421 @@
+--=============================================================================
+--! @file dualSERDES_1to4_rtl.vhd
+--=============================================================================
+--
+-------------------------------------------------------------------------------
+-- --
+-- University of Bristol, High Energy Physics Group.
+-- --
+------------------------------------------------------------------------------- --
+-- VHDL Architecture work.dualSERDES_1to4.rtl
+--
+-- 
+-- Created using using Mentor Graphics HDL Designer(TM) 2010.3 (Build 21)
+--
+LIBRARY ieee;
+USE ieee.std_logic_1164.all;
+USE ieee.numeric_std.all;
+
+library unisim ;
+use unisim.vcomponents.all;
+
+--! @brief Two 1:4 Deserializers. One has input delayed w.r.t. other
+--! based on TDC by Alvaro Dosil
+--
+--! @author David Cussans , David.Cussans@bristol.ac.uk
+--
+--! @date 12:06:53 11/16/12
+--
+--! @version v0.1
+--
+--! @details
+--! data_o(7) is the most recently arrived data , data_o(0) is the oldest data.
+--!
+--! <b>Modified by: Alvaro Dosil , alvaro.dosil@usc.es </b>\n
+--! Author: 
+-------------------------------------------------------------------------------
+--! \n\n<b>Last changes:</b>\n
+--! Separated FSM for calibration control into a separate entity. DGC, 22/Feb/14
+-------------------------------------------------------------------------------
+--! @todo Implement a periodic calibration sequence\n
+--
+--------------------------------------------------------------------------------
+
+ENTITY dualSERDES_1to4 IS
+   PORT( 
+      reset_i        : IN     std_logic;                      --! Resets  IODELAY
+      --calibrate_i    : IN     std_logic;                      --! Starts IODELAY calibration.
+      --data_i         : IN     std_logic;                      --! from input buffer.
+      data_i_pos     : IN     std_logic;                      --! from positive differential input pin 
+      data_i_neg     : IN     std_logic;                      --! from negative differential input pin 
+      fastClk_i      : IN     std_logic;                      --! 2x fabric clock. e.g. 320MHz
+      fabricClk_i    : IN     std_logic;                      --! clock for output to FPGA. e.g. 160MHz
+      strobe_i       : IN     std_logic;                      --! Strobes once every 4 cycles of fastClk
+      data_o         : OUT    std_logic_vector (7 DOWNTO 0);  --! Deserialized data. Interleaved between prompt and delayed  serdes.
+                                                              --! data_o(0) is the oldest data
+      status_o       : OUT    std_logic_vector(1 downto 0)    --! outputs from IODELAY "busy" 0=prompt,1=delayed
+   );
+
+-- Declarations
+
+
+END ENTITY dualSERDES_1to4 ;
+
+--
+ARCHITECTURE rtl OF dualSERDES_1to4 IS
+
+    constant c_S : positive := 4;                     -- ! SERDES division ratio
+
+    signal s_Data_i_d_p   : std_logic;
+    signal s_Data_i_d_d   : std_logic;
+    signal s_busy_idelay_p  : std_logic;              -- Busy from iodelay.
+    signal s_busy_idelay_d  : std_logic;              -- Busy from iodelay.
+    signal s_busy			  : std_logic;              -- Busy from the two iodelays.
+    signal s_data_o       : std_logic_vector(7 downto 0);  --! Deserialized data
+	signal s_cal			 : std_logic := '0'; 				--! Calibration signal
+	signal s_rst_cal		: std_logic := '0'; 				--! reset after calibration process
+    signal delay_val :std_logic_vector(4 downto 0);
+    signal prompt_val :std_logic_vector(4 downto 0);
+    signal delayed_out: std_logic_vector(4 downto 0);
+    signal prompt_out: std_logic_vector(4 downto 0);
+---------------------------------------------
+    component delayIO
+    generic
+    (-- width of the data for the system
+    SYS_W       : integer := 1;
+    -- width of the data for the device
+    DEV_W       : integer := 1);
+    port
+        (
+        -- From the system into the device
+        data_in_from_pins_p     : in    std_logic_vector(SYS_W-1 downto 0);
+        data_in_from_pins_n     : in    std_logic_vector(SYS_W-1 downto 0);
+        data_in_to_device       : out   std_logic_vector(DEV_W-1 downto 0);
+        
+        -- Input, Output delay control signals
+        delay_clk               : in    std_logic;
+        in_delay_reset          : in    std_logic;                    -- Active high synchronous reset for input delay
+        in_delay_data_ce        : in    std_logic_vector(SYS_W -1 downto 0);                    -- Enable signal for delay 
+        in_delay_data_inc       : in    std_logic_vector(SYS_W -1 downto 0);                    -- Delay increment (high), decrement (low) signal
+        delay_locked            : out   std_logic;                    -- Locked signal from IDELAYCTRL
+        ref_clock               : in    std_logic;                    -- Reference Clock for IDELAYCTRL. Has to come from BUFG.
+        
+        -- Clock and reset signals
+        clk_in                  : in    std_logic;                    -- Fast clock from PLL/MMCM 
+        clock_enable            : in    std_logic;
+        io_reset                : in    std_logic);                   -- Reset signal for IO circuit
+    end component;
+
+  
+BEGIN
+ 
+	-- IODELAYs calibration FSM
+	IODELAYCal: entity work.IODELAYCal_FSM
+    port map (
+        clk_i       => fabricClk_i,
+        startcal_i  => reset_i,
+        busy_i		=> s_busy,
+        calibrate_o     => s_cal,
+        reset_o         => s_rst_cal
+    );
+
+
+-----------------------------------------------------
+--    iodelay_prompt : delayIO
+--    port map 
+--    ( 
+--        data_in_from_pins_p(0) => data_i_pos,
+--        data_in_from_pins_n(0) => data_i_neg,
+--        data_in_to_device(0) => s_Data_i_d_p,
+--        delay_clk => fabricClk_i,
+--        in_delay_reset => '0',                    
+--        in_delay_data_ce(0) => '1',      
+--        in_delay_data_inc(0) => '0',     
+        
+--        delay_locked => open,                      
+--        ref_clock => fabricClk_i,                         
+--        clk_in => fastClk_i,                            
+--        clock_enable => '1',
+--        io_reset => s_rst_cal
+--    );
+    prompt_val <= "00000";
+
+    IDELAY2_Prompt : IDELAYE2
+    generic map (
+        IDELAY_TYPE => "VARIABLE",
+        DELAY_SRC => "IDATAIN",
+        SIGNAL_PATTERN => "DATA"
+    )
+    port map (
+        CNTVALUEOUT=> prompt_out,--5-bitoutput:Countervalueoutput
+        DATAOUT=> s_Data_i_d_p,    --1-bitoutput:Delayeddataoutput
+        C=> fabricClk_i,    --1-bitinput:Clockinput
+        CE=> '0',    --1-bitinput:Activehighenableincrement/decrementinput
+        CINVCTRL=> '0' ,--1-bitinput:Dynamicclockinversioninput
+        CNTVALUEIN=> prompt_val,--5-bitinput:Countervalueinput
+        DATAIN=> '0',    --1-bitinput:Internaldelaydatainput
+        IDATAIN => not data_i_neg, --- THIS MUST BE INVERTED!!!!
+        --IDATAIN=> data_i,    --1-bitinput:DatainputfromtheI/O
+        INC=> '0',    --1-bitinput:Increment/Decrementtapdelayinput
+        LD=> '0',    --1-bitinput:LoadIDELAY_VALUEinput
+        LDPIPEEN=> '0',--1-bitinput:EnablePIPELINEregistertoloaddatainput
+        REGRST=> s_rst_cal    --1-bitinput:Active-highresettap-delayinput
+    );
+    
+
+
+----IODELAY2 no longer valid. Replaced using IP delay (SelectIO interface wizard generated)
+--  IODELAY2_Prompt : IODELAY2
+--    generic map (
+--      COUNTER_WRAPAROUND => "STAY_AT_LIMIT" ,  -- "STAY_AT_LIMIT" or "WRAPAROUND" 
+--      DATA_RATE          => "SDR",            -- "SDR" or "DDR" 
+--      DELAY_SRC          => "IDATAIN",        -- "IO", "ODATAIN" or "IDATAIN" 
+--      SERDES_MODE        => "NONE", 			-- <NONE>, MASTER, SLAVE
+--      IDELAY_TYPE        => "VARIABLE_FROM_ZERO",
+--      IDELAY_VALUE     	=> 0                -- Amount of taps for fixed input delay (0-255)
+--      --SIM_TAPDELAY_VALUE=> 10               -- Per tap delay used for simulation in ps
+--      )
+--    port map (
+--      BUSY     => s_busy_idelay_p,      -- 1-bit output: Busy output after CAL
+--      DATAOUT  => s_Data_i_d_p,     -- 1-bit output: Delayed data output to ISERDES/input register
+--      DATAOUT2 => open,             -- 1-bit output: Delayed data output to general FPGA fabric
+--      DOUT     => open,             -- 1-bit output: Delayed data output
+--      TOUT     => open,             -- 1-bit output: Delayed 3-state output
+--      CAL      => s_cal,      		-- 1-bit input: Initiate calibration input
+--      CE       => '0',              -- 1-bit input: Enable INC input
+--      CLK      => fabricClk_i,      -- 1-bit input: Clock input
+--      IDATAIN  => data_i,           -- 1-bit input: Data input (connect to top-level port or I/O buffer)
+--      INC      => '0',              -- 1-bit input: Increment / decrement input
+--      IOCLK0   => fastClk_i,        -- 1-bit input: Input from the I/O clock network
+--      IOCLK1   => '0',              -- 1-bit input: Input from the I/O clock network
+--      ODATAIN  => '0',              -- 1-bit input: Output data input from output register or OSERDES2.
+--      RST      => s_rst_cal,            -- 1-bit input: reset_i to 1/2 of total delay period
+--      T        => '1'               -- 1-bit input: 3-state input signal
+--      );
+    
+    s_busy_idelay_p <= (prompt_val(0) XOR  prompt_out(0)) OR (prompt_val(1) XOR  prompt_out(1)) OR (prompt_val(2) XOR  prompt_out(2)) OR (prompt_val(3) XOR  prompt_out(3)) OR (prompt_val(4) XOR  prompt_out(4));
+	status_o(1) <= s_busy_idelay_p;
+
+--    iodelay_delay : delayIO
+--    port map 
+--    ( 
+--        data_in_from_pins_p(0) => data_i_pos,
+--        data_in_from_pins_n(0) => data_i_neg,
+--        data_in_to_device(0) => s_Data_i_d_d,
+--        delay_clk => fabricClk_i,
+--        in_delay_reset => '0',                    
+--        in_delay_data_ce(0) => '1',      
+--        in_delay_data_inc(0) => '0',     
+        
+--        delay_locked => open,                      
+--        ref_clock => fabricClk_i,                         
+--        clk_in => fastClk_i,                            
+--        clock_enable => '1',
+--        clk_out => open,
+--        io_reset => s_rst_cal
+--    );
+
+    -- This should be configurable via IPBus. For now fixed value. The tap value is 200 MHz (5 ns). We want
+    -- a quarter of the 320 MHz clock (3.125 ns) so 0.78125 ns, corresponding to 6 taps.
+    delay_val <= "00110";
+    --delay_val <= "00000";
+    
+    IDELAY2_Delayed : IDELAYE2
+    generic map (
+        --IDELAY_TYPE => "VARIABLE",
+        IDELAY_TYPE => "VAR_LOAD",
+        DELAY_SRC => "IDATAIN",
+        SIGNAL_PATTERN => "DATA"
+    )
+    port map (
+        CNTVALUEOUT=> delayed_out,--5-bitoutput:Countervalueoutput
+        DATAOUT=> s_Data_i_d_d,    --1-bitoutput:Delayeddataoutput
+        C=> fabricClk_i,    --1-bitinput:Clockinput
+        CE=> '0',    --1-bitinput:Activehighenableincrement/decrementinput
+        CINVCTRL=> '0' ,--1-bitinput:Dynamicclockinversioninput
+        CNTVALUEIN=> delay_val,--5-bitinput:Countervalueinput
+        DATAIN=> '0',    --1-bitinput:Internaldelaydatainput
+--        IDATAIN=> data_i,    --1-bitinput:DatainputfromtheI/O
+        IDATAIN => data_i_pos,
+        INC=> '0',    --1-bitinput:Increment/Decrementtapdelayinput
+        LD=> '1',    --1-bitinput:LoadIDELAY_VALUEinput
+        LDPIPEEN=> '0',--1-bitinput:EnablePIPELINEregistertoloaddatainput
+        REGRST=> s_rst_cal    --1-bitinput:Active-highresettap-delayinput
+    );
+        
+
+--    IODELAY2_Delayed : IODELAY2
+--    generic map (
+--        COUNTER_WRAPAROUND => "STAY_AT_LIMIT",  -- "STAY_AT_LIMIT" or "WRAPAROUND" 
+--        DATA_RATE          => "SDR",         -- "SDR" or "DDR" 
+--        DELAY_SRC          => "IDATAIN",     -- "IO", "ODATAIN" or "IDATAIN" 
+--        SERDES_MODE        => "NONE", 			-- <NONE>, MASTER, SLAVE
+--        IDELAY_TYPE        => "VARIABLE_FROM_HALF_MAX",
+--        IDELAY_VALUE       => 0,             -- Amount of taps for fixed input delay (0-255)
+--        IDELAY2_VALUE      => 0             	-- Delay value when IDELAY_MODE="PCI" (0-255)
+--    --SIM_TAPDELAY_VALUE => 10              -- Per tap delay used for simulation in ps
+--    )
+--    port map (
+--        BUSY     => s_busy_idelay_d,      -- 1-bit output: Busy output after CAL
+--        DATAOUT  => s_Data_i_d_d,     -- 1-bit output: Delayed data output to ISERDES/input register
+--        DATAOUT2 => open,             -- 1-bit output: Delayed data output to general FPGA fabric
+--        DOUT     => open,             -- 1-bit output: Delayed data output
+--        TOUT     => open,             -- 1-bit output: Delayed 3-state output
+--        CAL      => s_cal,      		-- 1-bit input: Initiate calibration input
+--        CE       => '0',              -- 1-bit input: Enable INC input
+--        CLK      => fabricClk_i,      -- 1-bit input: Clock input
+--        IDATAIN  => data_i,           -- 1-bit input: Data input (connect to top-level port or I/O buffer)
+--        INC      => '0',              -- 1-bit input: Increment / decrement input
+--        IOCLK0   => fastClk_i,        -- 1-bit input: Input from the I/O clock network
+--        IOCLK1   => '0',              -- 1-bit input: Input from the I/O clock network
+--        ODATAIN  => '0',              -- 1-bit input: Output data input from output register or OSERDES2.
+--        RST      => s_rst_cal,          -- 1-bit input: reset_i to zero
+--        T        => '1'               -- 1-bit input: 3-state input signal
+--    );
+
+
+    --I must check that the CNTVALUEOUT and CNTVALUEIN are the same. TO DO
+	--status_o(0) <= s_busy_idelay_d;
+	s_busy_idelay_d <= (delay_val(0) XOR  delayed_out(0)) OR (delay_val(1) XOR  delayed_out(1)) OR (delay_val(2) XOR  delayed_out(2)) OR (delay_val(3) XOR  delayed_out(3)) OR (delay_val(4) XOR  delayed_out(4));
+	status_o(0) <= s_busy_idelay_d;
+	s_busy <= s_busy_idelay_p or s_busy_idelay_d;
+
+
+-----------------------------------------------------
+--ISERDES2 replaced by ISERDESE2 in Series 7
+--  ISERDES2_Prompt : ISERDES2
+--  generic map (
+--    BITSLIP_ENABLE => FALSE,         -- Enable Bitslip Functionality (TRUE/FALSE)
+--    DATA_RATE      => "SDR",         -- Data-rate ("SDR" or "DDR")
+--    DATA_WIDTH     => 4,           -- Parallel data width selection (2-8)
+--    INTERFACE_TYPE => "RETIMED",     -- "NETWORKING", "NETWORKING_PIPELINED" or "RETIMED" 
+--    SERDES_MODE    => "NONE"         -- "NONE", "MASTER" or "SLAVE" 
+--   )
+--  port map (
+--    -- Q1 - Q4: 1-bit (each) output Registered outputs to FPGA logic
+--    Q1     => s_Data_o(1),         -- Oldest data
+--    Q2     => s_Data_o(3),
+--    Q3     => s_Data_o(5),
+--    Q4     => s_Data_o(7),         -- most recent data
+--    --SHIFTOUT => SHIFTOUTsig,       -- 1-bit output Cascade output signal for master/slave I/O
+--    VALID   => open,                 -- 1-bit output Output status of the phase detector
+--    BITSLIP => '0',                  -- 1-bit input Bitslip enable input
+--    CE0     => '1',                  -- 1-bit input Clock enable input
+--    CLK0    => fastClk_i,            -- 1-bit input I/O clock network input
+--    CLK1    => '0',                  -- 1-bit input Secondary I/O clock network input
+--    CLKDIV  => fabricClk_i,          -- 1-bit input FPGA logic domain clock input
+--    D       => s_Data_i_d_p,         -- 1-bit input Input data
+--    IOCE    => strobe_i,             -- 1-bit input Data strobe_i input
+--    RST     => reset_i,              -- 1-bit input Asynchronous reset_i input
+--    SHIFTIN => '0'                   -- 1-bit input Cascade input signal for master/slave I/O
+--   );
+
+    ISERDESE2_Prompt: ISERDESE2 --Used to replace ISERDES2. Best of luck with it.
+    generic map (
+        DATA_RATE => "DDR",
+        DATA_WIDTH => 4,
+        INTERFACE_TYPE=> "NETWORKING", --Not sure this is correct
+        IOBDELAY => "BOTH", --same as above
+        SERDES_MODE => "MASTER",
+        NUM_CE => 1
+    )
+    port map (
+        O => open,
+        Q4     => s_Data_o(1), -- Oldest data
+        Q3     => s_Data_o(3),
+        Q2     => s_Data_o(5),
+        Q1     => s_Data_o(7),
+        BITSLIP => '0',
+        CE1 => '1',
+        CE2 => '1',
+        CLKDIVP => '0',
+        CLK  => fastClk_i,            -- 1-bit input I/O clock network input
+        CLKB  => not fastClk_i, --should be a unique phase shifted clock
+        CLKDIV => fabricClk_i,
+        DDLY=> s_Data_i_d_p,
+        D=> '0', -- data_i
+        RST=> reset_i,
+        SHIFTIN1 => '0',
+        SHIFTIN2 => '0',
+        DYNCLKDIVSEL=> '0',
+        DYNCLKSEL=> '0', 
+        --OCLK => strobe_i,
+        OCLK => '0',
+        OCLKB => '0',
+        OFB=> '0'
+    );
+
+--  ISERDES2_Delayed : ISERDES2
+--  generic map (
+--    BITSLIP_ENABLE => FALSE,       -- Enable Bitslip Functionality (TRUE/FALSE)
+--    DATA_RATE      => "SDR",       -- Data-rate ("SDR" or "DDR")
+--    DATA_WIDTH     => 4,         -- Parallel data width selection (2-8)
+--    INTERFACE_TYPE => "RETIMED",   -- "NETWORKING", "NETWORKING_PIPELINED" or "RETIMED" 
+--    SERDES_MODE    => "NONE"       -- "NONE", "MASTER" or "SLAVE" 
+--   )
+--  port map (
+--	-- Q1 - Q4: 1-bit (each) output Registered outputs to FPGA logic
+--    Q1     => s_Data_o(0),           -- oldest data
+--    Q2     => s_Data_o(2),
+--    Q3     => s_Data_o(4),
+--    Q4     => s_Data_o(6),           -- most recent data
+--    --SHIFTOUT => SHIFTOUTsig,     -- 1-bit output Cascade output signal for master/slave I/O
+--    VALID   => open,               -- 1-bit output Output status of the phase detector
+--    BITSLIP => '0',                -- 1-bit input Bitslip enable input
+--    CE0     => '1',                -- 1-bit input Clock enable input
+--    CLK0    => fastClk_i,          -- 1-bit input I/O clock network input
+--    CLK1    => '0',                -- 1-bit input Secondary I/O clock network input
+--    CLKDIV  => fabricClk_i,        -- 1-bit input FPGA logic domain clock input
+--    D       => s_Data_i_d_d,       -- 1-bit input Input data
+--    IOCE    => strobe_i,           -- 1-bit input Data strobe_i input
+--    RST     => reset_i,            -- 1-bit input Asynchronous reset_i input
+--    SHIFTIN => '0'                 -- 1-bit input Cascade input signal for master/slave I/O
+--   );
+   
+   
+   ISERDESE2_Delayed: ISERDESE2 --Used to replace ISERDES2. Best of luck with it.
+       generic map (
+           DATA_RATE => "DDR",
+           DATA_WIDTH => 4,
+           INTERFACE_TYPE=> "NETWORKING", --Not sure this is correct
+           IOBDELAY => "BOTH", --same as above
+           SERDES_MODE => "MASTER",
+           NUM_CE => 1
+       )
+       port map (
+           O => open,
+           Q4     => s_Data_o(0),           -- oldest data
+           Q3     => s_Data_o(2),
+           Q2     => s_Data_o(4),
+           Q1     => s_Data_o(6), 
+           BITSLIP => '0',
+           CE1 => '1',
+           CE2 => '1',
+           CLKDIVP => '0',
+           CLK  => fastClk_i,            -- 1-bit input I/O clock network input
+           CLKB  => not fastClk_i, --should be a unique phase shifted clock
+           CLKDIV => fabricClk_i,
+           DDLY=> s_Data_i_d_d,
+           D=> '0', -- data_i
+           RST=> reset_i,
+           SHIFTIN1 => '0',
+           SHIFTIN2 => '0',
+           DYNCLKDIVSEL=> '0',
+           DYNCLKSEL=> '0', 
+           OCLK => strobe_i,
+           OCLKB => '0',
+           OFB=> '0'
+       );
+-----------------------------------------------------
+
+
+
+reg_out : process(fabricClk_i)
+begin
+  if rising_edge(fabricClk_i) then
+    Data_o <= s_Data_o;
+  end if;
+end process;
+
+END ARCHITECTURE rtl;
+
diff --git a/components/tlu/hdl/trigger/triggerInputs_newTLU_rtl.vhd b/components/tlu/hdl/trigger/triggerInputs_newTLU_rtl.vhd
new file mode 100644
index 00000000..4443faf0
--- /dev/null
+++ b/components/tlu/hdl/trigger/triggerInputs_newTLU_rtl.vhd
@@ -0,0 +1,291 @@
+--=============================================================================
+--! @file triggerInputs_rtl.vhd
+--=============================================================================
+--
+-------------------------------------------------------------------------------
+-- --
+-- University of Bristol, High Energy Physics Group.
+-- --
+------------------------------------------------------------------------------- --
+-- VHDL Architecture fmc_mTLU_lib.triggerInputs.rtl
+--
+--------------------------------------------------------------------------------
+-- 
+-- Created using using Mentor Graphics HDL Designer(TM) 2010.3 (Build 21)
+--
+LIBRARY ieee;
+USE ieee.std_logic_1164.all;
+USE ieee.numeric_std.all;
+USE work.ipbus.all;
+USE work.ipbus_reg_types.all;
+USE work.fmcTLU.all;
+
+
+library unisim ;
+use unisim.vcomponents.all;
+
+--! @brief Measures arrival time of trigger pulses using two deserializers
+--! clocked on 14x clock ( 640MHz) 
+--! Based on TDC code by Alvaro Dosil
+--!
+--! @author David Cussans , David.Cussans@bristol.ac.uk
+--!
+--!
+--! @date 15:43:57 11/08/12
+--!
+--! @version v0.1
+--!
+--! @details
+--! \li IPBus address 0 = control and status
+--!  \li bit0 = reset serdes
+--!  \li bit1 = reset counter
+--!  \li bit2 = calibrate IDELAYs
+--!  \li bit3 = not connected
+--!  \li bit4 = Thresh discr  IDelay(0) status prompt
+--!  \li bit5 = Thresh discr  IDelay(0) status delayed
+--!  \li bit6 = Thresh discr  IDelay(1) status prompt
+--!  \li bit7 = Thresh discr  IDelay(1) status delayed
+--!  \li bit8 = Thresh discr  IDelay(2) status prompt
+--!  \li bit9 = Thresh discr  IDelay(2) status delayed
+--!  \li bit10= Thresh discr  IDelay(3) status prompt
+--!  \li bit11= Thresh discr  IDelay(3) status delayed
+--!  \li bit12= CFD discr  IDelay(0) status prompt
+--!  \li bit13= CFD discr  IDelay(0) status delayed
+--!  \li bit14= CFD discr  IDelay(1) status prompt
+--!  \li bit15= CFD discr  IDelay(1) status delayed
+--!  \li bit16= CFD discr  IDelay(2) status prompt
+--!  \li bit17= CFD discr  IDelay(2) status delayed
+--!  \li bit18= CFD discr  IDelay(3) status prompt
+--!  \li bit19= CFD discr  IDelay(3) status delayed
+--!  \li bit20= Thresh deserialized data monitor(0)
+--!  \li bit21= Thresh deserialized data monitor(1)
+--!  \li bit22= Thresh deserialized data monitor(2)
+--!  \li bit23= Thresh deserialized data monitor(3)
+--!  \li bit24= CFD deserialized data monitor(0)
+--!  \li bit25= CFD deserialized data monitor(1)
+--!  \li bit26= CFD deserialized data monitor(2)
+--!  \li bit27= CFD deserialized data monitor(3)
+--!
+--! \li IPBus address 1 = edge rising(0) counter
+--! \li IPBus address 2 = edge rising(1) counter
+--! \li IPBus address 3 = edge rising(2) counter
+--! \li IPBus address 4 = edge rising(3) counter
+--!
+--!
+--! <b>Modified by: Alvaro Dosil , alvaro.dosil@usc.es </b>\n
+--! Author: 
+-------------------------------------------------------------------------------
+--! \n\n<b>Last changes:</b>\n
+-------------------------------------------------------------------------------
+--! @todo Implement a periodic calibration sequence 
+--
+
+ENTITY triggerInputs_newTLU IS
+   GENERIC( 
+      g_NUM_INPUTS  : natural  := 1;--1
+      g_IPBUS_WIDTH : positive := 32
+   );
+   PORT( 
+      --cfd_discr_p_i        : IN     std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);         --! Inputs from constant-fraction discriminators
+      --cfd_discr_n_i        : IN     std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);         --! Input from CFD
+      clk_4x_logic         : IN     std_logic;                                          --! Rising edge active. By default = 4*40MHz = 160MHz
+      clk_200_i : IN     std_logic;
+      strobe_4x_logic_i    : IN     std_logic;                                          --! Pulses high once every 4 cycles of clk_4x_logic
+      threshold_discr_p_i  : IN     std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);         --! inputs from threshold comparators
+      threshold_discr_n_i  : IN     std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);         --! inputs from threshold comparators
+      reset_i              : IN     std_logic;
+      trigger_times_o      : OUT    t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);       --! trigger arrival time ( w.r.t. logic_strobe)
+      trigger_o            : OUT    std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);         --!  Goes high on leading edge of trigger, in sync with clk_4x_logic_i
+      --trigger_debug_o      : OUT    std_logic_vector ( ((2*g_NUM_INPUTS)-1) DOWNTO 0);  --! Copy of input trigger level. High bits CFD, Low threshold
+      edge_rising_times_o  : OUT    t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);       --! edge arrival time ( w.r.t. logic_strobe)
+      edge_falling_times_o : OUT    t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);       --! edge arrival time ( w.r.t. logic_strobe)
+      edge_rising_o        : OUT    std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);         --! High when rising edge. Syncronous with clk_4x_logic_i
+      edge_falling_o       : OUT    std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);         --! High when falling edge
+      ipbus_clk_i          : IN     std_logic;
+      ipbus_reset_i        : IN     std_logic;
+      ipbus_i              : IN     ipb_wbus;                                           --! Signals from IPBus core to slave
+      ipbus_o              : OUT    ipb_rbus;                                           --! signals from slave to IPBus core
+      clk_8x_logic_i      : IN     std_logic;                                          --! 320MHz clock ( 8x 40MHz )
+      strobe_8x_logic_i   : IN     std_logic                                           --! Pulses one cycle every 4 of 8x clock.
+   );
+
+-- Declarations
+END triggerInputs_newTLU ;
+
+--
+ARCHITECTURE rtl OF triggerInputs_newTLU IS
+  
+    signal s_rst_iserdes : std_logic := '0'; --! Reset ISERDES and IDELAY
+    signal s_threshold_discr_input , s_thr_in_p, s_thr_in_n : std_logic_vector(g_NUM_INPUTS-1 downto 0);  --! inputs from comparator
+    type t_deserialized_trigger_data_array is array ( natural range <> ) of std_logic_vector(7 downto 0); --
+    signal s_deserialized_threshold_data, s_deserialized_threshold_data_d , s_deserialized_cfd_data, s_deserialized_cfd_data_d : t_deserialized_trigger_data_array(g_NUM_INPUTS-1 downto 0);
+    type t_deserialized_trigger_data_array_l is array ( natural range <> ) of std_logic_vector(8 downto 0); --
+    signal s_deserialized_threshold_data_l , s_deserialized_cfd_data_l : t_deserialized_trigger_data_array_l(g_NUM_INPUTS-1 downto 0);
+    signal s_threshold_previous_late_bit    : std_logic_vector(g_NUM_INPUTS-1 downto 0) := (others => '0');  -- last bit to arrive from previous 4
+    signal s_ipbus_ack                      : std_logic := '0';  -- used to produce a delayed IPBus ack signal
+    signal s_edge_rising_times:   t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);  --! edge arrival time ( w.r.t. logic_strobe)
+    signal s_edge_falling_times:  t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);  --! edge arrival time ( w.r.t. logic_strobe)
+    signal s_edge_rising:         std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);    --! High when rising edge
+    signal s_edge_falling:        std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);    --! High when falling edge
+    constant c_N_CTRL : positive := 1;
+    constant c_N_STAT : positive := g_NUM_INPUTS+1 ;
+    signal s_status_to_ipbus , s_sync_status_to_ipbus: ipb_reg_v(c_N_STAT-1 downto 0);
+    signal s_control_from_ipbus , s_sync_control_from_ipbus: ipb_reg_v(c_N_CTRL-1 downto 0);
+    --  signal s_reset_reg , s_status_reg: std_logic_vector(g_IPBUS_WIDTH-1 downto 0) := (others => '0');
+    signal s_counter_reset, s_calibrate_idelay: std_logic := '0';
+  
+BEGIN
+    -----------------------------------------------------------------------------
+    -- IPBus interface 
+    -----------------------------------------------------------------------------
+
+    -- Can't get ipbus_syncreg_v to meet timing. So use non-syncronized followed
+    -- by synchronizer.
+    ipbus_registers: entity work.ipbus_ctrlreg_v
+    generic map (
+        N_STAT =>  c_N_STAT )
+    port map(
+        clk=> ipbus_clk_i,
+        reset => ipbus_reset_i ,
+        ipbus_in =>  ipbus_i,
+        ipbus_out => ipbus_o,
+        d=>  s_sync_status_to_ipbus,
+        q=>  s_control_from_ipbus,
+        stb => open
+        );
+
+    -- sync data from I/O logic to IPBus
+    sync_registers: entity work.synchronizeRegisters
+    generic map (
+        g_NUM_REGISTERS => c_N_STAT )
+    port map (
+        clk_input_i => clk_4x_logic,
+        data_i      => s_status_to_ipbus,
+        data_o      => s_sync_status_to_ipbus,
+        clk_output_i => ipbus_clk_i);
+
+    -- sync data from I/O logic to IPBus
+    sync_ipbus: entity work.synchronizeRegisters
+    generic map (
+        g_NUM_REGISTERS => c_N_CTRL )
+    port map (
+        clk_input_i => ipbus_clk_i,
+        data_i      => s_control_from_ipbus,
+        data_o      => s_sync_control_from_ipbus,
+        clk_output_i => clk_4x_logic);
+
+    -- Map the control registers...
+    -- Register that controls IODELAY and ISERDES reset is at address 0
+    s_rst_iserdes <= reset_i or s_sync_control_from_ipbus(0)(0);
+    s_counter_reset <= s_sync_control_from_ipbus(0)(1);
+    s_calibrate_idelay <= s_sync_control_from_ipbus(0)(2);
+  
+    s_status_to_ipbus(0)(0) <= s_rst_iserdes;
+    s_status_to_ipbus(0)(1) <= s_counter_reset;
+    s_status_to_ipbus(0)(2) <= s_calibrate_idelay;
+    -- Connect up unused lines in status regiser to 0.
+    s_status_to_ipbus(0)(3) <= '0';
+    s_status_to_ipbus(0)(g_IPBUS_WIDTH-1 downto 28) <= (others => '0');
+
+    -----------------------------------------------------------------------------
+    -- Connect up trigger inputs to deserializers and a LUT to determine
+    -- arrival time
+    -----------------------------------------------------------------------------
+    idelaytriggers0: idelayctrl port map(
+          refclk => clk_200_i,
+          rst => reset_i
+    );
+ 
+    --BEGIN FOR LOOP
+    -- Instantiate one for each trigger input of the TLU
+    trigger_input_loop: for triggerInput in 0 to (g_NUM_INPUTS-1) generate
+
+        -- Differential buffer. Receives differential trigger input and produces a buffered differential signal.
+        IBUFDS_DIFF_OUT_inst : IBUFDS_DIFF_OUT
+        generic map (
+            IBUF_LOW_PWR => false,
+            IOSTANDARD       => "LVDS_25"
+        )
+        port map (
+            O => s_thr_in_p(triggerInput),
+            OB => s_thr_in_n(triggerInput),
+            I => threshold_discr_p_i(triggerInput),
+            IB => threshold_discr_n_i(triggerInput)
+        );
+        
+        -- Deserialize the trigger input    
+        thresholdDeserializer: entity work.dualSERDES_1to4
+        port map (
+            reset_i 			=> s_rst_iserdes,
+            --calibrate_i 		=> s_calibrate_idelay,
+            --data_i         => s_threshold_discr_input(triggerInput),
+            --data_i         => '0',
+            data_i_pos     => s_thr_in_p(triggerInput),
+            data_i_neg     => s_thr_in_n(triggerInput),
+            fastClk_i      => clk_8x_logic_i,
+            fabricClk_i    => clk_4x_logic,
+            strobe_i       => strobe_8x_logic_i,
+            data_o         => s_deserialized_threshold_data(triggerInput),
+            status_o       => s_status_to_ipbus(0)(5+(2*triggerInput) downto 4+(2*triggerInput))
+        );
+        
+        -- Add last bit from previous word to the new deserialized data.        
+        s_deserialized_threshold_data_l(triggerInput) <= s_deserialized_threshold_data(triggerInput) & s_threshold_previous_late_bit(triggerInput);
+        
+        -- Use a LUT to determine the leading/trailing edges of the trigger input
+        thresholdLUT : entity work.arrivalTimeLUT
+        port map (
+            clk_4x_logic_i      => clk_4x_logic,
+            strobe_4x_logic_i   => strobe_4x_logic_i,
+            deserialized_data_i => s_deserialized_threshold_data_l(triggerInput),
+            first_rising_edge_time_o => s_edge_rising_times(triggerInput), 
+            last_falling_edge_time_o => s_edge_falling_times(triggerInput), 
+            rising_edge_o       => s_edge_rising(triggerInput), 
+            falling_edge_o      => s_edge_falling(triggerInput),
+            multiple_edges_o    => open
+        );
+        
+        -- The leading edge may be a high-->low or a low-->high transition (
+        -- depending on polarity of input signal. ). For now assume that leading
+        -- edge is low-->high and connect trigger times and trigger output accordingly.
+        -- In the future have this selectable.
+        edge_rising_times_o(triggerInput) <= s_edge_rising_times(triggerInput);
+        edge_falling_times_o(triggerInput) <= s_edge_falling_times(triggerInput);
+        edge_rising_o(triggerInput) <= s_edge_rising(triggerInput);
+        edge_falling_o(triggerInput) <= s_edge_falling(triggerInput);
+        trigger_times_o(triggerInput) <= s_edge_rising_times(triggerInput);
+        trigger_o(triggerInput) <= s_edge_rising(triggerInput);
+            
+    
+        p_register_delayed_bits : process ( clk_4x_logic ) 
+        begin 
+            if rising_edge(clk_4x_logic) then
+                s_threshold_previous_late_bit(triggerInput) <= s_deserialized_threshold_data(triggerInput)(7);
+                --s_CFD_previous_late_bit(triggerInput) <= s_deserialized_CFD_data(triggerInput)(7);
+                -- Monitor output of serdes - just look at one per serdes
+                -- Don't care about latency so put a couple of registers in to aid
+                -- timing closure.
+                s_status_to_ipbus(0)(20+triggerInput) <= s_threshold_previous_late_bit(triggerInput);
+                --s_status_to_ipbus(0)(24+triggerInput) <= s_CFD_previous_late_bit(triggerInput);
+            end if ; 
+        end process;
+        
+        --! Instantiate counter for output triggers.
+        --! Input I is connected to address I+1
+        cmp_inputTriggerCounter : entity work.counterWithReset
+        generic map (
+            g_COUNTER_WIDTH => g_IPBUS_WIDTH)
+        port map (
+            clock_i  => clk_4x_logic,
+            reset_i  => s_counter_reset,
+            enable_i => s_edge_rising(triggerInput),
+            result_o => s_status_to_ipbus(triggerInput+1)
+        );
+    end generate trigger_input_loop;
+  --END FOR LOOP
+  
+  --trigger_debug_o( (g_NUM_INPUTS-1) downto 0) <= s_threshold_discr_input;
+  --trigger_debug_o( ((2*g_NUM_INPUTS)-1) downto g_NUM_INPUTS) <=  s_edge_rising;
+  
+END ARCHITECTURE rtl;
+
diff --git a/components/tlu/hdl/trigger/triggerInputs_newTLU_rtl_BKP.vhd b/components/tlu/hdl/trigger/triggerInputs_newTLU_rtl_BKP.vhd
new file mode 100644
index 00000000..106e7703
--- /dev/null
+++ b/components/tlu/hdl/trigger/triggerInputs_newTLU_rtl_BKP.vhd
@@ -0,0 +1,335 @@
+--=============================================================================
+--! @file triggerInputs_rtl.vhd
+--=============================================================================
+--
+-------------------------------------------------------------------------------
+-- --
+-- University of Bristol, High Energy Physics Group.
+-- --
+------------------------------------------------------------------------------- --
+-- VHDL Architecture fmc_mTLU_lib.triggerInputs.rtl
+--
+--------------------------------------------------------------------------------
+-- 
+-- Created using using Mentor Graphics HDL Designer(TM) 2010.3 (Build 21)
+--
+LIBRARY ieee;
+USE ieee.std_logic_1164.all;
+USE ieee.numeric_std.all;
+
+USE work.ipbus.all;
+use work.ipbus_reg_types.all;
+
+USE work.fmcTLU.all;
+
+
+library unisim ;
+use unisim.vcomponents.all;
+
+--! @brief Measures arrival time of trigger pulses using two deserializers
+--! clocked on 14x clock ( 640MHz) 
+--! Based on TDC code by Alvaro Dosil
+--!
+--! @author David Cussans , David.Cussans@bristol.ac.uk
+--!
+--!
+--! @date 15:43:57 11/08/12
+--!
+--! @version v0.1
+--!
+--! @details
+--! \li IPBus address 0 = control and status
+--!  \li bit0 = reset serdes
+--!  \li bit1 = reset counter
+--!  \li bit2 = calibrate IDELAYs
+--!  \li bit3 = not connected
+--!  \li bit4 = Thresh discr  IDelay(0) status prompt
+--!  \li bit5 = Thresh discr  IDelay(0) status delayed
+--!  \li bit6 = Thresh discr  IDelay(1) status prompt
+--!  \li bit7 = Thresh discr  IDelay(1) status delayed
+--!  \li bit8 = Thresh discr  IDelay(2) status prompt
+--!  \li bit9 = Thresh discr  IDelay(2) status delayed
+--!  \li bit10= Thresh discr  IDelay(3) status prompt
+--!  \li bit11= Thresh discr  IDelay(3) status delayed
+--!  \li bit12= CFD discr  IDelay(0) status prompt
+--!  \li bit13= CFD discr  IDelay(0) status delayed
+--!  \li bit14= CFD discr  IDelay(1) status prompt
+--!  \li bit15= CFD discr  IDelay(1) status delayed
+--!  \li bit16= CFD discr  IDelay(2) status prompt
+--!  \li bit17= CFD discr  IDelay(2) status delayed
+--!  \li bit18= CFD discr  IDelay(3) status prompt
+--!  \li bit19= CFD discr  IDelay(3) status delayed
+--!  \li bit20= Thresh deserialized data monitor(0)
+--!  \li bit21= Thresh deserialized data monitor(1)
+--!  \li bit22= Thresh deserialized data monitor(2)
+--!  \li bit23= Thresh deserialized data monitor(3)
+--!  \li bit24= CFD deserialized data monitor(0)
+--!  \li bit25= CFD deserialized data monitor(1)
+--!  \li bit26= CFD deserialized data monitor(2)
+--!  \li bit27= CFD deserialized data monitor(3)
+--!
+--! \li IPBus address 1 = edge rising(0) counter
+--! \li IPBus address 2 = edge rising(1) counter
+--! \li IPBus address 3 = edge rising(2) counter
+--! \li IPBus address 4 = edge rising(3) counter
+--!
+--!
+--! <b>Modified by: Alvaro Dosil , alvaro.dosil@usc.es </b>\n
+--! Author: 
+-------------------------------------------------------------------------------
+--! \n\n<b>Last changes:</b>\n
+-------------------------------------------------------------------------------
+--! @todo Implement a periodic calibration sequence 
+--
+
+ENTITY triggerInputs_newTLU IS
+   GENERIC( 
+      g_NUM_INPUTS  : natural  := 1;
+      g_IPBUS_WIDTH : positive := 32
+   );
+   PORT( 
+      --cfd_discr_p_i        : IN     std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);         --! Inputs from constant-fraction discriminators
+      --cfd_discr_n_i        : IN     std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);         --! Input from CFD
+      clk_4x_logic         : IN     std_logic;                                          --! Rising edge active. By default = 4*40MHz = 160MHz
+      strobe_4x_logic_i    : IN     std_logic;                                          --! Pulses high once every 4 cycles of clk_4x_logic
+      threshold_discr_p_i  : IN     std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);         --! inputs from threshold comparators
+      threshold_discr_n_i  : IN     std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);         --! inputs from threshold comparators
+      reset_i              : IN     std_logic;
+      trigger_times_o      : OUT    t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);       --! trigger arrival time ( w.r.t. logic_strobe)
+      trigger_o            : OUT    std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);         --!  Goes high on leading edge of trigger, in sync with clk_4x_logic_i
+      --trigger_debug_o      : OUT    std_logic_vector ( ((2*g_NUM_INPUTS)-1) DOWNTO 0);  --! Copy of input trigger level. High bits CFD, Low threshold
+      edge_rising_times_o  : OUT    t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);       --! edge arrival time ( w.r.t. logic_strobe)
+      edge_falling_times_o : OUT    t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);       --! edge arrival time ( w.r.t. logic_strobe)
+      edge_rising_o        : OUT    std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);         --! High when rising edge. Syncronous with clk_4x_logic_i
+      edge_falling_o       : OUT    std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);         --! High when falling edge
+      ipbus_clk_i          : IN     std_logic;
+      ipbus_reset_i        : IN     std_logic;
+      ipbus_i              : IN     ipb_wbus;                                           --! Signals from IPBus core to slave
+      ipbus_o              : OUT    ipb_rbus;                                           --! signals from slave to IPBus core
+      clk_16x_logic_i      : IN     std_logic;                                          --! 640MHz clock ( 16x 40MHz )
+      strobe_16x_logic_i   : IN     std_logic                                           --! Pulses one cycle every 4 of 16x clock.
+   );
+
+-- Declarations
+
+END triggerInputs_newTLU ;
+
+--
+ARCHITECTURE rtl OF triggerInputs_newTLU IS
+  
+  signal s_rst_iserdes : std_logic := '0'; --! Reset ISERDES and IDELAY
+  
+  signal s_threshold_discr_input , s_cfd_discr_input : std_logic_vector(g_NUM_INPUTS-1 downto 0);  --! inputs from comparator
+
+  type t_deserialized_trigger_data_array is array ( natural range <> ) of std_logic_vector(7 downto 0); --
+  signal s_deserialized_threshold_data, s_deserialized_threshold_data_d , s_deserialized_cfd_data, s_deserialized_cfd_data_d : t_deserialized_trigger_data_array(g_NUM_INPUTS-1 downto 0);
+
+  type t_deserialized_trigger_data_array_l is array ( natural range <> ) of std_logic_vector(8 downto 0); --
+  signal s_deserialized_threshold_data_l , s_deserialized_cfd_data_l : t_deserialized_trigger_data_array_l(g_NUM_INPUTS-1 downto 0);
+
+  --signal s_cfd_trigger_times              : t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);
+  
+  --signal s_CFD_rising_edge                : std_logic_vector(g_NUM_INPUTS-1 downto 0); 
+  --signal s_CFD_falling_edge               : std_logic_vector(g_NUM_INPUTS-1 downto 0); 
+  
+  signal s_threshold_previous_late_bit    : std_logic_vector(g_NUM_INPUTS-1 downto 0) := (others => '0');  -- last bit to arrive from previous 4
+  --signal s_CFD_previous_late_bit          : std_logic_vector(g_NUM_INPUTS-1 downto 0) := (others => '0');  -- last bit to arrive from previous 4
+  
+  signal s_ipbus_ack                      : std_logic := '0';  -- used to produce a delayed IPBus ack signal
+
+  signal s_edge_rising_times:   t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);  --! edge arrival time ( w.r.t. logic_strobe)
+  signal s_edge_falling_times:  t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);  --! edge arrival time ( w.r.t. logic_strobe)
+  signal s_edge_rising:         std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);    --! High when rising edge
+  signal s_edge_falling:        std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);    --! High when falling edge
+
+  constant c_N_CTRL : positive := 1;
+  constant c_N_STAT : positive := g_NUM_INPUTS+1 ;
+  signal s_status_to_ipbus , s_sync_status_to_ipbus: ipb_reg_v(c_N_STAT-1 downto 0);
+  signal s_control_from_ipbus , s_sync_control_from_ipbus: ipb_reg_v(c_N_CTRL-1 downto 0);
+--  signal s_reset_reg , s_status_reg: std_logic_vector(g_IPBUS_WIDTH-1 downto 0) := (others => '0');
+  signal s_counter_reset, s_calibrate_idelay: std_logic := '0';
+  
+BEGIN
+  -----------------------------------------------------------------------------
+  -- IPBus interface 
+  -----------------------------------------------------------------------------
+
+  -- Can't get ipbus_syncreg_v to meet timing. So use non-syncronized followed
+  -- by synchronizer.
+  ipbus_registers: entity work.ipbus_ctrlreg_v
+    generic map (
+      N_STAT =>  c_N_STAT )
+    port map(
+      clk=> ipbus_clk_i,
+      reset => ipbus_reset_i ,
+      ipbus_in =>  ipbus_i,
+      ipbus_out => ipbus_o,
+      d=>  s_sync_status_to_ipbus,
+      q=>  s_control_from_ipbus,
+      stb => open
+      );
+
+  -- sync data from I/O logic to IPBus
+  sync_registers: entity work.synchronizeRegisters
+    generic map (
+      g_NUM_REGISTERS => c_N_STAT )
+    port map (
+      clk_input_i => clk_4x_logic,
+      data_i      => s_status_to_ipbus,
+      data_o      => s_sync_status_to_ipbus,
+      clk_output_i => ipbus_clk_i);
+
+  -- sync data from I/O logic to IPBus
+  sync_ipbus: entity work.synchronizeRegisters
+    generic map (
+      g_NUM_REGISTERS => c_N_CTRL )
+    port map (
+      clk_input_i => ipbus_clk_i,
+      data_i      => s_control_from_ipbus,
+      data_o      => s_sync_control_from_ipbus,
+      clk_output_i => clk_4x_logic);
+
+  -- Map the control registers...
+  -- Register that controls IODELAY and ISERDES reset is at address 0
+  s_rst_iserdes <= reset_i or s_sync_control_from_ipbus(0)(0);
+  s_counter_reset <= s_sync_control_from_ipbus(0)(1);
+  s_calibrate_idelay <= s_sync_control_from_ipbus(0)(2);
+  
+  s_status_to_ipbus(0)(0) <= s_rst_iserdes;
+  s_status_to_ipbus(0)(1) <= s_counter_reset;
+  s_status_to_ipbus(0)(2) <= s_calibrate_idelay;
+  -- Connect up unused lines in status regiser to 0.
+  s_status_to_ipbus(0)(3) <= '0';
+  s_status_to_ipbus(0)(g_IPBUS_WIDTH-1 downto 28) <= (others => '0');
+
+  -----------------------------------------------------------------------------
+  -- Connect up trigger inputs to deserializers and a LUT to determine
+  -- arrival time
+  -----------------------------------------------------------------------------
+ 
+  --BEGIN FOR LOOP
+  trigger_input_loop: for triggerInput in 0 to (g_NUM_INPUTS-1) generate
+
+        thresholdInputBuffer: IBUFDS
+          generic map (
+            DIFF_TERM        => true,
+            IBUF_LOW_PWR     => false,
+            IOSTANDARD       => "LVDS_25")
+          port map (
+            O  => s_threshold_discr_input(triggerInput),
+            I  => threshold_discr_p_i(triggerInput),
+            IB => threshold_discr_n_i(triggerInput)
+            );
+    
+        thresholdDeserializer: entity work.dualSERDES_1to4
+          port map (
+            reset_i 			=> s_rst_iserdes,
+            --calibrate_i 		=> s_calibrate_idelay,
+            data_i         => s_threshold_discr_input(triggerInput),
+            data_i_pos     => threshold_discr_p_i(triggerInput),
+            data_i_neg     => threshold_discr_n_i(triggerInput),
+            fastClk_i      => clk_16x_logic_i,
+            fabricClk_i    => clk_4x_logic,
+            strobe_i       => strobe_16x_logic_i,
+            data_o         => s_deserialized_threshold_data(triggerInput),
+            status_o       => s_status_to_ipbus(0)(5+(2*triggerInput) downto 4+(2*triggerInput))
+            );
+              
+        s_deserialized_threshold_data_l(triggerInput) <= s_deserialized_threshold_data(triggerInput) & s_threshold_previous_late_bit(triggerInput);
+        
+        thresholdLUT : entity work.arrivalTimeLUT
+          port map (
+            clk_4x_logic_i      => clk_4x_logic,
+            strobe_4x_logic_i   => strobe_4x_logic_i,
+            deserialized_data_i => s_deserialized_threshold_data_l(triggerInput),
+            first_rising_edge_time_o => s_edge_rising_times(triggerInput), 
+            last_falling_edge_time_o => s_edge_falling_times(triggerInput), 
+            rising_edge_o       => s_edge_rising(triggerInput), 
+            falling_edge_o      => s_edge_falling(triggerInput),
+            multiple_edges_o    => open
+            );
+    
+        -- The leading edge may be a high-->low or a low-->high transition (
+        -- depending on polarity of input signal. ). For now assume that leading
+        -- edge is low-->high and connect trigger times and trigger output accordingly.
+        -- In the future have this selectable.
+        edge_rising_times_o(triggerInput) <= s_edge_rising_times(triggerInput);
+        edge_falling_times_o(triggerInput) <= s_edge_falling_times(triggerInput);
+        edge_rising_o(triggerInput) <= s_edge_rising(triggerInput);
+        edge_falling_o(triggerInput) <= s_edge_falling(triggerInput);
+        trigger_times_o(triggerInput) <= s_edge_rising_times(triggerInput);
+        trigger_o(triggerInput) <= s_edge_rising(triggerInput);
+        
+--REMOVE CFD        
+--        CFDInputBuffer: IBUFDS
+--          generic map (
+--            DIFF_TERM        => true,
+--            IBUF_LOW_PWR     => false,
+--            IOSTANDARD       => "LVDS_25")
+--          port map (
+--            O  => s_CFD_discr_input(triggerInput),
+--            I  => CFD_discr_p_i(triggerInput),
+--            IB => CFD_discr_n_i(triggerInput)
+--            );
+    
+--        CFDDeserializer: entity work.dualSERDES_1to4
+--          port map (
+--            reset_i => s_rst_iserdes,
+--            --calibrate_i => s_calibrate_idelay,
+--            data_i         => s_CFD_discr_input(triggerInput),
+--            fastClk_i      => clk_16x_logic_i,
+--            fabricClk_i    => clk_4x_logic,
+--            strobe_i       => strobe_16x_logic_i,
+--            data_o         => s_deserialized_CFD_data(triggerInput),
+--            status_o       => s_status_to_ipbus(0)(13+(2*triggerInput) downto 12+(2*triggerInput))
+--            );
+--        --s_deserialized_CFD_data(triggerInput) <= (others=>'0');
+          
+--        s_deserialized_CFD_data_l(triggerInput) <= s_deserialized_CFD_data(triggerInput) & s_CFD_previous_late_bit(triggerInput);
+--        CFDLUT : entity work.arrivalTimeLUT
+--          port map (
+--            clk_4x_logic_i      => clk_4x_logic,
+--            strobe_4x_logic_i   => strobe_4x_logic_i,
+--            deserialized_data_i => s_deserialized_CFD_data_l(triggerInput),
+--            first_rising_edge_time_o => s_cfd_trigger_times(triggerInput),
+--            last_falling_edge_time_o => open, 
+--            rising_edge_o       => s_CFD_rising_edge(triggerInput),
+--            falling_edge_o      => s_CFD_falling_edge(triggerInput),
+--            multiple_edges_o    => open
+--            );
+    
+        p_register_delayed_bits : process ( clk_4x_logic ) 
+        begin 
+          if rising_edge(clk_4x_logic) then
+            s_threshold_previous_late_bit(triggerInput) <= s_deserialized_threshold_data(triggerInput)(7);
+              
+            --s_CFD_previous_late_bit(triggerInput) <= s_deserialized_CFD_data(triggerInput)(7);
+    
+            -- Monitor output of serdes - just look at one per serdes
+            -- Don't care about latency so put a couple of registers in to aid
+            -- timing closure.
+            s_status_to_ipbus(0)(20+triggerInput) <= s_threshold_previous_late_bit(triggerInput);
+            --s_status_to_ipbus(0)(24+triggerInput) <= s_CFD_previous_late_bit(triggerInput);
+        
+          end if ; 
+        end process;
+    
+        --! Instantiate counter for output triggers.
+        --! Input I is connected to address I+1
+        cmp_inputTriggerCounter : entity work.counterWithReset
+          generic map (
+            g_COUNTER_WIDTH => g_IPBUS_WIDTH)
+        port map (
+          clock_i  => clk_4x_logic,
+          reset_i  => s_counter_reset,
+          enable_i => s_edge_rising(triggerInput),
+          result_o => s_status_to_ipbus(triggerInput+1));
+    
+  end generate trigger_input_loop;
+  --END FOR LOOP
+  
+  --trigger_debug_o( (g_NUM_INPUTS-1) downto 0) <= s_threshold_discr_input;
+  --trigger_debug_o( ((2*g_NUM_INPUTS)-1) downto g_NUM_INPUTS) <=  s_edge_rising;
+  
+END ARCHITECTURE rtl;
+
diff --git a/components/tlu/hdl/trigger/triggerInputs_newTLU_rtl_fastClock.vhd b/components/tlu/hdl/trigger/triggerInputs_newTLU_rtl_fastClock.vhd
new file mode 100644
index 00000000..9e3a01e1
--- /dev/null
+++ b/components/tlu/hdl/trigger/triggerInputs_newTLU_rtl_fastClock.vhd
@@ -0,0 +1,301 @@
+--=============================================================================
+--! @file triggerInputs_rtl.vhd
+--=============================================================================
+--
+-------------------------------------------------------------------------------
+-- --
+-- University of Bristol, High Energy Physics Group.
+-- --
+------------------------------------------------------------------------------- --
+-- VHDL Architecture fmc_mTLU_lib.triggerInputs.rtl
+--
+--------------------------------------------------------------------------------
+-- 
+-- Created using using Mentor Graphics HDL Designer(TM) 2010.3 (Build 21)
+--
+LIBRARY ieee;
+USE ieee.std_logic_1164.all;
+USE ieee.numeric_std.all;
+USE work.ipbus.all;
+USE work.ipbus_reg_types.all;
+USE work.fmcTLU.all;
+
+
+library unisim ;
+use unisim.vcomponents.all;
+
+--! @brief Measures arrival time of trigger pulses using two deserializers
+--! clocked on 14x clock ( 640MHz) 
+--! Based on TDC code by Alvaro Dosil
+--!
+--! @author David Cussans , David.Cussans@bristol.ac.uk
+--!
+--!
+--! @date 15:43:57 11/08/12
+--!
+--! @version v0.1
+--!
+--! @details
+--! \li IPBus address 0 = control and status
+--!  \li bit0 = reset serdes
+--!  \li bit1 = reset counter
+--!  \li bit2 = calibrate IDELAYs
+--!  \li bit3 = not connected
+--!  \li bit4 = Thresh discr  IDelay(0) status prompt
+--!  \li bit5 = Thresh discr  IDelay(0) status delayed
+--!  \li bit6 = Thresh discr  IDelay(1) status prompt
+--!  \li bit7 = Thresh discr  IDelay(1) status delayed
+--!  \li bit8 = Thresh discr  IDelay(2) status prompt
+--!  \li bit9 = Thresh discr  IDelay(2) status delayed
+--!  \li bit10= Thresh discr  IDelay(3) status prompt
+--!  \li bit11= Thresh discr  IDelay(3) status delayed
+--!  \li bit12= CFD discr  IDelay(0) status prompt
+--!  \li bit13= CFD discr  IDelay(0) status delayed
+--!  \li bit14= CFD discr  IDelay(1) status prompt
+--!  \li bit15= CFD discr  IDelay(1) status delayed
+--!  \li bit16= CFD discr  IDelay(2) status prompt
+--!  \li bit17= CFD discr  IDelay(2) status delayed
+--!  \li bit18= CFD discr  IDelay(3) status prompt
+--!  \li bit19= CFD discr  IDelay(3) status delayed
+--!  \li bit20= Thresh deserialized data monitor(0)
+--!  \li bit21= Thresh deserialized data monitor(1)
+--!  \li bit22= Thresh deserialized data monitor(2)
+--!  \li bit23= Thresh deserialized data monitor(3)
+--!  \li bit24= CFD deserialized data monitor(0)
+--!  \li bit25= CFD deserialized data monitor(1)
+--!  \li bit26= CFD deserialized data monitor(2)
+--!  \li bit27= CFD deserialized data monitor(3)
+--!
+--! \li IPBus address 1 = edge rising(0) counter
+--! \li IPBus address 2 = edge rising(1) counter
+--! \li IPBus address 3 = edge rising(2) counter
+--! \li IPBus address 4 = edge rising(3) counter
+--!
+--!
+--! <b>Modified by: Alvaro Dosil , alvaro.dosil@usc.es </b>\n
+--! Author: 
+-------------------------------------------------------------------------------
+--! \n\n<b>Last changes:</b>\n
+-------------------------------------------------------------------------------
+--! @todo Implement a periodic calibration sequence 
+--
+
+ENTITY triggerInputs_newTLU IS
+   GENERIC( 
+      g_NUM_INPUTS  : natural  := 1;--1
+      g_IPBUS_WIDTH : positive := 32
+   );
+   PORT( 
+      --cfd_discr_p_i        : IN     std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);         --! Inputs from constant-fraction discriminators
+      --cfd_discr_n_i        : IN     std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);         --! Input from CFD
+      clk_4x_logic         : IN     std_logic;                                          --! Rising edge active. By default = 4*40MHz = 160MHz
+      clk_200_i : IN     std_logic;
+      strobe_4x_logic_i    : IN     std_logic;                                          --! Pulses high once every 4 cycles of clk_4x_logic
+      threshold_discr_p_i  : IN     std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);         --! inputs from threshold comparators
+      threshold_discr_n_i  : IN     std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);         --! inputs from threshold comparators
+      reset_i              : IN     std_logic;
+      trigger_times_o      : OUT    t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);       --! trigger arrival time ( w.r.t. logic_strobe)
+      trigger_o            : OUT    std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);         --!  Goes high on leading edge of trigger, in sync with clk_4x_logic_i
+      --trigger_debug_o      : OUT    std_logic_vector ( ((2*g_NUM_INPUTS)-1) DOWNTO 0);  --! Copy of input trigger level. High bits CFD, Low threshold
+      edge_rising_times_o  : OUT    t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);       --! edge arrival time ( w.r.t. logic_strobe)
+      edge_falling_times_o : OUT    t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);       --! edge arrival time ( w.r.t. logic_strobe)
+      edge_rising_o        : OUT    std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);         --! High when rising edge. Syncronous with clk_4x_logic_i
+      edge_falling_o       : OUT    std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);         --! High when falling edge
+      ipbus_clk_i          : IN     std_logic;
+      ipbus_reset_i        : IN     std_logic;
+      ipbus_i              : IN     ipb_wbus;                                           --! Signals from IPBus core to slave
+      ipbus_o              : OUT    ipb_rbus;                                           --! signals from slave to IPBus core
+      clk_8x_logic_i      : IN     std_logic;                                          --! 320MHz clock ( 8x 40MHz )
+      strobe_8x_logic_i   : IN     std_logic                                           --! Pulses one cycle every 4 of 8x clock.
+   );
+
+-- Declarations
+END triggerInputs_newTLU ;
+
+--
+ARCHITECTURE rtl OF triggerInputs_newTLU IS
+  
+    signal s_rst_iserdes : std_logic := '0'; --! Reset ISERDES and IDELAY
+    signal s_threshold_discr_input , s_thr_in_p, s_thr_in_n : std_logic_vector(g_NUM_INPUTS-1 downto 0);  --! inputs from comparator
+    type t_deserialized_trigger_data_array is array ( natural range <> ) of std_logic_vector(7 downto 0); --
+    signal s_deserialized_threshold_data, s_deserialized_threshold_data_d , s_deserialized_cfd_data, s_deserialized_cfd_data_d : t_deserialized_trigger_data_array(g_NUM_INPUTS-1 downto 0);
+    type t_deserialized_trigger_data_array_l is array ( natural range <> ) of std_logic_vector(8 downto 0); --
+    signal s_deserialized_threshold_data_l , s_deserialized_cfd_data_l : t_deserialized_trigger_data_array_l(g_NUM_INPUTS-1 downto 0);
+    --signal s_cfd_trigger_times              : t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);
+    --signal s_CFD_rising_edge                : std_logic_vector(g_NUM_INPUTS-1 downto 0); 
+    --signal s_CFD_falling_edge               : std_logic_vector(g_NUM_INPUTS-1 downto 0); 
+    signal s_threshold_previous_late_bit    : std_logic_vector(g_NUM_INPUTS-1 downto 0) := (others => '0');  -- last bit to arrive from previous 4
+    --signal s_CFD_previous_late_bit          : std_logic_vector(g_NUM_INPUTS-1 downto 0) := (others => '0');  -- last bit to arrive from previous 4
+    signal s_ipbus_ack                      : std_logic := '0';  -- used to produce a delayed IPBus ack signal
+    signal s_edge_rising_times:   t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);  --! edge arrival time ( w.r.t. logic_strobe)
+    signal s_edge_falling_times:  t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);  --! edge arrival time ( w.r.t. logic_strobe)
+    signal s_edge_rising:         std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);    --! High when rising edge
+    signal s_edge_falling:        std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);    --! High when falling edge
+    constant c_N_CTRL : positive := 1;
+    constant c_N_STAT : positive := g_NUM_INPUTS+1 ;
+    signal s_status_to_ipbus , s_sync_status_to_ipbus: ipb_reg_v(c_N_STAT-1 downto 0);
+    signal s_control_from_ipbus , s_sync_control_from_ipbus: ipb_reg_v(c_N_CTRL-1 downto 0);
+    --  signal s_reset_reg , s_status_reg: std_logic_vector(g_IPBUS_WIDTH-1 downto 0) := (others => '0');
+    signal s_counter_reset, s_calibrate_idelay: std_logic := '0';
+  
+BEGIN
+    -----------------------------------------------------------------------------
+    -- IPBus interface 
+    -----------------------------------------------------------------------------
+
+    -- Can't get ipbus_syncreg_v to meet timing. So use non-syncronized followed
+    -- by synchronizer.
+    ipbus_registers: entity work.ipbus_ctrlreg_v
+    generic map (
+        N_STAT =>  c_N_STAT )
+    port map(
+        clk=> ipbus_clk_i,
+        reset => ipbus_reset_i ,
+        ipbus_in =>  ipbus_i,
+        ipbus_out => ipbus_o,
+        d=>  s_sync_status_to_ipbus,
+        q=>  s_control_from_ipbus,
+        stb => open
+        );
+
+    -- sync data from I/O logic to IPBus
+    sync_registers: entity work.synchronizeRegisters
+    generic map (
+        g_NUM_REGISTERS => c_N_STAT )
+    port map (
+        clk_input_i => clk_4x_logic,
+        data_i      => s_status_to_ipbus,
+        data_o      => s_sync_status_to_ipbus,
+        clk_output_i => ipbus_clk_i);
+
+    -- sync data from I/O logic to IPBus
+    sync_ipbus: entity work.synchronizeRegisters
+    generic map (
+        g_NUM_REGISTERS => c_N_CTRL )
+    port map (
+        clk_input_i => ipbus_clk_i,
+        data_i      => s_control_from_ipbus,
+        data_o      => s_sync_control_from_ipbus,
+        clk_output_i => clk_4x_logic);
+
+    -- Map the control registers...
+    -- Register that controls IODELAY and ISERDES reset is at address 0
+    s_rst_iserdes <= reset_i or s_sync_control_from_ipbus(0)(0);
+    s_counter_reset <= s_sync_control_from_ipbus(0)(1);
+    s_calibrate_idelay <= s_sync_control_from_ipbus(0)(2);
+  
+    s_status_to_ipbus(0)(0) <= s_rst_iserdes;
+    s_status_to_ipbus(0)(1) <= s_counter_reset;
+    s_status_to_ipbus(0)(2) <= s_calibrate_idelay;
+    -- Connect up unused lines in status regiser to 0.
+    s_status_to_ipbus(0)(3) <= '0';
+    s_status_to_ipbus(0)(g_IPBUS_WIDTH-1 downto 28) <= (others => '0');
+
+    -----------------------------------------------------------------------------
+    -- Connect up trigger inputs to deserializers and a LUT to determine
+    -- arrival time
+    -----------------------------------------------------------------------------
+    idelaytriggers0: idelayctrl port map(
+          refclk => clk_200_i,
+          rst => reset_i
+    );
+ 
+    --BEGIN FOR LOOP
+    trigger_input_loop: for triggerInput in 0 to (g_NUM_INPUTS-1) generate
+
+--        thresholdInputBuffer: IBUFDS
+--          generic map (
+--            DIFF_TERM        => true,
+--            IBUF_LOW_PWR     => false,
+--            IOSTANDARD       => "LVDS_25")
+--          port map (
+--            O  => s_threshold_discr_input(triggerInput),
+--            I  => threshold_discr_p_i(triggerInput),
+--            IB => threshold_discr_n_i(triggerInput)
+--            );
+    
+        IBUFDS_DIFF_OUT_inst : IBUFDS_DIFF_OUT
+        generic map (
+            IBUF_LOW_PWR => false,
+            IOSTANDARD       => "LVDS_25"
+        )
+        port map (
+            O => s_thr_in_p(triggerInput),
+            OB => s_thr_in_n(triggerInput),
+            I => threshold_discr_p_i(triggerInput),
+            IB => threshold_discr_n_i(triggerInput)
+        );
+            
+        thresholdDeserializer: entity work.dualSERDES_1to4
+        port map (
+            reset_i 			=> s_rst_iserdes,
+            --calibrate_i 		=> s_calibrate_idelay,
+            --data_i         => s_threshold_discr_input(triggerInput),
+            data_i         => '0',
+            data_i_pos     => s_thr_in_p(triggerInput),
+            data_i_neg     => s_thr_in_n(triggerInput),
+            fastClk_i      => clk_8x_logic_i,
+            fabricClk_i    => clk_4x_logic,
+            strobe_i       => strobe_8x_logic_i,
+            data_o         => s_deserialized_threshold_data(triggerInput),
+            status_o       => s_status_to_ipbus(0)(5+(2*triggerInput) downto 4+(2*triggerInput))
+        );
+                  
+        s_deserialized_threshold_data_l(triggerInput) <= s_deserialized_threshold_data(triggerInput) & s_threshold_previous_late_bit(triggerInput);
+            
+        thresholdLUT : entity work.arrivalTimeLUT
+        port map (
+            clk_4x_logic_i      => clk_4x_logic,
+            strobe_4x_logic_i   => strobe_4x_logic_i,
+            deserialized_data_i => s_deserialized_threshold_data_l(triggerInput),
+            first_rising_edge_time_o => s_edge_rising_times(triggerInput), 
+            last_falling_edge_time_o => s_edge_falling_times(triggerInput), 
+            rising_edge_o       => s_edge_rising(triggerInput), 
+            falling_edge_o      => s_edge_falling(triggerInput),
+            multiple_edges_o    => open
+        );
+        
+        -- The leading edge may be a high-->low or a low-->high transition (
+        -- depending on polarity of input signal. ). For now assume that leading
+        -- edge is low-->high and connect trigger times and trigger output accordingly.
+        -- In the future have this selectable.
+        edge_rising_times_o(triggerInput) <= s_edge_rising_times(triggerInput);
+        edge_falling_times_o(triggerInput) <= s_edge_falling_times(triggerInput);
+        edge_rising_o(triggerInput) <= s_edge_rising(triggerInput);
+        edge_falling_o(triggerInput) <= s_edge_falling(triggerInput);
+        trigger_times_o(triggerInput) <= s_edge_rising_times(triggerInput);
+        trigger_o(triggerInput) <= s_edge_rising(triggerInput);
+            
+    
+        p_register_delayed_bits : process ( clk_4x_logic ) 
+        begin 
+            if rising_edge(clk_4x_logic) then
+                s_threshold_previous_late_bit(triggerInput) <= s_deserialized_threshold_data(triggerInput)(7);
+                --s_CFD_previous_late_bit(triggerInput) <= s_deserialized_CFD_data(triggerInput)(7);
+                -- Monitor output of serdes - just look at one per serdes
+                -- Don't care about latency so put a couple of registers in to aid
+                -- timing closure.
+                s_status_to_ipbus(0)(20+triggerInput) <= s_threshold_previous_late_bit(triggerInput);
+                --s_status_to_ipbus(0)(24+triggerInput) <= s_CFD_previous_late_bit(triggerInput);
+            end if ; 
+        end process;
+        
+        --! Instantiate counter for output triggers.
+        --! Input I is connected to address I+1
+        cmp_inputTriggerCounter : entity work.counterWithReset
+        generic map (
+            g_COUNTER_WIDTH => g_IPBUS_WIDTH)
+        port map (
+            clock_i  => clk_4x_logic,
+            reset_i  => s_counter_reset,
+            enable_i => s_edge_rising(triggerInput),
+            result_o => s_status_to_ipbus(triggerInput+1)
+        );
+    end generate trigger_input_loop;
+  --END FOR LOOP
+  
+  --trigger_debug_o( (g_NUM_INPUTS-1) downto 0) <= s_threshold_discr_input;
+  --trigger_debug_o( ((2*g_NUM_INPUTS)-1) downto g_NUM_INPUTS) <=  s_edge_rising;
+  
+END ARCHITECTURE rtl;
+
diff --git a/components/tlu/hdl/trigger/triggerInputs_rtl.vhd b/components/tlu/hdl/trigger/triggerInputs_rtl.vhd
new file mode 100644
index 00000000..3d83e3d6
--- /dev/null
+++ b/components/tlu/hdl/trigger/triggerInputs_rtl.vhd
@@ -0,0 +1,338 @@
+--=============================================================================
+--! @file triggerInputs_rtl.vhd
+--=============================================================================
+--
+-------------------------------------------------------------------------------
+-- --
+-- University of Bristol, High Energy Physics Group.
+-- --
+------------------------------------------------------------------------------- --
+-- VHDL Architecture fmc_mTLU_lib.triggerInputs.rtl
+--
+--------------------------------------------------------------------------------
+-- 
+-- Created using using Mentor Graphics HDL Designer(TM) 2010.3 (Build 21)
+--
+LIBRARY ieee;
+USE ieee.std_logic_1164.all;
+USE ieee.numeric_std.all;
+
+USE work.ipbus.all;
+use work.ipbus_reg_types.all;
+
+USE work.fmcTLU.all;
+
+
+library unisim ;
+use unisim.vcomponents.all;
+
+--! @brief Measures arrival time of trigger pulses using two deserializers
+--! clocked on 14x clock ( 640MHz) 
+--! Based on TDC code by Alvaro Dosil
+--!
+--! @author David Cussans , David.Cussans@bristol.ac.uk
+--!
+--!
+--! @date 15:43:57 11/08/12
+--!
+--! @version v0.1
+--!
+--! @details
+--! \li IPBus address 0 = control and status
+--!  \li bit0 = reset serdes
+--!  \li bit1 = reset counter
+--!  \li bit2 = calibrate IDELAYs
+--!  \li bit3 = not connected
+--!  \li bit4 = Thresh discr  IDelay(0) status prompt
+--!  \li bit5 = Thresh discr  IDelay(0) status delayed
+--!  \li bit6 = Thresh discr  IDelay(1) status prompt
+--!  \li bit7 = Thresh discr  IDelay(1) status delayed
+--!  \li bit8 = Thresh discr  IDelay(2) status prompt
+--!  \li bit9 = Thresh discr  IDelay(2) status delayed
+--!  \li bit10= Thresh discr  IDelay(3) status prompt
+--!  \li bit11= Thresh discr  IDelay(3) status delayed
+--!  \li bit12= CFD discr  IDelay(0) status prompt
+--!  \li bit13= CFD discr  IDelay(0) status delayed
+--!  \li bit14= CFD discr  IDelay(1) status prompt
+--!  \li bit15= CFD discr  IDelay(1) status delayed
+--!  \li bit16= CFD discr  IDelay(2) status prompt
+--!  \li bit17= CFD discr  IDelay(2) status delayed
+--!  \li bit18= CFD discr  IDelay(3) status prompt
+--!  \li bit19= CFD discr  IDelay(3) status delayed
+--!  \li bit20= Thresh deserialized data monitor(0)
+--!  \li bit21= Thresh deserialized data monitor(1)
+--!  \li bit22= Thresh deserialized data monitor(2)
+--!  \li bit23= Thresh deserialized data monitor(3)
+--!  \li bit24= CFD deserialized data monitor(0)
+--!  \li bit25= CFD deserialized data monitor(1)
+--!  \li bit26= CFD deserialized data monitor(2)
+--!  \li bit27= CFD deserialized data monitor(3)
+--!
+--! \li IPBus address 1 = edge rising(0) counter
+--! \li IPBus address 2 = edge rising(1) counter
+--! \li IPBus address 3 = edge rising(2) counter
+--! \li IPBus address 4 = edge rising(3) counter
+--!
+--!
+--! <b>Modified by: Alvaro Dosil , alvaro.dosil@usc.es </b>\n
+--! Author: 
+-------------------------------------------------------------------------------
+--! \n\n<b>Last changes:</b>\n
+-------------------------------------------------------------------------------
+--! @todo Implement a periodic calibration sequence 
+--
+
+ENTITY triggerInputs IS
+   GENERIC( 
+      g_NUM_INPUTS  : natural  := 1;
+      g_IPBUS_WIDTH : positive := 32
+   );
+   PORT( 
+      cfd_discr_p_i        : IN     std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);         --! Inputs from constant-fraction discriminators
+      cfd_discr_n_i        : IN     std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);         --! Input from CFD
+      clk_4x_logic         : IN     std_logic;                                          --! Rising edge active. By default = 4*40MHz = 160MHz
+      strobe_4x_logic_i    : IN     std_logic;                                          --! Pulses high once every 4 cycles of clk_4x_logic
+      threshold_discr_p_i  : IN     std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);         --! inputs from threshold comparators
+      threshold_discr_n_i  : IN     std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);         --! inputs from threshold comparators
+      reset_i              : IN     std_logic;
+      trigger_times_o      : OUT    t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);       --! trigger arrival time ( w.r.t. logic_strobe)
+      trigger_o            : OUT    std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);         --!  Goes high on leading edge of trigger, in sync with clk_4x_logic_i
+      trigger_debug_o      : OUT    std_logic_vector ( ((2*g_NUM_INPUTS)-1) DOWNTO 0);  --! Copy of input trigger level. High bits CFD, Low threshold
+      edge_rising_times_o  : OUT    t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);       --! edge arrival time ( w.r.t. logic_strobe)
+      edge_falling_times_o : OUT    t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);       --! edge arrival time ( w.r.t. logic_strobe)
+      edge_rising_o        : OUT    std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);         --! High when rising edge. Syncronous with clk_4x_logic_i
+      edge_falling_o       : OUT    std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);         --! High when falling edge
+      ipbus_clk_i          : IN     std_logic;
+      ipbus_reset_i        : IN     std_logic;
+      ipbus_i              : IN     ipb_wbus;                                           --! Signals from IPBus core to slave
+      ipbus_o              : OUT    ipb_rbus;                                           --! signals from slave to IPBus core
+      clk_16x_logic_i      : IN     std_logic;                                          --! 640MHz clock ( 16x 40MHz )
+      strobe_16x_logic_i   : IN     std_logic                                           --! Pulses one cycle every 4 of 16x clock.
+   );
+
+-- Declarations
+
+END triggerInputs ;
+
+--
+ARCHITECTURE rtl OF triggerInputs IS
+  
+  signal s_rst_iserdes : std_logic := '0'; --! Reset ISERDES and IDELAY
+  
+  signal s_threshold_discr_input , s_cfd_discr_input : std_logic_vector(g_NUM_INPUTS-1 downto 0);  --! inputs from comparator
+
+  type t_deserialized_trigger_data_array is array ( natural range <> ) of std_logic_vector(7 downto 0); --
+  signal s_deserialized_threshold_data, s_deserialized_threshold_data_d , s_deserialized_cfd_data, s_deserialized_cfd_data_d : t_deserialized_trigger_data_array(g_NUM_INPUTS-1 downto 0);
+
+  type t_deserialized_trigger_data_array_l is array ( natural range <> ) of std_logic_vector(8 downto 0); --
+  signal s_deserialized_threshold_data_l , s_deserialized_cfd_data_l : t_deserialized_trigger_data_array_l(g_NUM_INPUTS-1 downto 0);
+
+  signal s_cfd_trigger_times              : t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);
+  
+  signal s_CFD_rising_edge                : std_logic_vector(g_NUM_INPUTS-1 downto 0); 
+  signal s_CFD_falling_edge               : std_logic_vector(g_NUM_INPUTS-1 downto 0); 
+  
+  signal s_threshold_previous_late_bit    : std_logic_vector(g_NUM_INPUTS-1 downto 0) := (others => '0');  -- last bit to arrive from previous 4
+  signal s_CFD_previous_late_bit          : std_logic_vector(g_NUM_INPUTS-1 downto 0) := (others => '0');  -- last bit to arrive from previous 4
+  
+  signal s_ipbus_ack                      : std_logic := '0';  -- used to produce a delayed IPBus ack signal
+
+  signal s_edge_rising_times:   t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);  --! edge arrival time ( w.r.t. logic_strobe)
+  signal s_edge_falling_times:  t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);  --! edge arrival time ( w.r.t. logic_strobe)
+  signal s_edge_rising:         std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);    --! High when rising edge
+  signal s_edge_falling:        std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);    --! High when falling edge
+
+  constant c_N_CTRL : positive := 1;
+  constant c_N_STAT : positive := g_NUM_INPUTS+1 ;
+  signal s_status_to_ipbus , s_sync_status_to_ipbus: ipb_reg_v(c_N_STAT-1 downto 0);
+  signal s_control_from_ipbus , s_sync_control_from_ipbus: ipb_reg_v(c_N_CTRL-1 downto 0);
+--  signal s_reset_reg , s_status_reg: std_logic_vector(g_IPBUS_WIDTH-1 downto 0) := (others => '0');
+  signal s_counter_reset, s_calibrate_idelay: std_logic := '0';
+  
+BEGIN
+  -----------------------------------------------------------------------------
+  -- IPBus interface 
+  -----------------------------------------------------------------------------
+
+  -- Can't get ipbus_syncreg_v to meet timing. So use non-syncronized followed
+  -- by synchronizer.
+  ipbus_registers: entity work.ipbus_ctrlreg_v
+    generic map (
+      N_STAT =>  c_N_STAT )
+    port map(
+      clk=> ipbus_clk_i,
+      reset => ipbus_reset_i ,
+      ipbus_in =>  ipbus_i,
+      ipbus_out => ipbus_o,
+      d=>  s_sync_status_to_ipbus,
+      q=>  s_control_from_ipbus,
+      stb => open
+      );
+
+  -- sync data from I/O logic to IPBus
+  sync_registers: entity work.synchronizeRegisters
+    generic map (
+      g_NUM_REGISTERS => c_N_STAT )
+    port map (
+      clk_input_i => clk_4x_logic,
+      data_i      => s_status_to_ipbus,
+      data_o      => s_sync_status_to_ipbus,
+      clk_output_i => ipbus_clk_i);
+
+  -- sync data from I/O logic to IPBus
+  sync_ipbus: entity work.synchronizeRegisters
+    generic map (
+      g_NUM_REGISTERS => c_N_CTRL )
+    port map (
+      clk_input_i => ipbus_clk_i,
+      data_i      => s_control_from_ipbus,
+      data_o      => s_sync_control_from_ipbus,
+      clk_output_i => clk_4x_logic);
+
+  -- Map the control registers...
+  -- Register that controls IODELAY and ISERDES reset is at address 0
+  s_rst_iserdes <= reset_i or s_sync_control_from_ipbus(0)(0);
+  s_counter_reset <= s_sync_control_from_ipbus(0)(1);
+  s_calibrate_idelay <= s_sync_control_from_ipbus(0)(2);
+  
+  s_status_to_ipbus(0)(0) <= s_rst_iserdes;
+  s_status_to_ipbus(0)(1) <= s_counter_reset;
+  s_status_to_ipbus(0)(2) <= s_calibrate_idelay;
+  -- Connect up unused lines in status regiser to 0.
+  s_status_to_ipbus(0)(3) <= '0';
+  s_status_to_ipbus(0)(g_IPBUS_WIDTH-1 downto 28) <= (others => '0');
+
+  -----------------------------------------------------------------------------
+  -- Connect up trigger inputs to deserializers and a LUT to determine
+  -- arrival time
+  -----------------------------------------------------------------------------
+ 
+  --BEGIN FOR LOOP
+  trigger_input_loop: for triggerInput in 0 to (g_NUM_INPUTS-1) generate
+
+        thresholdInputBuffer: IBUFDS
+          generic map (
+            DIFF_TERM        => true,
+            IBUF_LOW_PWR     => false,
+            IOSTANDARD       => "LVDS_25")
+          port map (
+            O  => s_threshold_discr_input(triggerInput),
+            I  => threshold_discr_p_i(triggerInput),
+            IB => threshold_discr_n_i(triggerInput)
+            );
+    
+        thresholdDeserializer: entity work.dualSERDES_1to4
+          port map (
+            reset_i 			=> s_rst_iserdes,
+            --calibrate_i 		=> s_calibrate_idelay,
+            data_i         => s_threshold_discr_input(triggerInput),
+            fastClk_i      => clk_16x_logic_i,
+            fabricClk_i    => clk_4x_logic,
+            strobe_i       => strobe_16x_logic_i,
+            data_o         => s_deserialized_threshold_data(triggerInput),
+            status_o       => s_status_to_ipbus(0)(5+(2*triggerInput) downto 4+(2*triggerInput))
+            );
+              
+          --s_deserialized_threshold_data_l(triggerInput) <= s_deserialized_threshold_data(triggerInput)(3 downto 0) & s_deserialized_threshold_data_d(triggerInput)(7 downto 3);
+        s_deserialized_threshold_data_l(triggerInput) <= s_deserialized_threshold_data(triggerInput) & s_threshold_previous_late_bit(triggerInput);
+        thresholdLUT : entity work.arrivalTimeLUT
+          port map (
+            clk_4x_logic_i      => clk_4x_logic,
+            strobe_4x_logic_i   => strobe_4x_logic_i,
+            deserialized_data_i => s_deserialized_threshold_data_l(triggerInput),
+            first_rising_edge_time_o => s_edge_rising_times(triggerInput), 
+            last_falling_edge_time_o => s_edge_falling_times(triggerInput), 
+            rising_edge_o       => s_edge_rising(triggerInput), 
+            falling_edge_o      => s_edge_falling(triggerInput),
+            multiple_edges_o    => open
+            );
+    
+        -- The leading edge may be a high-->low or a low-->high transition (
+        -- depending on polarity of input signal. ). For now assume that leading
+        -- edge is low-->high and connect trigger times and trigger output accordingly.
+        -- In the future have this selectable.
+        edge_rising_times_o(triggerInput) <= s_edge_rising_times(triggerInput);
+        edge_falling_times_o(triggerInput) <= s_edge_falling_times(triggerInput);
+        edge_rising_o(triggerInput) <= s_edge_rising(triggerInput);
+        edge_falling_o(triggerInput) <= s_edge_falling(triggerInput);
+        trigger_times_o(triggerInput) <= s_edge_rising_times(triggerInput);
+        trigger_o(triggerInput) <= s_edge_rising(triggerInput);
+        
+        
+        CFDInputBuffer: IBUFDS
+          generic map (
+            DIFF_TERM        => true,
+            IBUF_LOW_PWR     => false,
+            IOSTANDARD       => "LVDS_25")
+          port map (
+            O  => s_CFD_discr_input(triggerInput),
+            I  => CFD_discr_p_i(triggerInput),
+            IB => CFD_discr_n_i(triggerInput)
+            );
+    
+        CFDDeserializer: entity work.dualSERDES_1to4
+          port map (
+            reset_i => s_rst_iserdes,
+            --calibrate_i => s_calibrate_idelay,
+            data_i         => s_CFD_discr_input(triggerInput),
+            fastClk_i      => clk_16x_logic_i,
+            fabricClk_i    => clk_4x_logic,
+            strobe_i       => strobe_16x_logic_i,
+            data_o         => s_deserialized_CFD_data(triggerInput),
+            status_o       => s_status_to_ipbus(0)(13+(2*triggerInput) downto 12+(2*triggerInput))
+            );
+        --s_deserialized_CFD_data(triggerInput) <= (others=>'0');
+          
+        s_deserialized_CFD_data_l(triggerInput) <= s_deserialized_CFD_data(triggerInput) & s_CFD_previous_late_bit(triggerInput);
+        CFDLUT : entity work.arrivalTimeLUT
+          port map (
+            clk_4x_logic_i      => clk_4x_logic,
+            strobe_4x_logic_i   => strobe_4x_logic_i,
+            deserialized_data_i => s_deserialized_CFD_data_l(triggerInput),
+            first_rising_edge_time_o => s_cfd_trigger_times(triggerInput),
+            last_falling_edge_time_o => open, 
+            rising_edge_o       => s_CFD_rising_edge(triggerInput),
+            falling_edge_o      => s_CFD_falling_edge(triggerInput),
+            multiple_edges_o    => open
+            );
+    
+        p_register_delayed_bits : process ( clk_4x_logic ) 
+        begin 
+          if rising_edge(clk_4x_logic) then
+            s_threshold_previous_late_bit(triggerInput) <= s_deserialized_threshold_data(triggerInput)(7);
+              --s_deserialized_threshold_data_d(triggerInput) <= s_deserialized_threshold_data(triggerInput);
+            s_CFD_previous_late_bit(triggerInput) <= s_deserialized_CFD_data(triggerInput)(7);
+    
+            -- Monitor output of serdes - just look at one per serdes
+            -- Don't care about latency so put a couple of registers in to aid
+            -- timing closure.
+            s_status_to_ipbus(0)(20+triggerInput) <= s_threshold_previous_late_bit(triggerInput);
+            s_status_to_ipbus(0)(24+triggerInput) <= s_CFD_previous_late_bit(triggerInput);
+        
+          end if ; 
+        end process;
+    
+        --! Instantiate counter for output triggers.
+        --! Input I is connected to address I+1
+        cmp_inputTriggerCounter : entity work.counterWithReset
+          generic map (
+            g_COUNTER_WIDTH => g_IPBUS_WIDTH)
+        port map (
+          clock_i  => clk_4x_logic,
+          reset_i  => s_counter_reset,
+          enable_i => s_edge_rising(triggerInput),
+          result_o => s_status_to_ipbus(triggerInput+1));
+    
+  end generate trigger_input_loop;
+  --END FOR LOOP
+  
+  --trigger_debug_o( ((2*g_NUM_INPUTS)-1) downto g_NUM_INPUTS) <= s_CFD_discr_input;
+  --trigger_debug_o( ((2*g_NUM_INPUTS)-1) downto g_NUM_INPUTS) <= s_edge_rising;
+  --! Monitor output of deserializer
+  -- trigger_debug_o( ((2*g_NUM_INPUTS)-1) downto g_NUM_INPUTS) <=  s_status_to_ipbus(0)(23 downto 20);
+  --trigger_debug_o( (g_NUM_INPUTS-1) downto 0) <=  s_edge_rising;
+  trigger_debug_o( (g_NUM_INPUTS-1) downto 0) <= s_threshold_discr_input;
+  trigger_debug_o( ((2*g_NUM_INPUTS)-1) downto g_NUM_INPUTS) <=  s_edge_rising;
+  
+END ARCHITECTURE rtl;
+
diff --git a/components/tlu/hdl/trigger/triggerLogic_rtl.vhd b/components/tlu/hdl/trigger/triggerLogic_rtl.vhd
new file mode 100644
index 00000000..2ff175d3
--- /dev/null
+++ b/components/tlu/hdl/trigger/triggerLogic_rtl.vhd
@@ -0,0 +1,355 @@
+--=============================================================================
+--! @file triggerLogic_rtl.vhd
+--=============================================================================
+--
+-------------------------------------------------------------------------------
+-- --
+-- University of Bristol, High Energy Physics Group.
+-- --
+------------------------------------------------------------------------------- --
+-- VHDL Architecture fmc_mTLU_lib.triggerLogic.rtl
+--
+-- 
+-- Created using using Mentor Graphics HDL Designer(TM) 2010.3 (Build 21)
+--
+LIBRARY ieee;
+USE ieee.std_logic_1164.all;
+USE ieee.numeric_std.all;
+
+USE work.ipbus.all;
+use work.ipbus_reg_types.all;
+
+USE work.fmcTLU.all;
+
+--! @brief Produces triggers from either trigger inputs or internal generator
+--!
+--! @author David Cussans , David.Cussans@bristol.ac.uk
+--!
+--! @date 16:06:19 11/09/12
+--!
+--! @version v0.1
+--!
+--! @details
+--! \br IPBus address map:
+--! \li 0x00000000 RO - Number of triggers issued since last reset.
+--! \li 0x00000001 RO - Number of possible triggers since last reset (i.e. pre-veto triggers)
+--! \li 0x00000010 RW - Interval between internal triggers in ticks of logic_strobe_i
+--! \li 0x00000011 RW - trigger pattern - value that gets loaded into CFGLUT5
+--! \li 0x00000100 RW - bit-0 - internal trigger veto. Set high to halt triggers.
+--! \li 0x00000101 RO - state of external veto
+--! \li 0x00000110 RW - stretch of pulses. Additional width = 0-31 clock cycles.
+--! \li 0x00000111 RW - delay of pulses. 0-31 clock cycles.
+--!
+--! <b>Modified by: Alvaro Dosil , alvaro.dosil@usc.es </b>\n
+-------------------------------------------------------------------------------
+--! \n\n<b>Last changes:</b>\n
+--! Move all IPBus stuff into ipbus_syncreg_v , which also handles clock domain
+--! crossing. 20/Feb/2014 , David Cussans
+--! Add stretchPulse and coincidenceLogic entities. May/15 , David Cussans
+-------------------------------------------------------------------------------
+ENTITY triggerLogic IS
+   GENERIC( 
+      g_NUM_INPUTS  : positive := 4; 
+      g_IPBUS_WIDTH : positive := 32 
+   );
+   PORT( 
+      clk_4x_logic_i      : IN     std_logic;                                     -- ! Rising edge active
+      ipbus_clk_i         : IN     std_logic;
+      ipbus_i             : IN     ipb_wbus;                                      -- Signals from IPBus core to slave
+      ipbus_reset_i       : IN     std_logic;
+      logic_reset_i       : IN     std_logic;                                     -- active high. Synchronous with clk_4x_logic
+      logic_strobe_i      : IN     std_logic;                                     -- ! Pulses high once every 4 cycles of clk_4x_logic
+      trigger_i           : IN     std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);    -- ! High when trigger from input connector active
+      trigger_times_i     : IN     t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);  --! trigger arrival time
+      veto_i              : IN     std_logic;                                     -- ! Halts triggers when high
+      trigger_o           : OUT    std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);    -- ! High when trigger from input connector active and enabled
+      trigger_times_o     : OUT    t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);  --! trigger arrival time
+      event_number_o      : OUT    std_logic_vector (g_IPBUS_WIDTH-1 DOWNTO 0);   -- starts at one. Increments for each post_veto_trigger
+      ipbus_o             : OUT    ipb_rbus;                                      -- signals from slave to IPBus core
+      post_veto_trigger_o : OUT    std_logic;                                     -- ! goes high when trigger passes
+      pre_veto_trigger_o  : OUT    std_logic;
+      trigger_active_o    : OUT    std_logic                                      --! Goes high when triggers are active ( ie. not veoted)
+   );
+
+-- Declarations
+
+END triggerLogic ;
+
+--
+ARCHITECTURE rtl OF triggerLogic IS
+
+    --! vector that stores trigger output for each combination of trigger inputs.
+    signal s_trigger_inputs_enabled , s_trigger_inputs_enabled_ipb : std_logic_vector(g_IPBUS_WIDTH-1 downto 0) := x"00000001";--(others=>'1');  
+    signal s_external_trigger_p , s_external_trigger_l , s_auxTrigger , s_internal_veto , s_internal_veto_ipb : std_logic := '0';
+    signal s_internal_trigger_interval: std_logic_vector(g_IPBUS_WIDTH-1 downto 0) := (others => '0');  -- setting s_internal_trigger_interval to zero means no internal triggers
+    signal s_pre_veto_trigger_counter , s_post_veto_trigger_counter , s_aux_trigger_counter: unsigned(g_IPBUS_WIDTH-1 downto 0) := (others => '0');  -- ! counters for triggers before and after veto
+    signal s_pre_veto_trigger_counter_ipb , s_post_veto_trigger_counter_ipb : std_logic_vector(g_IPBUS_WIDTH-1 downto 0) := (others => '0');  -- ! counters for triggers before and after veto, on ipbus clock domain
+    
+    signal s_triggers : std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0) := (others=>'0');
+    signal s_trigger_times : t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0) := (others=>(others=>'0'));
+    signal s_internal_trigger, s_internal_trigger_d : std_logic := '0';  -- ! Strobes high for one clock cycle at intervals of s_internal_trigger_interval cycles
+    --  signal s_internal_trigger_timer : unsigned(g_IPBUS_WIDTH-1 downto 0) := (others => '0');  -- counter for internal trigger generation
+    signal s_internal_trigger_timer , s_internal_trigger_timer_d : std_logic_vector(g_IPBUS_WIDTH-1 downto 0) := (others => '0');  -- counter for internal trigger generation and counter delay
+    signal s_internal_trigger_active , s_internal_trigger_active_d, s_internal_trigger_active_ipb : std_logic := '0';  -- ! Goes high when internal trigger is running.
+    
+    --  signal s_logic_reset ,  s_logic_reset_ipb : std_logic := '0';  -- ! Take high to reset counters etc.
+    signal s_pre_veto_trigger ,s_post_veto_trigger : std_logic := '0';  -- ! Can't read from an output port so keep internal copy
+    
+    signal s_TriggerPattern_low : std_logic_vector(g_IPBUS_WIDTH-1 downto 0) := (others => '0');  --! Pattern to load into LUT for trigger generation (low 32-bits)
+    signal s_TriggerPattern_high : std_logic_vector(g_IPBUS_WIDTH-1 downto 0) := (others => '0');  --! Pattern to load into LUT for trigger generation (high 32-bits)
+    
+    signal s_PulseStretchWord : std_logic_vector(g_IPBUS_WIDTH-1 downto 0) := (others => '0');  --! Length of trigger pulses
+    signal s_PulseWidthWord : std_logic_vector(g_IPBUS_WIDTH-1 downto 0) := (others => '0');  --! Length of trigger pulses
+    signal s_PulseDelayWord : std_logic_vector(g_IPBUS_WIDTH-1 downto 0) := (others => '0');  --!number of cycles to delay trigger pulses.
+    signal s_TriggerHoldOffWord : std_logic_vector(g_IPBUS_WIDTH-1 downto 0) := (others => '0'); --! minimum number of clock cycles between triggers
+    
+    constant c_PARAM_WIDTH : positive := 5;    -- length of pulse width and delay.
+    constant c_BYTE_WIDTH : positive := 5;    --Length of padded field for parameters. This should be at least equal to c_PARAM_WIDTH.
+                                              --If c_BYTE_WIDTH= 8 then the values are aligned to bytes in the 32-bit word (but we cannot store 6 of them...)
+                                              --If c_BYTE_WIDTH=5 then all the values are one after the other.
+    
+    constant c_N_CTRL : positive := 16;
+    constant c_N_STAT : positive := 16;
+    signal s_controlRegStrobes : std_logic_vector(c_N_CTRL-1 downto 0) := ( others => '0') ; --!
+                                                                             --Bit strobes when control reg is loaded
+    signal s_status_to_ipbus, s_sync_status_to_ipbus : ipb_reg_v(c_N_STAT-1 downto 0);
+    signal s_control_from_ipbus,s_sync_control_from_ipbus  : ipb_reg_v(c_N_CTRL-1 downto 0);
+    signal s_veto_word : std_logic_vector(g_IPBUS_WIDTH-1 downto 0) := (others => '0');
+    signal s_external_veto_word : std_logic_vector(g_IPBUS_WIDTH-1 downto 0) := (others => '0');
+    signal s_loadTriggerPattern , s_loadTriggerPattern_p1 : std_logic := '0';  -- take high to load trigger pattern
+    signal s_loadTriggerPatternHi , s_loadTriggerPatternHi_p1 : std_logic := '0';  -- take high to load trigger pattern
+    
+    signal s_delayedTriggerTimes, s_delayedTriggerTimes_d1, s_delayedTriggerTimes_d2 : t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);  --! Array of std_logic_vectors
+    signal s_stretchedTriggers ,  s_stretchedTriggers_d1 ,  s_stretchedTriggers_d2 : std_logic_vector( trigger_i'range) := (others => '0');  -- --! Triggers after stretch and delay
+    
+    COMPONENT internalTriggerGenerator
+    PORT (
+        CLK : IN STD_LOGIC;
+        CE : IN STD_LOGIC;
+        LOAD : IN STD_LOGIC;
+        L : IN STD_LOGIC_VECTOR(31 DOWNTO 0);
+        Q : OUT STD_LOGIC_VECTOR(31 DOWNTO 0)
+    );
+    END COMPONENT;
+  
+BEGIN
+  -----------------------------------------------------------------------------
+  -- IPBus interface 
+  -----------------------------------------------------------------------------
+    ipbus_registers: entity work.ipbus_ctrlreg_v
+    generic map(
+        N_CTRL => c_N_CTRL,
+        N_STAT => c_N_STAT
+    )
+    port map(
+        clk => ipbus_clk_i,
+        reset=> '0',--ipbus_reset_i ,
+        ipbus_in=>  ipbus_i,
+        ipbus_out=> ipbus_o,
+        d=>  s_sync_status_to_ipbus,
+        q=>  s_control_from_ipbus,
+        stb=> s_controlRegStrobes
+    );
+
+  -- Synchronize registers from logic clock to ipbus.
+    sync_status: entity work.synchronizeRegisters
+    generic map (
+        g_NUM_REGISTERS => c_N_STAT )
+    port map (
+        clk_input_i => clk_4x_logic_i,
+        data_i      =>  s_status_to_ipbus,
+        data_o      => s_sync_status_to_ipbus,
+        clk_output_i => ipbus_clk_i);
+
+    -- Synchronize registers from logic clock to ipbus.
+    sync_ctrl: entity work.synchronizeRegisters
+    generic map (
+        g_NUM_REGISTERS => c_N_CTRL )
+    port map (
+        clk_input_i => ipbus_clk_i,
+        data_i      =>  s_control_from_ipbus,
+        data_o      => s_sync_control_from_ipbus,
+        clk_output_i => clk_4x_logic_i);
+
+  -- Map the control registers
+  -- workaround to match the number of clock cycles with the configured interval
+    s_internal_trigger_interval <= x"00000000" when s_sync_control_from_ipbus(2)<x"00000005" else
+										std_logic_vector(unsigned(s_sync_control_from_ipbus(2))-2);
+										
+    --s_TriggerPattern_low <= s_control_from_ipbus(3);
+    s_LoadTriggerPattern_p1 <= s_controlRegStrobes(10);
+    s_LoadTriggerPatternHi_p1 <= s_controlRegStrobes(11);
+    s_veto_word <= s_sync_control_from_ipbus(4);
+    s_internal_veto <= s_veto_word(0);
+    s_PulseWidthWord <= s_sync_control_from_ipbus(6);
+    s_PulseDelayWord <= s_sync_control_from_ipbus(7);
+    s_TriggerHoldOffWord <= s_sync_control_from_ipbus(8);
+    s_TriggerPattern_low <= s_control_from_ipbus(10);
+    s_TriggerPattern_high <= s_control_from_ipbus(11);
+    --s_PulseWidthWord <=s_sync_control_from_ipbus(10);
+    
+    s_external_veto_word(0) <= veto_i;
+    s_external_veto_word(g_IPBUS_WIDTH-1 downto 1) <= (others=>'0');
+    
+    -- Map the status registers
+    s_status_to_ipbus(0) <= std_logic_vector(s_post_veto_trigger_counter);
+    s_status_to_ipbus(1) <= std_logic_vector(s_pre_veto_trigger_counter);
+    s_status_to_ipbus(2) <= s_internal_trigger_interval;
+    --s_status_to_ipbus(3) <= s_TriggerPattern_low;
+    s_status_to_ipbus(4) <= s_veto_word;
+    s_status_to_ipbus(5) <= s_external_veto_word;
+    s_status_to_ipbus(6) <= s_PulseWidthWord; 
+    s_status_to_ipbus(7) <= s_PulseDelayWord; --fixed in addr. map
+    s_status_to_ipbus(8) <= s_TriggerHoldOffWord;
+    s_status_to_ipbus(9) <= std_logic_vector(s_aux_trigger_counter);-- not used and never updated. Remove at some point.
+    s_status_to_ipbus(10) <= s_TriggerPattern_low;
+    s_status_to_ipbus(11) <= s_TriggerPattern_high;
+
+    -- purpose: Delay pulse that loads trigger pattern by one cycle of IPBus clk.
+    -- type   : combinational
+    -- inputs : ipbus_clk_i
+    -- outputs: 
+    p_delayLoadPulse: process (ipbus_clk_i) is
+    begin  -- process p_delayLoadPulse
+    if rising_edge(ipbus_clk_i) then
+        s_LoadTriggerPattern <= s_LoadTriggerPattern_p1;
+        s_LoadTriggerPatternHi <= s_LoadTriggerPatternHi_p1;
+    end if;
+    end process p_delayLoadPulse;
+
+  -- Stretch and delay pulses.
+  --D Put in delay for trigger times as well.
+  
+    --
+    gen_stretchVals: for v_inputNumber in 0 to g_NUM_INPUTS-1 generate
+        cmp_stretchPulse: entity work.stretchPulse
+        generic map (
+            g_PARAM_WIDTH => c_PARAM_WIDTH)
+        port map (
+            clk_i         => clk_4x_logic_i,
+            pulse_i       => trigger_i(v_inputNumber),
+            pulse_o       => s_stretchedTriggers(v_inputNumber),
+            triggerTime_i => trigger_times_i(v_inputNumber),
+            triggerTime_o => s_delayedTriggerTimes(v_inputNumber),
+    --        pulsewidth_i  => s_PulseStretchWord( (v_inputNumber*c_BYTE_WIDTH) + c_PARAM_WIDTH -1 downto v_inputNumber*c_BYTE_WIDTH ),
+            pulsewidth_i  => s_PulseWidthWord( (v_inputNumber*c_BYTE_WIDTH) + c_PARAM_WIDTH -1 downto v_inputNumber*c_BYTE_WIDTH ),
+            pulseDelay_i  => s_PulseDelayWord( (v_inputNumber*c_BYTE_WIDTH) + c_PARAM_WIDTH -1 downto v_inputNumber*c_BYTE_WIDTH )
+    --        pulsewidth_i  => s_PulseStretchWord( (0*c_BYTE_WIDTH) + c_PARAM_WIDTH -1 downto 0*c_BYTE_WIDTH ),
+    --        pulseDelay_i  => s_PulseDelayWord(   (0*c_BYTE_WIDTH) + c_PARAM_WIDTH -1 downto 0*c_BYTE_WIDTH )
+            );
+    end generate gen_stretchVals;
+
+  --! Trigger coincidence logic 
+    cmp_coincidence_logic : entity work.coincidenceLogic
+    generic map(
+        g_nInputs	=> g_NUM_INPUTS,
+        g_patternWidth => g_IPBUS_WIDTH
+    )
+    Port map( 
+        configClk_i 	=> ipbus_clk_i, --! No point in moving off IPBus clock
+        logicClk_i        => clk_4x_logic_i,
+        triggers_i 	=> s_stretchedTriggers,
+        trigger_o         => s_external_trigger_l,
+        --auxTrigger_o      => s_auxTrigger,
+        -- Control ports...
+        triggerPattern_low_i  => s_TriggerPattern_low,
+        triggerPattern_high_i  => s_TriggerPattern_high,
+        loadPatternHi_i     => s_loadTriggerPatternHi,
+        loadPatternLo_i     => s_loadTriggerPattern
+        );
+	
+  --! just look for the rising edge ( with long stretch can get multiple clock
+  --! cycle triggers )
+    cmp_triggerRisingEdge : entity work.single_pulse
+    port map (
+        level => s_external_trigger_l,
+        clk => clk_4x_logic_i,
+        pulse => s_external_trigger_p
+        );
+  
+  --! Produce triggers....
+    trigGen : process  ( clk_4x_logic_i ) 
+    begin 
+        if rising_edge(clk_4x_logic_i)  then 
+            s_post_veto_trigger <= (s_external_trigger_p or s_internal_trigger) and (not ( s_internal_veto or veto_i) );
+            s_pre_veto_trigger <= (s_external_trigger_p or s_internal_trigger);
+    
+            -- delay output of which input triggers fired so that they go high at the
+            -- same time as the pre/post veto trigger signals.
+            s_stretchedTriggers_d1 <= s_stretchedTriggers;
+            s_stretchedTriggers_d2 <= s_stretchedTriggers_d1;
+                                                            
+            s_delayedTriggerTimes_d1 <= s_delayedTriggerTimes;
+            s_delayedTriggerTimes_d2 <= s_delayedTriggerTimes_d1;
+             
+            trigger_o <= s_stretchedTriggers_d2;
+            trigger_times_o <= s_delayedTriggerTimes_d2; -- trigger_times_i;  -- put delayed version of trigger times here
+        end if;
+    end process;
+	
+
+    pre_veto_trigger_o <= s_pre_veto_trigger ;
+    post_veto_trigger_o <= s_post_veto_trigger;
+    trigger_active_o <= s_post_veto_trigger;
+
+	
+	--! Internal trigger generator
+    p_internal_triggers: process (clk_4x_logic_i )
+    begin  -- process p_internal_triggers
+        if rising_edge(clk_4x_logic_i) then
+            if (s_internal_trigger_interval = x"00000000") then
+                s_internal_trigger_active <= '0';
+            else
+                s_internal_trigger_active <= '1';
+            end if;
+        
+            s_internal_trigger_active_d <= s_internal_trigger_active;    -- signal delayed
+            s_internal_trigger_timer_d <= s_internal_trigger_timer;      -- Signal delayed
+        end if;
+    end process p_internal_triggers;
+  
+    s_internal_trigger <= '1' when (s_internal_trigger_timer = ( x"00000000" )) and (s_internal_trigger_timer_d = ( x"00000001" )) else '0';
+				
+				
+				
+    -- Use a coregen counter to allow timing constraints to be met.
+    --c_internal_triggers: entity work.internalTriggerGenerator
+    c_internal_triggers: internalTriggerGenerator
+    PORT MAP (
+        clk => clk_4x_logic_i,
+        ce => s_internal_trigger_active,
+        load => s_internal_trigger or (s_internal_trigger_active and not s_internal_trigger_active_d),
+        l => s_internal_trigger_interval,
+        q => s_internal_trigger_timer
+    );
+  
+  -----------------------------------------------------------------------------
+  -- Count triggers
+  -----------------------------------------------------------------------------
+    p_trigger_counter: process (clk_4x_logic_i )
+    begin  -- process p_trigger_counter
+        if rising_edge(clk_4x_logic_i) then
+            if logic_reset_i = '1' then
+                s_post_veto_trigger_counter <= ( others => '0');
+            elsif s_post_veto_trigger = '1' then
+                s_post_veto_trigger_counter <= s_post_veto_trigger_counter + 1;
+            end if;
+            
+            if logic_reset_i = '1' then
+                s_pre_veto_trigger_counter <= ( others => '0');
+            elsif s_pre_veto_trigger = '1' then
+                s_pre_veto_trigger_counter <= s_pre_veto_trigger_counter + 1;
+            end if;
+            
+            --if logic_reset_i = '1' then
+            --    s_aux_trigger_counter <= ( others => '0');
+            --elsif s_auxTrigger = '1' then
+            --    s_aux_trigger_counter <= s_aux_trigger_counter + 1;
+            --end if;
+        end if;
+    end process p_trigger_counter;
+ 
+    event_number_o <= std_logic_vector(s_post_veto_trigger_counter);
+  
+END ARCHITECTURE rtl;
+
diff --git a/legacy/EUDETdummy/constraints/EUDET_dummy_constr.xdc b/legacy/EUDETdummy/constraints/EUDET_dummy_constr.xdc
new file mode 100644
index 00000000..c39287f5
--- /dev/null
+++ b/legacy/EUDETdummy/constraints/EUDET_dummy_constr.xdc
@@ -0,0 +1,108 @@
+## Trigger inputs
+
+#set_property IOSTANDARD LVCMOS18 [get_ports {threshold_discr_p_i[*]}]
+#set_property PACKAGE_PIN J4 [get_ports {threshold_discr_p_i[4]}]
+#set_property PACKAGE_PIN H1 [get_ports {threshold_discr_p_i[5]}]
+
+#set_property IOSTANDARD LVCMOS33 [get_ports {threshold_discr_n_i[*]}]
+#set property IOSTANDARD LVDS_25 [get_ports {threshold_discr_p_i[*]}]
+#set_property PACKAGE_PIN B1 [get_ports {threshold_discr_p_i[0]}]
+#set_property PACKAGE_PIN A1 [get_ports {threshold_discr_n_i[0]}]
+#set_property PACKAGE_PIN C4 [get_ports {threshold_discr_p_i[1]}]
+#set_property PACKAGE_PIN B4 [get_ports {threshold_discr_n_i[1]}]
+#set_property PACKAGE_PIN K2 [get_ports {threshold_discr_p_i[2]}]
+#set_property PACKAGE_PIN K1 [get_ports {threshold_discr_n_i[2]}]
+#set_property PACKAGE_PIN C6 [get_ports {threshold_discr_p_i[3]}]
+#set_property PACKAGE_PIN C5 [get_ports {threshold_discr_n_i[3]}]
+#set_property PACKAGE_PIN J4 [get_ports {threshold_discr_p_i[4]}]
+#set_property PACKAGE_PIN H4 [get_ports {threshold_discr_n_i[4]}]
+#set_property PACKAGE_PIN H1 [get_ports {threshold_discr_p_i[5]}]
+#set_property PACKAGE_PIN G1 [get_ports {threshold_discr_n_i[5]}]
+
+## Miscellaneous I/O
+set_property IOSTANDARD LVCMOS33 [get_ports clk_gen_rst]
+set_property PACKAGE_PIN C1 [get_ports clk_gen_rst]
+set_property IOSTANDARD LVCMOS33 [get_ports gpio]
+set_property PACKAGE_PIN F6 [get_ports gpio]
+
+
+## Crystal clock
+set_property IOSTANDARD LVDS_25 [get_ports sysclk_40_i_p]
+set_property PACKAGE_PIN T4 [get_ports sysclk_40_i_n]
+set_property PACKAGE_PIN T5 [get_ports sysclk_40_i_p]
+
+## Output clock (currently not working so set to 0)
+set_property IOSTANDARD LVCMOS33 [get_ports sysclk_50_o_p]
+set_property PACKAGE_PIN E3 [get_ports sysclk_50_o_p]
+set_property IOSTANDARD LVCMOS33 [get_ports sysclk_50_o_n]
+set_property PACKAGE_PIN D3 [get_ports sysclk_50_o_n]
+
+## Inputs/Outputs for DUTs
+set_property IOSTANDARD LVCMOS33 [get_ports {busy_o[*]}]
+set_property PACKAGE_PIN R7 [get_ports {busy_o[0]}]
+set_property PACKAGE_PIN U4 [get_ports {busy_o[1]}]
+set_property PACKAGE_PIN R8 [get_ports {busy_o[2]}]
+set_property PACKAGE_PIN K5 [get_ports {busy_o[3]}]
+
+set_property IOSTANDARD LVCMOS33 [get_ports {triggers_o[*]}]
+set_property PACKAGE_PIN R6 [get_ports {triggers_o[0]}]
+set_property PACKAGE_PIN P2 [get_ports {triggers_o[1]}]
+set_property PACKAGE_PIN R1 [get_ports {triggers_o[2]}]
+set_property PACKAGE_PIN U1 [get_ports {triggers_o[3]}]
+
+set_property IOSTANDARD LVCMOS33 [get_ports {cont_o[*]}]
+set_property PACKAGE_PIN N5 [get_ports {cont_o[0]}]
+set_property PACKAGE_PIN P4 [get_ports {cont_o[1]}]
+set_property PACKAGE_PIN M6 [get_ports {cont_o[2]}]
+set_property PACKAGE_PIN L6 [get_ports {cont_o[3]}]
+
+set_property IOSTANDARD LVCMOS33 [get_ports {spare_o[*]}]
+set_property PACKAGE_PIN L1 [get_ports {spare_o[0]}]
+set_property PACKAGE_PIN M4 [get_ports {spare_o[1]}]
+set_property PACKAGE_PIN N2 [get_ports {spare_o[2]}]
+set_property PACKAGE_PIN M3 [get_ports {spare_o[3]}]
+
+set_property IOSTANDARD LVCMOS33 [get_ports {dut_clk_o[*]}]
+set_property PACKAGE_PIN K3 [get_ports {dut_clk_o[0]}]
+set_property PACKAGE_PIN F4 [get_ports {dut_clk_o[1]}]
+set_property PACKAGE_PIN E2 [get_ports {dut_clk_o[2]}]
+set_property PACKAGE_PIN G4 [get_ports {dut_clk_o[3]}]
+
+set_property IOSTANDARD LVCMOS33 [get_ports {cont_i[*]}]
+set_property PACKAGE_PIN P5 [get_ports {cont_i[0]}]
+set_property PACKAGE_PIN P3 [get_ports {cont_i[1]}]
+set_property PACKAGE_PIN N6 [get_ports {cont_i[2]}]
+set_property PACKAGE_PIN L5 [get_ports {cont_i[3]}]
+
+set_property IOSTANDARD LVCMOS33 [get_ports {spare_i[*]}]
+set_property PACKAGE_PIN M1 [get_ports {spare_i[0]}]
+set_property PACKAGE_PIN N4 [get_ports {spare_i[1]}]
+set_property PACKAGE_PIN N1 [get_ports {spare_i[2]}]
+set_property PACKAGE_PIN M2 [get_ports {spare_i[3]}]
+
+set_property IOSTANDARD LVCMOS33 [get_ports {triggers_i[*]}]
+set_property PACKAGE_PIN R5 [get_ports {triggers_i[0]}]
+set_property PACKAGE_PIN R2 [get_ports {triggers_i[1]}]
+set_property PACKAGE_PIN T1 [get_ports {triggers_i[2]}]
+set_property PACKAGE_PIN V1 [get_ports {triggers_i[3]}]
+
+set_property IOSTANDARD LVCMOS33 [get_ports {busy_i[*]}]
+set_property PACKAGE_PIN T6 [get_ports {busy_i[0]}]
+set_property PACKAGE_PIN U3 [get_ports {busy_i[1]}]
+set_property PACKAGE_PIN T8 [get_ports {busy_i[2]}]
+set_property PACKAGE_PIN L4 [get_ports {busy_i[3]}]
+
+set_property IOSTANDARD LVCMOS33 [get_ports {dut_clk_i[*]}]
+set_property PACKAGE_PIN L3 [get_ports {dut_clk_i[0]}]
+set_property PACKAGE_PIN F3 [get_ports {dut_clk_i[1]}]
+set_property PACKAGE_PIN D2 [get_ports {dut_clk_i[2]}]
+set_property PACKAGE_PIN G3 [get_ports {dut_clk_i[3]}]
+
+# -------------------------------------------------------------------------------------------------
+
+
+
+
+
+
+set_property BITSTREAM.CONFIG.SPI_BUSWIDTH 4 [current_design]
diff --git a/legacy/EUDETdummy/constraints/I2C_constr.xdc b/legacy/EUDETdummy/constraints/I2C_constr.xdc
new file mode 100644
index 00000000..eb95fff5
--- /dev/null
+++ b/legacy/EUDETdummy/constraints/I2C_constr.xdc
@@ -0,0 +1,40 @@
+set_property IOSTANDARD LVCMOS33 [get_ports i2c_reset]
+set_property PACKAGE_PIN C2 [get_ports i2c_reset]
+
+set_property IOSTANDARD LVCMOS33 [get_ports i2c_scl_b]
+set_property PACKAGE_PIN N17 [get_ports i2c_scl_b]
+
+set_property IOSTANDARD LVCMOS33 [get_ports i2c_sda_b]
+set_property PACKAGE_PIN P18 [get_ports i2c_sda_b]
+
+
+
+create_clock -period 25.000 -name sysclk_40_i_p -waveform {0.000 12.500} [get_ports sysclk_40_i_p]
+#set_property ASYNC_REG true [get_cells I1/sync_registers/s_ring_d4_reg]
+#set_property ASYNC_REG true [get_cells I1/sync_registers/s_ring_d3_reg]
+#set_property ASYNC_REG true [get_cells I1/sync_ipbus/s_ring_d0_reg]
+#set_property ASYNC_REG true [get_cells I1/sync_ipbus/s_ring_d1_reg]
+
+#set_clock_groups -asynchronous -group [get_clocks pll_base_inst_n_2] -group [get_clocks mmcm_n_8]
+#set_property ASYNC_REG true [get_cells I1/sync_ipbus/s_ring_d3_reg]
+#set_property ASYNC_REG true [get_cells I1/sync_ipbus/s_ring_d4_reg]
+#set_property ASYNC_REG true [get_cells I6/s_logic_reset_d1_reg]
+#set_property ASYNC_REG true [get_cells I6/s_logic_reset_d2_reg]
+#set_property ASYNC_REG true [get_cells I1/sync_registers/s_ring_d1_reg]
+#set_property ASYNC_REG true [get_cells I1/sync_registers/s_ring_d0_reg]
+#set_clock_groups -asynchronous -group [get_clocks mmcm_n_8] -group [get_clocks pll_base_inst_n_2]
+
+
+#Define clock groups and make them asynchronous with each other
+set_clock_groups -asynchronous -group {clk_enclustra I_1 mmcm_n_10 mmcm_n_6 mmcm_n_8 clk_ipb_i} -group {sysclk_40_i_p I pll_base_inst_n_2 s_clk160}
+
+# -------------------------------------------------------------------------------------------------
+
+
+
+#DEBUG PROBES
+
+
+
+
+
diff --git a/legacy/EUDETdummy/constraints/enclustra_ax3_pm3.tcl b/legacy/EUDETdummy/constraints/enclustra_ax3_pm3.tcl
new file mode 100644
index 00000000..7fd31b4c
--- /dev/null
+++ b/legacy/EUDETdummy/constraints/enclustra_ax3_pm3.tcl
@@ -0,0 +1,52 @@
+set_property BITSTREAM.GENERAL.COMPRESS TRUE [current_design]
+
+proc false_path {patt clk} {
+    set p [get_ports -quiet $patt -filter {direction != out}]
+    if {[llength $p] != 0} {
+        set_input_delay 0 -clock [get_clocks $clk] [get_ports $patt -filter {direction != out}]
+        set_false_path -from [get_ports $patt -filter {direction != out}]
+    }
+    set p [get_ports -quiet $patt -filter {direction != in}]
+    if {[llength $p] != 0} {
+       	set_output_delay 0 -clock [get_clocks $clk] [get_ports $patt -filter {direction != in}]
+	    set_false_path -to [get_ports $patt -filter {direction != in}]
+	}
+}
+
+# System clock (50MHz)
+#create_clock -period 25.000 -name sysclk [get_ports sysclk] 
+create_clock -period 20.000 -name clk_enclustra [get_ports clk_enclustra]
+
+set_false_path -through [get_pins infra/clocks/rst_reg/Q]
+set_false_path -through [get_nets infra/clocks/nuke_i]
+
+set_property IOSTANDARD LVCMOS33 [get_ports clk_enclustra]
+set_property PACKAGE_PIN P17 [get_ports clk_enclustra]
+
+set_property IOSTANDARD LVCMOS33 [get_ports {leds[*]}]
+set_property SLEW SLOW [get_ports {leds[*]}]
+set_property PACKAGE_PIN M16 [get_ports {leds[0]}]
+set_property PACKAGE_PIN M17 [get_ports {leds[1]}]
+set_property PACKAGE_PIN L18 [get_ports {leds[2]}]
+set_property PACKAGE_PIN M18 [get_ports {leds[3]}]
+false_path {leds[*]} clk_enclustra
+
+set_property IOSTANDARD LVCMOS33 [get_ports {rgmii_* phy_rstn}]
+set_property PACKAGE_PIN R18 [get_ports {rgmii_txd[0]}]
+set_property PACKAGE_PIN T18 [get_ports {rgmii_txd[1]}]
+set_property PACKAGE_PIN U17 [get_ports {rgmii_txd[2]}]
+set_property PACKAGE_PIN U18 [get_ports {rgmii_txd[3]}]
+set_property PACKAGE_PIN T16 [get_ports {rgmii_tx_ctl}]
+set_property PACKAGE_PIN N16 [get_ports {rgmii_txc}]
+set_property PACKAGE_PIN U16 [get_ports {rgmii_rxd[0]}]
+set_property PACKAGE_PIN V17 [get_ports {rgmii_rxd[1]}]
+set_property PACKAGE_PIN V15 [get_ports {rgmii_rxd[2]}]
+set_property PACKAGE_PIN V16 [get_ports {rgmii_rxd[3]}]
+set_property PACKAGE_PIN R16 [get_ports {rgmii_rx_ctl}]
+set_property PACKAGE_PIN T14 [get_ports {rgmii_rxc}]
+set_property PACKAGE_PIN M13 [get_ports {phy_rstn}]
+false_path {phy_rstn} clk_enclustra
+
+# -------------------------------------------------------------------------------------------------
+
+
diff --git a/legacy/EUDETdummy/hdl/Dummy_DUT.vhd b/legacy/EUDETdummy/hdl/Dummy_DUT.vhd
new file mode 100644
index 00000000..898b5758
--- /dev/null
+++ b/legacy/EUDETdummy/hdl/Dummy_DUT.vhd
@@ -0,0 +1,235 @@
+----------------------------------------------------------------------------------
+--! @file
+--
+-- Company: University of Bristol 
+-- Engineer: David Cussans
+-- 
+-- Create Date:    16:28:09 07/07/2006 
+-- Design Name: 
+-- Module Name:    Dummy_DUT - RTL 
+-- Project Name: 
+-- Target Devices: 
+-- Tool versions: 
+--! @brief Pretends to be a device under test
+--
+--
+-- Dependencies: 
+--
+-- Revision: 
+-- Revision 0.01 - File Created
+-- Additional Comments: 
+--
+----------------------------------------------------------------------------------
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+use IEEE.NUMERIC_STD.ALL;
+
+
+-- constant definitions.
+
+
+
+---- Uncomment the following library declaration if instantiating
+---- any Xilinx primitives in this code.
+--library UNISIM;
+--use UNISIM.VComponents.all;
+
+entity Dummy_DUT is
+    Port ( 
+           CLK : in  STD_LOGIC;         --! this is the USB clock.
+	   RST : in STD_LOGIC;          --! Synchronous clock
+           Trigger : in STD_LOGIC;      --! Trigger from TLU
+           Busy : out STD_LOGIC;        --! Busy to TLU
+           DUTClk : out STD_LOGIC;      --! clock from DUT
+           TriggerNumber : out STD_LOGIC_VECTOR(15 downto 0);
+           TriggerNumberStrobe : out STD_LOGIC;
+           FSM_Error : out STD_LOGIC
+           );
+
+end entity Dummy_DUT;
+
+architecture RTL of Dummy_DUT is
+
+  component delay is
+    generic (
+      length : integer := 1);  -- number of clock cycles to delay signal
+    port (
+      clock  : in  std_logic;             -- rising edge active
+      input  : in  std_logic;
+      output : out std_logic);
+  end component;
+    
+  -----------------------------------------------------------------------------
+
+  signal Registered_Trigger , Registered_RST : std_logic;     -- trigger and reset signals after being registered to suppress meta-stability.
+  
+  signal TriggerShiftRegister : STD_LOGIC_VECTOR (15 downto 0);  --! register
+                                                                 --to accept
+                                                                 --incoming
+                                                                 --trigger number
+
+  type state_type is (IDLE , WAIT_FOR_TRIGGER_LOW , CLOCKING , OUTPUT_TRIGGER_NUMBER);
+  signal state : state_type := IDLE;
+  signal next_state : state_type := IDLE;
+
+  signal TriggerBitCounter : unsigned(4 downto 0) := ( others => '0');  --! stores bit being clocked
+                                                         --in from TLU.
+  signal InternalDUTClk : std_logic := '0';  -- ! "can't read an output" bodge
+  
+  constant DUTClockDivider : unsigned(3 downto 0) := to_unsigned(14,4);
+  	
+  constant TriggerBitCounterLimit : unsigned(4 downto 0) :=  to_unsigned(16,5);
+
+  signal DUTClockCounter : unsigned(4 downto 0) := ( others => '0');
+
+begin
+
+  trigger_register: delay
+    generic map (
+      length => 2)
+    port map (
+      clock  => clk,
+      input  => Trigger,
+      output => Registered_Trigger);
+
+  reset_register: delay
+    generic map (
+      length => 2)
+    port map (
+      clock  => clk,
+      input  => RST,
+      output => Registered_RST);
+  
+  
+  busy_control: process (clk , state)
+  begin  -- process busy_control
+    if rising_edge(clk) then
+      if state = IDLE then
+        busy <= '0';
+      else
+        busy <= '1';
+      end if;
+    end if;
+  end process busy_control;
+
+  clock_control: process (clk , state , TriggerBitCounter )
+  begin  -- process busy_control
+    if rising_edge(clk) then
+      if state = CLOCKING then
+        if (InternalDUTClk = '0') and (DUTClockCounter = DUTClockDivider)  then
+          TriggerBitCounter <= TriggerBitCounter +1;
+        else
+          TriggerBitCounter <= TriggerBitCounter;
+        end if;
+      else
+        TriggerBitCounter <= ( others => '0');
+      end if;
+    end if;
+  end process clock_control;
+
+
+  InternalDUTClk_control: process (clk , state , InternalDUTClk)
+  begin  -- process busy_control
+    if rising_edge(clk) then
+      if state = CLOCKING  then
+        if DUTClockCounter = DUTClockDivider then
+        	InternalDUTClk <= not InternalDUTClk ;
+        	DUTClockCounter <= ( others => '0');
+        else
+            DUTClockCounter <= DUTClockCounter + 1;
+        end if;
+      else
+        InternalDUTClk <= '0';
+        DUTClockCounter <= ( others => '0');
+      end if;
+    end if;
+  end process InternalDUTClk_control;
+
+  shift_register_control: process (clk , state , TriggerShiftRegister)
+  begin  -- process shift_register_control
+    if rising_edge(clk) then
+      if  state = IDLE then
+        TriggerShiftRegister <= ( others => '0');
+      elsif state = CLOCKING then
+        if (InternalDUTClk = '1') and (DUTClockCounter=to_unsigned(1,4 ))  then
+          -- if (InternalDUTClk = '1') and (DUTClockCounter=to_unsigned(1,DUTClockCounter'length ))  then
+          TriggerShiftRegister <= trigger & TriggerShiftRegister( 15 downto 1) ;
+          -- TriggerShiftRegister <= trigger & TriggerShiftRegister( TriggerShiftRegister'high downto 1) ;
+        else
+          TriggerShiftRegister <= TriggerShiftRegister;
+        end if;
+      end if;
+    end if;
+  end process shift_register_control;
+
+  strobe_control: process (clk , state )
+  begin  -- process stobe_control
+    if rising_edge(clk) then
+      if state = OUTPUT_TRIGGER_NUMBER then
+        TriggerNumber <= TriggerShiftRegister;
+        TriggerNumberStrobe <= '1';
+      else
+        TriggerNumberStrobe  <= '0';
+      end if;
+    end if;
+  end process strobe_control;
+  
+--! @brief controls the next state in the state machine
+-- type   : combinational
+-- inputs : pattern_we, mask_we , beam_state_counter
+-- outputs: state , beam_state_counter
+  state_logic: process (state, TriggerBitCounter , registered_trigger ,InternalDUTClk  )
+  begin  -- process state_logic
+    case state is
+	 
+      when IDLE =>
+        if ( registered_trigger = '1') then
+          next_state <= WAIT_FOR_TRIGGER_LOW;
+        else
+          next_state <= IDLE;
+         end if;
+
+      when WAIT_FOR_TRIGGER_LOW =>
+        if ( registered_trigger = '0'  ) then
+          next_state <= CLOCKING;
+        else
+          next_state <= WAIT_FOR_TRIGGER_LOW;
+        end if;
+
+      when CLOCKING =>
+        if (( TriggerBitCounter = TriggerBitCounterLimit ) and ( InternalDUTClk = '0')) then
+          next_state <= OUTPUT_TRIGGER_NUMBER;
+        else
+          next_state <= CLOCKING;
+        end if;
+
+      when  OUTPUT_TRIGGER_NUMBER =>
+         next_state <= IDLE;
+               
+      when others =>
+        next_state <= IDLE;
+        
+    end case;
+  end process state_logic;
+  
+  --! @brief Register that holds the current state of the FSM
+  -- type   : combinational
+  -- inputs : clk , next_state
+  -- outputs: state
+  state_register: process (clk )
+  begin  -- process state_register
+    if rising_edge(clk) then
+      if (registered_rst = '1') then
+        state <= IDLE;
+      else
+        state <= next_state;          
+      end if;
+    end if;
+  end process state_register;
+
+  DUTClk <= InternalDUTClk;
+
+  fsm_error <= '0';                     -- hardware to zero.
+  
+end RTL;
+
diff --git a/legacy/EUDETdummy/hdl/Dummy_DUT_Toplevel.vhd b/legacy/EUDETdummy/hdl/Dummy_DUT_Toplevel.vhd
new file mode 100755
index 00000000..9116dc5a
--- /dev/null
+++ b/legacy/EUDETdummy/hdl/Dummy_DUT_Toplevel.vhd
@@ -0,0 +1,627 @@
+-------------------------------------------------------------------------------
+--! @file
+--! @brief Top level of firmware for dummy JRA1-TLU
+-------------------------------------------------------------------------------
+-- File name: Dummy_DUT_Toplevel.vhd
+-- Version: 0.1
+-- Date: 20/Oct/2009
+-- David Cussans
+--
+-- Changes
+--
+-------------------------------------------------------------------------------
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.all;
+
+use IEEE.NUMERIC_STD.all;
+
+--! Use library for instantiating Xilinx primitive components.
+--library UNISIM;
+--use UNISIM.vcomponents.all;
+
+--! include definition of TLU address map
+use work.TLU_Address_Map_v02.all;
+
+--! Top level with all the hardware ports.
+entity Dummy_DUT_Toplevel is
+  port (
+    USB_StreamCLK      : in    std_logic;  --! 48MHz clock from FX2
+    USB_StreamFIFOADDR : out   std_logic_vector(1 downto 0);
+    USB_StreamPKTEND_n : out   std_logic;
+    USB_StreamFlags_n  : in    std_logic_vector(2 downto 0);
+    USB_StreamSLOE_n   : out   std_logic;
+    USB_StreamSLRD_n   : out   std_logic;
+    USB_StreamSLWR_n   : out   std_logic;
+    USB_StreamData     : inout std_logic_vector(15 downto 0);
+    USB_StreamFX2Rdy   : in    std_logic;
+
+    USB_RegCLK  : in    std_logic; --! 48MHz clock from FX2
+    USB_RegAddr : in    std_logic_vector(15 downto 0);
+    USB_RegData : inout std_logic_vector(7 downto 0);
+    USB_RegOE_n : in    std_logic;
+    USB_RegRD_n : in    std_logic;
+    USB_RegWR_n : in    std_logic;
+    USB_RegCS_n : in    std_logic;
+
+    USB_Interrupt : out std_logic;
+
+    User_Signals : inout std_logic_vector(7 downto 0);
+
+    S_CLK      : out   std_logic;
+    S_A        : out   std_logic_vector(22 downto 0);
+    S_DA       : inout std_logic_vector(8 downto 0);
+    S_DB       : inout std_logic_vector(8 downto 0);
+    S_ADV_LD_N : out   std_logic;
+    S_BWA_N    : out   std_logic;
+    S_BWB_N    : out   std_logic;
+    S_OE_N     : out   std_logic;
+    S_WE_N     : out   std_logic;
+
+    IO_CLK_N : inout std_logic;         --! Posive side of differential user clock
+    IO_CLK_P : inout std_logic;         --! Posive side of differential user clock
+    IO       : inout std_logic_vector(46 downto 0)  --! The 47 I/O pins
+    );
+end Dummy_DUT_Toplevel;
+
+architecture arch of Dummy_DUT_Toplevel is
+	
+  --! Declare interfaces component
+  component ZestSC1_Interfaces
+    port (
+      --! FPGA pin connections
+      USB_StreamCLK      : in    std_logic;
+      USB_StreamFIFOADDR : out   std_logic_vector(1 downto 0);
+      USB_StreamPKTEND_n : out   std_logic;
+      USB_StreamFlags_n  : in    std_logic_vector(2 downto 0);
+      USB_StreamSLOE_n   : out   std_logic;
+      USB_StreamSLRD_n   : out   std_logic;
+      USB_StreamSLWR_n   : out   std_logic;
+      USB_StreamData     : inout std_logic_vector(15 downto 0);
+      USB_StreamFX2Rdy   : in    std_logic;
+
+      USB_RegCLK  : in    std_logic;
+      USB_RegAddr : in    std_logic_vector(15 downto 0);
+      USB_RegData : inout std_logic_vector(7 downto 0);
+      USB_RegOE_n : in    std_logic;
+      USB_RegRD_n : in    std_logic;
+      USB_RegWR_n : in    std_logic;
+      USB_RegCS_n : in    std_logic;
+
+      USB_Interrupt : out std_logic;
+
+      S_CLK      : out   std_logic;
+      S_A        : out   std_logic_vector(22 downto 0);
+      S_ADV_LD_N : out   std_logic;
+      S_BWA_N    : out   std_logic;
+      S_BWB_N    : out   std_logic;
+      S_DA       : inout std_logic_vector(8 downto 0);
+      S_DB       : inout std_logic_vector(8 downto 0);
+      S_OE_N     : out   std_logic;
+      S_WE_N     : out   std_logic;
+
+      --! User connections
+      --! Streaming interface
+      User_CLK : out std_logic;
+      User_RST : out std_logic;
+
+      User_StreamBusGrantLength : in std_logic_vector(11 downto 0);
+
+      User_StreamDataIn     : out std_logic_vector(15 downto 0);
+      User_StreamDataInWE   : out std_logic;
+      User_StreamDataInBusy : in  std_logic;
+
+      User_StreamDataOut     : in  std_logic_vector(15 downto 0);
+      User_StreamDataOutWE   : in  std_logic;
+      User_StreamDataOutBusy : out std_logic;
+
+      --! Register interface
+      User_RegAddr    : out std_logic_vector(15 downto 0);
+      User_RegDataIn  : out std_logic_vector(7 downto 0);
+      User_RegDataOut : in  std_logic_vector(7 downto 0);
+      User_RegWE      : out std_logic;
+      User_RegRE      : out std_logic;
+
+      --! Signals and interrupts
+      User_Interrupt : in std_logic;
+
+      --! SRAM interface
+      User_SRAM_A        : in  std_logic_vector(22 downto 0);
+      User_SRAM_W        : in  std_logic;
+      User_SRAM_R        : in  std_logic;
+      User_SRAM_DR_VALID : out std_logic;
+      User_SRAM_DW       : in  std_logic_vector(17 downto 0);
+      User_SRAM_DR       : out std_logic_vector(17 downto 0)
+      );
+  end component;
+
+  component Register_Controller is
+
+                                  port (
+
+                                    --! Take clock from Zest interface block
+                                    User_CLK : in std_logic;
+
+                                    --! Register interface to USB
+                                    User_RegAddr    : in  std_logic_vector(15 downto 0);
+                                    User_RegDataIn  : in  std_logic_vector(7 downto 0);
+                                    User_RegDataOut : out std_logic_vector(7 downto 0);
+                                    User_RegWE      : in  std_logic;
+                                    User_RegRE      : in  std_logic;
+
+				    Logic_CLK : in std_logic;
+				    
+                                    --! Signals to trigger logic
+                                    DUT_Reset : out std_logic_vector(NUMBER_OF_DUT-1 downto 0);  --separate bits for each DUT
+
+                                    DUT_Trigger : out std_logic_vector(NUMBER_OF_DUT-1 downto 0);
+                                    DUT_Debug_Trigger : out std_logic_vector(NUMBER_OF_DUT-1 downto 0);
+                                    DUT_Busy : in std_logic_vector(NUMBER_OF_DUT-1 downto 0);  -- actual state of DUT
+                                    DUT_Clock_Debug :  in std_logic_vector(NUMBER_OF_DUT-1 downto 0);  -- actual state of
+                                                                                                       -- DUT_CLOCK
+
+    				    I2C_Select : out std_logic_vector(WIDTH_OF_I2C_SELECT_PORT-1 downto 0); -- output to mux/demux that selects I2C ports
+
+    				    I2C_SCL_OUT : out std_logic; -- drives SCL
+    				    I2C_SCL_IN : in std_logic; -- state of SCL
+
+    				    I2C_SDA_OUT : out std_logic; -- drives SDA
+    				    I2C_SDA_IN : in std_logic; -- state of SDA
+
+                                    -- Mask for beam trigger inputs. 
+                                    Beam_Trigger_AMask   : out std_logic_vector(NUMBER_OF_BEAM_TRIGGERS-1 downto 0);
+                                    Beam_Trigger_OMask   : out std_logic_vector(NUMBER_OF_BEAM_TRIGGERS-1 downto 0);
+                                    Beam_Trigger_VMask   : out std_logic_vector(NUMBER_OF_BEAM_TRIGGERS-1 downto 0);
+                                    
+                                    Trigger_pattern      : out  std_logic_vector (15 downto 0);
+                                    Aux_pattern          : out  std_logic_vector (15 downto 0);
+    
+                                    Beam_Trigger_Mask_WE : out std_logic;
+                                    Beam_Trigger_Pattern_WE : out std_logic;
+    
+                                    --Beam trigger input for debugging.
+                                    beam_trigger_in : in std_logic_vector(NUMBER_OF_BEAM_TRIGGERS-1 downto 0);
+                                    calibration_trigger_interval : out std_logic_vector(7 downto 0);
+                                    -- send trigger to, and receive busy from only certain DUT....
+                                    DUT_Mask    : out std_logic_vector(NUMBER_OF_DUT-1 downto 0);
+                                    enable_DUT_veto : out std_logic_vector(NUMBER_OF_DUT-1 downto 0); --
+                                    --! controls if a DUT can halt triggers by
+                                    --! raising DUT_CLK line.
+                                    DUT_Mask_WE : out std_logic;
+
+                                    -- because of 8-bit interface trigger a read of whole timestamp and then
+                                    -- read each byte separately
+                                    Timestamp : in std_logic_vector(TIMESTAMP_WIDTH-1 downto 0);
+
+                                    Trigger_Counter : in std_logic_vector(TRIGGER_COUNTER_WIDTH-1 downto 0);
+                                    Particle_Counter : in std_logic_vector(TRIGGER_COUNTER_WIDTH-1 downto 0);  -- fsv
+                                    Auxiliary_Counter : in std_logic_vector(TRIGGER_COUNTER_WIDTH-1 downto 0);
+                                    Trigger_Scalers : in TRIGGER_SCALER_ARRAY;
+                                    Buffer_Pointer  : in std_logic_vector(BUFFER_COUNTER_WIDTH-1 downto 0);
+
+                                    Trigger_Output_FSM_Status : in std_logic_vector(NUMBER_OF_DUT-1 downto 0);
+                                    Trigger_FSM_State_Value : in std_logic_vector(( (NUMBER_OF_DUT*4)-1) downto 0);
+                                    beam_trigger_fsm_status : in std_logic_vector(2 downto 0);
+                                    DMA_Status : in std_logic;
+                                    Host_Trig_Inhibit     : out std_logic;
+                                    Trig_Enable_Status    : in  std_logic;  -- this is the overall status of the TLU ( incl. vetos from DUT)
+                                    Clock_Source_Select   : out std_logic;
+                                    Clock_DCM_Locked      : in std_logic;
+                                    Reset_Timestamp       : out std_logic;
+                                    Reset_Buffer_Pointer  : out std_logic;
+                                    Reset_DMA_Controller  : out std_logic;
+                                    Reset_ClockGen        : out std_logic;
+                                    Initiate_Readout      : out std_logic;
+                                    Reset_Trigger_Counter : out std_logic;
+				    Reset_Trigger_Scalers : out std_logic;
+                                    Reset_Trigger_Output_FSM : out std_logic;
+                                    Reset_Beam_Trigger_FSM : out std_logic;
+                                    Stop_if_Timestamp_Buffer_Full : out std_logic;
+                                    strobe_width        : out std_logic_vector(STROBE_COUNTER_WIDTH-1 downto 0);
+                                    strobe_period        : out std_logic_vector(STROBE_COUNTER_WIDTH-1 downto 0);
+                                    write_strobe_data   : out std_logic;
+                                    enable_strobe       : out std_logic;
+                                    strobe_running      : in std_logic;
+				    Write_Trigger_Bits_Mode : out std_logic;
+                                    Trigger_Handshake_Mode : out std_logic_vector(NUMBER_OF_DUT-1 downto 0)
+                                    );
+  end component;
+
+  -----------------------------------------------------------------------------
+  
+  component Dummy_DUT 
+    Port ( 
+           CLK : in  STD_LOGIC;         --! this is the USB clock.
+	   RST : in STD_LOGIC;          --! Synchronous clock
+           Trigger : in STD_LOGIC;      --! Trigger from TLU
+           Busy : out STD_LOGIC;        --! Busy to TLU
+           DUTClk : out STD_LOGIC;      --! clock from DUT
+           TriggerNumber : out STD_LOGIC_VECTOR(15 downto 0);
+           TriggerNumberStrobe : out STD_LOGIC;
+           FSM_Error : out STD_LOGIC
+           );
+  end component;
+      
+  -----------------------------------------------------------------------------
+
+  component Trigger_Number_Error_Checker is
+    Port ( 
+           CLK : in  STD_LOGIC;         --! this is the USB clock.
+	   RST : in STD_LOGIC;          --! Synchronous with clock
+           TriggerNumber : in STD_LOGIC_VECTOR(15 downto 0);  --! should
+                                                              --incremeent from
+                                                              --0
+           TriggerNumberStrobe : in STD_LOGIC;  --! Active high
+           TriggerCounter : out  STD_LOGIC_VECTOR(15 downto 0);  --!internal counter
+           ErrorFlag : out STD_LOGIC    --! goes high if internal number
+                                        --doesn't match
+           );
+end component;
+
+  -----------------------------------------------------------------------------
+
+  -- declaration of chipscope core ....
+  
+  component dummy_dut_chipscope_ila
+  PORT (
+    CONTROL : INOUT STD_LOGIC_VECTOR(35 DOWNTO 0);
+    CLK : IN STD_LOGIC;
+    TRIG0 : IN STD_LOGIC_VECTOR(15 DOWNTO 0);
+    TRIG1 : IN STD_LOGIC_VECTOR(15 DOWNTO 0);
+    TRIG2 : IN STD_LOGIC_VECTOR(3 DOWNTO 0));
+  end component;
+
+  component dummy_dut_chipscope_icon
+  PORT (
+    CONTROL0 : INOUT STD_LOGIC_VECTOR(35 DOWNTO 0));
+  end component;
+
+  -- Chipscope signals
+  signal CONTROL : STD_LOGIC_VECTOR(35 DOWNTO 0);
+  signal TRIG0 : STD_LOGIC_VECTOR(15 DOWNTO 0);
+  signal TRIG1 : STD_LOGIC_VECTOR(15 DOWNTO 0);
+  signal TRIG2 : STD_LOGIC_VECTOR(3 DOWNTO 0);
+  
+
+  -----------------------------------------------------------------------------
+
+  
+  -- Declare signals
+  signal CLK  : std_logic;
+  signal RST  : std_logic;
+
+  -- Register interface
+  signal Addr    : std_logic_vector(15 downto 0);
+  signal DataIn  : std_logic_vector(7 downto 0);
+  signal DataOut : std_logic_vector(7 downto 0);
+  signal WE      : std_logic;
+  signal RE      : std_logic;
+
+  -- signals associated with streaming interface.
+  signal Host_Data    : std_logic_vector(15 downto 0);
+  signal Host_Data_WE : std_logic;
+  signal Host_Busy    : std_logic;
+  
+  -- Interrupt signal
+  -- not used in this design
+  signal Interrupt : std_logic;
+
+
+  -- Signals associated with DUT
+  signal DUT_Reset        : std_logic_vector(NUMBER_OF_DUT-1 downto 0);  --separate bits for each DUT
+  signal DUT_Busy : std_logic_vector(NUMBER_OF_DUT-1 downto 0);  -- actual state of DUT
+  signal DUT_Clock :  std_logic_vector(NUMBER_OF_DUT-1 downto 0);  -- actual state of DUT_CLK
+  signal DUT_Trigger :  std_logic_vector(NUMBER_OF_DUT-1 downto 0);  --
+
+  subtype TriggerNumberType is std_logic_vector(15 downto 0);
+  type TriggerNumberArray is array (NUMBER_OF_DUT-1 downto 0) of TriggerNumberType;
+  signal TriggerNumber : TriggerNumberArray;  -- trigger number clocked out from TLU
+
+  signal TriggerCounter : TriggerNumberArray;  -- trigger number inside
+                                                 -- error checker
+  
+  signal TriggerNumberStrobe : std_logic_vector(NUMBER_OF_DUT-1 downto 0);  -- strobes high
+
+  signal ErrorFlag : std_logic_vector(NUMBER_OF_DUT-1 downto 0);  -- strobes high
+
+  -- I2C signals
+  signal I2C_Select : std_logic_vector(WIDTH_OF_I2C_SELECT_PORT-1 downto 0); 
+  signal I2C_SDA_OUT :std_logic; 
+  signal I2C_SCL_OUT :std_logic; 
+  signal I2C_SDA_IN  :std_logic; 
+  signal I2C_SCL_IN  :std_logic; 
+  
+  signal trigger_scalers : TRIGGER_SCALER_ARRAY;  -- array of 16 bit registers
+  
+-- a bodge, since I can't figure out how to make it work with aggregates.
+  -- declare a constant for the unused IO => .
+  constant unused_io : std_logic_vector(7 downto 0) := "ZZZZZZZZ" ;
+
+  for all : zestsc1_interfaces use entity work.zestsc1_interfaces(arch);
+
+-----------------------------------------------------------------------
+-- end of declarations start of instantiation
+-----------------------------------------------------------------------
+
+begin
+
+
+
+  -- let unused IO float for now 
+  (  IO(7) , IO(10) , IO(19) , IO(24) ,
+     IO(33) , IO(39) , IO(40) , IO(45) ) <= unused_io;
+  
+    -- Instantiate interfaces component
+  Interfaces : ZestSC1_Interfaces
+    port map (
+      USB_StreamCLK      => USB_StreamCLK,
+      USB_StreamFIFOADDR => USB_StreamFIFOADDR,
+      USB_StreamPKTEND_n => USB_StreamPKTEND_n,
+      USB_StreamFlags_n  => USB_StreamFlags_n,
+      USB_StreamSLOE_n   => USB_StreamSLOE_n,
+      USB_StreamSLRD_n   => USB_StreamSLRD_n,
+      USB_StreamSLWR_n   => USB_StreamSLWR_n,
+      USB_StreamData     => USB_StreamData,
+      USB_StreamFX2Rdy   => USB_StreamFX2Rdy,
+
+      USB_RegCLK  => USB_RegCLK,
+      USB_RegAddr => USB_RegAddr,
+      USB_RegData => USB_RegData,
+      USB_RegOE_n => USB_RegOE_n,
+      USB_RegRD_n => USB_RegRD_n,
+      USB_RegWR_n => USB_RegWR_n,
+      USB_RegCS_n => USB_RegCS_n,
+
+      USB_Interrupt => USB_Interrupt,
+
+      S_CLK      => S_CLK,
+      S_A        => S_A,
+      S_ADV_LD_N => S_ADV_LD_N,
+      S_BWA_N    => S_BWA_N,
+      S_BWB_N    => S_BWB_N,
+      S_DA       => S_DA,
+      S_DB       => S_DB,
+      S_OE_N     => S_OE_N,
+      S_WE_N     => S_WE_N,
+
+      -- User connections
+      -- Streaming interface
+      User_CLK => CLK,
+      -- bodge for simulation
+      -- User_CLK => open,
+      User_RST => RST,
+
+      User_StreamBusGrantLength => "100000000000",  --! In clock cycles.
+--      User_StreamBusGrantLength => X"100",  -- In clock cycles. Clutching at
+--                                           --straws, make this the same as
+--                                           --Example2.vhd ( i.e. 256 cycles not
+--                                           --2048 )
+--
+      User_StreamDataIn     => open,
+      User_StreamDataInWE   => open,
+      User_StreamDataInBusy => '1',
+
+      User_StreamDataOut     => Host_Data,
+      User_StreamDataOutWE   => Host_Data_WE,
+      User_StreamDataOutBusy => Host_Busy,
+
+      -- Register interface
+      User_RegAddr    => Addr,
+      User_RegDataIn  => DataIn,
+      User_RegDataOut => DataOut,
+      User_RegWE      => WE,
+      User_RegRE      => RE,
+
+      -- Interrupts
+      User_Interrupt => Interrupt,
+
+      -- SRAM interface
+      User_SRAM_A        => "00000000000000000000000",
+      User_SRAM_W        => '0',
+      User_SRAM_R        => '0',
+      User_SRAM_DR_VALID => open,
+      User_SRAM_DW       => "000000000000000000",
+      User_SRAM_DR       => open
+      );
+
+
+    reg_ctrl : Register_Controller
+    port map (
+
+      -- Take clock from Zest interface block
+      User_CLK => clk,
+
+      -- Register interface
+      User_RegAddr    => Addr,
+      User_RegDataIn  => DataIn,
+      User_RegDataOut => DataOut,
+      User_RegWE      => WE,
+      User_RegRE      => RE,
+
+      Logic_CLK => clk,
+      
+      -- Signals to trigger logic
+--      DUT_Reset => ,           --separate bits for each DUT
+
+--      DUT_Trigger => Host_DUT_Trigger,
+
+--      DUT_Debug_Trigger => Host_DUT_Debug_Trigger , 
+      DUT_Busy => DUT_Busy,             -- actual state of DUT
+      DUT_Clock_Debug => DUT_Clock,
+
+      I2C_Select  => I2C_Select ,
+      I2C_SCL_OUT => I2C_SCL_OUT ,
+      I2C_SCL_IN  => I2C_SCL_IN ,
+      I2C_SDA_OUT => I2C_SDA_OUT,
+      I2C_SDA_IN  => I2C_SDA_IN ,
+  
+      -- Mask for beam trigger inputs. 
+--      Beam_Trigger_AMask   => open,
+--      Beam_Trigger_OMask   => open,
+--      Beam_Trigger_VMask   => open,
+--      Beam_Trigger_Mask_WE => open,
+      
+      				    
+--      Trigger_pattern	=> open,
+--      Aux_pattern	=> open,
+--      Beam_Trigger_Pattern_WE	=> beam_trigger_pattern_we,
+
+
+      --Beam trigger input for debugging.
+      beam_trigger_in => ( others => '0'),
+
+--      calibration_trigger_interval => Calibration_Trigger_Interval,
+      
+      -- send trigger to, and receive busy from only certain DUT....
+--      DUT_Mask    => DUT_Mask,
+--      DUT_Mask_WE => DUT_MAsk_WE,
+
+      -- because of 8-bit interface trigger a read of whole timestamp and then
+      -- read each byte separately
+      Timestamp => ( others => '0'),
+
+      Trigger_Counter => ( others => '0'),
+      Particle_Counter => ( others => '0'),   --  fsv
+      Auxiliary_Counter => ( others => '0'),                        
+      Trigger_Scalers => trigger_scalers,
+      
+      Buffer_Pointer  => ( others => '0'),
+
+      Trigger_Output_FSM_Status => ( others => '0'),
+      Trigger_FSM_State_Value => ( others => '0'),
+      beam_trigger_fsm_status => ( others => '0'),
+      DMA_Status => '0',
+--      Host_Trig_Inhibit  => host_veto,
+      Trig_Enable_Status => '0',
+      
+--      Clock_Source_Select => Clock_Source_Select,    
+      Clock_DCM_Locked => '0' , 
+---      Reset_Timestamp    => Reset_Timestamp,
+--      Reset_Buffer_Pointer => Reset_Buffer_Pointer,
+--      Reset_DMA_Controller => Reset_DMA_Controller,
+--      Reset_ClockGen => Reset_ClockGen ,
+--      Initiate_Readout => Initiate_Readout,
+--     Reset_Trigger_Counter => Reset_Trigger_Counter,
+--      Reset_Trigger_Scalers => Reset_Trigger_Scalers,
+--      Reset_Trigger_Output_FSM => trigger_fsm_reset,
+--      Reset_Beam_Trigger_FSM => beam_trigger_fsm_reset,
+--      Stop_if_Timestamp_Buffer_Full => stop_if_buffer_full,
+--      strobe_width   =>   strobe_width ,
+--      strobe_period  =>   strobe_period , 
+--      write_strobe_data   =>   write_strobe_data , 
+--      enable_strobe => enable_strobe , 
+      strobe_running => '0' 
+--      Write_Trigger_Bits_Mode => write_trigger_bits_mode,
+--      Trigger_Handshake_Mode => dut_trigger_handshake_mode
+      );
+
+-- bodge for simulation:
+--  clk <= usb_streamclk ;
+  
+----------------------------------------------
+-- Use a generate statement to generate the required number of
+-- trigger outputs.
+  Trigger_Outputs :
+  for DUT in 0 to NUMBER_OF_DUT-1 generate
+  begin
+  
+    -- connect up the input pins to the internal signals.
+    -- odd numbered inputs are inverted to reduce ground bounce in LVDS-->TTL converters
+    -- the odd-numbered outputs are inverted to reduce ground bounce.
+
+    -- Cross the TRIGGER-->BUSY and DUT_CLK-->Reset lines to allow connection
+    -- to TLU
+
+    -- Trigger and Reset are inputs to the Dummy DUT, but wired to BUSY and
+    -- CLOCK lines.
+    inverted_inputs: if ( (DUT=1) or (DUT=3) or (DUT=5) ) generate
+      DUT_Trigger(DUT) <= not IO(DUT_BUSY_BIT(DUT));
+      DUT_Reset(DUT)   <= not IO(DUT_CLOCK_BIT(DUT));
+    end generate inverted_inputs;
+    
+    noninverted_inputs: if ( (DUT=0) or (DUT=2) or (DUT=4) ) generate
+      DUT_Trigger(DUT) <= IO(DUT_BUSY_BIT(DUT));
+      DUT_Reset(DUT)   <= IO(DUT_CLOCK_BIT(DUT));
+    end generate noninverted_inputs;
+
+    ---------------------------------------------------------------------------
+    -- Busy and DUT_Clock are *outputs* from the Dummy DUT, but wired to
+    -- TRIGGER and RESET outputs.
+    inverted_outputs: if ( (DUT=1) or (DUT=3) or (DUT=5) ) generate
+      IO(TRIGGER_OUTPUT_BIT(DUT)) <= not DUT_Busy(DUT);
+      IO(DUT_RESET_BIT(DUT)) <= not DUT_Clock(DUT);
+    end generate inverted_outputs;
+
+    noninverted_outputs: if ( (DUT=0) or (DUT=2) or (DUT=4) ) generate
+      IO(TRIGGER_OUTPUT_BIT(DUT)) <= DUT_Busy(DUT);
+      IO(DUT_RESET_BIT(DUT)) <= DUT_Clock(DUT);
+    end generate noninverted_outputs;
+
+    -- generate an instance of the Dummy DUT behind each connector
+    DUT_Instance: Dummy_DUT 
+      Port map ( 
+           CLK => CLK,
+           RST => DUT_Reset(DUT),
+           Trigger => DUT_Trigger(DUT),
+           Busy => DUT_Busy(DUT),
+           DUTClk => DUT_Clock(DUT),
+           TriggerNumber => TriggerNumber(DUT),
+           TriggerNumberStrobe => TriggerNumberStrobe(DUT), 
+           FSM_Error => open
+           );
+
+    -- generate an instance of an error checker for each DUT
+    error_checker_instance :  Trigger_Number_Error_Checker 
+      Port map (
+        CLK => CLK,
+        RST => DUT_Reset(DUT),
+        TriggerNumber => TriggerNumber(DUT),
+        TriggerNumberStrobe => TriggerNumberStrobe(DUT),
+        TriggerCounter => TriggerCounter(DUT), 
+        ErrorFlag => ErrorFlag(DUT)
+        );
+      
+  end generate;
+
+  -- chipscope instrumentation
+  icon0 : dummy_dut_chipscope_icon
+  port map (
+    CONTROL0 => CONTROL );
+
+  ila0 : dummy_dut_chipscope_ila
+  port map (
+    CONTROL => CONTROL,
+    CLK => CLK,
+    TRIG0 => TRIG0,
+    TRIG1 => TRIG1,
+    TRIG2 => TRIG2);
+
+   -- copy signals to the Chipscope core ports...
+  TRIG0 <= TriggerNumber(0);
+  TRIG1 <= TriggerCounter(0);
+  TRIG2(0) <= ErrorFlag(0);
+  TRIG2(1) <= TriggerNumberStrobe(0);
+  TRIG2(2) <= DUT_Reset(0);
+  TRIG2(3) <= DUT_Trigger(0);
+  
+---------------------------------------------------------------
+
+-- connect up I2C bus-select lines.
+ i2c_bus_select: for BUS_ID in 0 to WIDTH_OF_I2C_SELECT_PORT-1 generate
+  begin
+    IO(I2C_BUS_SELECT_IO_BITS(BUS_ID)) <= I2C_Select(BUS_ID);
+  end generate;
+
+  -- conenct up I2C data lines
+  IO(I2C_SCL_OUT_IO_BIT) <= I2C_SCL_OUT;
+  IO(I2C_SDA_OUT_IO_BIT) <= I2C_SDA_OUT;
+  I2C_SCL_IN <= IO(I2C_SCL_IN_IO_BIT);
+  I2C_SDA_IN <= IO(I2C_SDA_IN_IO_BIT);
+    
+	-- connect up BEAM_TRIGGER and CLK to GPIO for debugging...
+  IO(GPIO_BIT(0)) <= DUT_Trigger(0);
+  IO(GPIO_BIT(1)) <= DUT_Reset(0);
+  IO(GPIO_BIT(2)) <= DUT_Busy(0);
+  IO(GPIO_BIT(3)) <= ErrorFlag(0); -- DUT_Clock(0);
+  
+end arch;
diff --git a/legacy/EUDETdummy/hdl/Register_Controller.vhd b/legacy/EUDETdummy/hdl/Register_Controller.vhd
new file mode 100644
index 00000000..d0def0df
--- /dev/null
+++ b/legacy/EUDETdummy/hdl/Register_Controller.vhd
@@ -0,0 +1,601 @@
+library IEEE;
+use IEEE.STD_LOGIC_1164.all;
+use IEEE.STD_LOGIC_ARITH.all;
+use IEEE.STD_LOGIC_UNSIGNED.all;
+
+-- include address map declarations
+use work.TLU_Address_Map.all;
+
+entity Register_Controller is
+
+  port (
+
+    -- Take clock from Zest interface block
+    User_CLK : in std_logic;
+
+    -- Register interface to USB
+    User_RegAddr    : in  std_logic_vector(15 downto 0);
+    User_RegDataIn  : in  std_logic_vector(7 downto 0);
+    User_RegDataOut : out std_logic_vector(7 downto 0);
+    User_RegWE      : in  std_logic;
+    User_RegRE      : in  std_logic;
+    
+    -- Take clock from trigger logic.
+    Logic_CLK : in std_logic;
+    
+    -- Signals to trigger logic
+    DUT_Reset : out std_logic_vector(NUMBER_OF_DUT-1 downto 0);  --separate bits for each DUT
+
+    DUT_Trigger : out std_logic_vector(NUMBER_OF_DUT-1 downto 0);
+                  --separate bits for each DUT. Fed via trigger controller,
+                  -- so vetoed if DUT does not respond.
+
+    DUT_Debug_Trigger : out std_logic_vector(NUMBER_OF_DUT-1 downto 0);
+                  --separate bits for each DUT. Fed straight to output pins
+          
+    DUT_Busy : in std_logic_vector(NUMBER_OF_DUT-1 downto 0);  -- actual state of DUT
+    DUT_Clock_Debug :  in std_logic_vector(NUMBER_OF_DUT-1 downto 0);  -- actual state
+                                                                       -- of dut_clk
+    DUT_Leds : out std_logic_vector(NUMBER_OF_DUT-1 downto 0);  -- LED on each
+                                                                -- RJ45
+
+    -- Mask for beam trigger inputs. 
+    Beam_Trigger_AMask   : out std_logic_vector(NUMBER_OF_BEAM_TRIGGERS-1 downto 0) := ( others => '1' ) ;
+    Beam_Trigger_OMask   : out std_logic_vector(NUMBER_OF_BEAM_TRIGGERS-1 downto 0) := ( others => '0' ) ;
+    Beam_Trigger_VMask   : out std_logic_vector(NUMBER_OF_BEAM_TRIGGERS-1 downto 0);
+    Beam_Trigger_Mask_WE : out std_logic;
+
+    --Beam trigger input for debugging.
+    beam_trigger_in : in std_logic_vector(NUMBER_OF_BEAM_TRIGGERS-1 downto 0);
+
+    calibration_trigger_interval : out std_logic_vector(7 downto 0);
+    
+    -- send trigger to, and receive busy from only certain DUT....
+    DUT_Mask    : out std_logic_vector(NUMBER_OF_DUT-1 downto 0);
+    DUT_Mask_WE : out std_logic;
+
+    -- because of 8-bit interface trigger a read of whole timestamp and then
+    -- read each byte separately
+    -- this is the current value of the timestamp
+    Timestamp : in std_logic_vector(TIMESTAMP_WIDTH-1 downto 0);
+
+    Trigger_Counter : in std_logic_vector(TRIGGER_COUNTER_WIDTH-1 downto 0);
+    Particle_Counter : in std_logic_vector(TRIGGER_COUNTER_WIDTH-1 downto 0);  -- fsv
+   
+    Trigger_Scalers : in TRIGGER_SCALER_ARRAY;
+
+    Buffer_Pointer  : in std_logic_vector(BUFFER_COUNTER_WIDTH-1 downto 0);
+
+    Trigger_Output_FSM_Status : in std_logic_vector(NUMBER_OF_DUT-1 downto 0);
+    beam_trigger_fsm_status : in std_logic_vector(2 downto 0);
+    DMA_Status : in std_logic;
+    Host_Trig_Inhibit     : out std_logic;  -- this is the trigger inhibit controlled by the host
+    Trig_Enable_Status    : in  std_logic;  -- this is the overall status of the TLU ( incl. vetos from DUT)
+    Clock_Source_Select   : out std_logic;
+    Reset_Timestamp       : out std_logic;
+    Reset_Buffer_Pointer  : out std_logic;
+    Reset_DMA_Controller  : out std_logic;
+    Initiate_Readout      : out std_logic;
+    Reset_Trigger_Counter : out std_logic;
+    Reset_Trigger_Scalers : out std_logic;
+    Reset_Trigger_Output_FSM : out std_logic;
+    Reset_Beam_Trigger_FSM : out std_logic
+    );
+
+end Register_Controller;
+
+
+architecture rtl of Register_Controller is
+
+  component Select_Scaler
+  port (
+    trigger_scaler : in  TRIGGER_SCALER;
+                                        -- 16-bit register holding scintillator counts
+    low_byte_out       : out std_logic_vector(7 downto 0);  -- output to USB i/face
+    high_byte_out       : out std_logic_vector(7 downto 0)  -- output to USB i/face
+    );
+  end component;
+  
+  signal Output_Data : std_logic_vector(7 downto 0);
+  -- output data after Mux, before output reg
+
+  --    signal Internal_Trig_Inhibit : std_logic;  
+  --                              -- can't read an output port, so declare a dummy signal
+
+  signal Buffer_Pointer_Register :
+    std_logic_vector(BUFFER_POINTER_WIDTH-1 downto 0);
+  -- stores the buffer pointer after capture
+  signal Timestamp_Register :
+    std_logic_vector(TIMESTAMP_WIDTH-1 downto 0);
+  -- stores timestamp after capture
+  signal Trigger_Counter_Register :
+    std_logic_vector(TRIGGER_COUNTER_WIDTH-1 downto 0);
+  -- stores the trigger counter after capture
+
+    signal Particle_Counter_Register :
+    std_logic_vector(TRIGGER_COUNTER_WIDTH-1 downto 0);
+  -- fsv -- stores the Particle counter after capture
+
+  signal Internal_DUT_Mask : std_logic_vector(NUMBER_OF_DUT-1 downto 0);
+                                        -- can't read output port, so declare a dummy signal....
+
+  signal Internal_DUT_Leds : std_logic_vector(NUMBER_OF_DUT-1 downto 0);
+                                        -- can't read output port, so declare a dummy signal....
+
+  signal Internal_Debug_Trigger : std_logic_vector(NUMBER_OF_DUT-1 downto 0);
+                                        -- can't read output port, so declare a dummy signal....
+
+  signal Internal_DUT_Reset : std_logic_vector(NUMBER_OF_DUT-1 downto 0);
+                                        -- can't read output port, so declare a dummy signal....
+
+  signal Internal_Calibration_Trigger_Interval : std_logic_vector(CALIBRATION_TRIGGER_COUNTER_WIDTH-1 downto 0) := "00000000";
+                                 -- interval between calibration triggers, in units of milli-seconds. Zero turns off triggers
+  
+  signal Internal_Host_Trig_Inhibit : std_logic :='1';
+
+  signal Internal_Clock_Source_Select : std_logic :='1';
+
+  signal Internal_Beam_Trigger_AMask  : std_logic_vector(NUMBER_OF_BEAM_TRIGGERS-1 downto 0);
+  signal Internal_Beam_Trigger_OMask  : std_logic_vector(NUMBER_OF_BEAM_TRIGGERS-1 downto 0);
+  signal Internal_Beam_Trigger_VMask  : std_logic_vector(NUMBER_OF_BEAM_TRIGGERS-1 downto 0);
+
+  signal Registered_Trigger_Scalers : TRIGGER_SCALER_ARRAY;  
+                                        -- register the scalers...
+  signal registered_scaler0 : TRIGGER_SCALER;
+  signal registered_scaler1 : TRIGGER_SCALER;
+  signal registered_scaler2 : TRIGGER_SCALER;
+  signal registered_scaler3 : TRIGGER_SCALER;
+  
+  signal Trigger_Scaler0_low : std_logic_vector(7 downto 0);
+  signal Trigger_Scaler0_high : std_logic_vector(7 downto 0);
+  signal Trigger_Scaler1_low : std_logic_vector(7 downto 0);
+  signal Trigger_Scaler1_high : std_logic_vector(7 downto 0);
+  signal Trigger_Scaler2_low : std_logic_vector(7 downto 0);
+  signal Trigger_Scaler2_high : std_logic_vector(7 downto 0);
+  signal Trigger_Scaler3_low : std_logic_vector(7 downto 0);
+  signal Trigger_Scaler3_high : std_logic_vector(7 downto 0);
+  
+begin  -- architecture rtl
+
+
+  -- purpose: selects which of inputs gets multiplexed to readout bus
+  -- type   : combinational
+  -- inputs : clk,addr,rw
+  -- outputs: User_RegDataOut
+  -- fsv add Particle_Counter_Register
+  read_mux : process (User_RegAddr, User_CLK , DUT_Busy, DUT_Clock_Debug, Internal_Host_Trig_Inhibit,
+                      Trig_Enable_Status, Buffer_Pointer_Register, Timestamp_Register,
+                      Trigger_Counter_Register, Particle_Counter_Register, Timestamp, Trigger_Counter, Internal_DUT_Mask,
+                      Internal_DUT_Leds, Trigger_Output_FSM_Status, DMA_Status) is
+  begin  -- process read_mux
+
+    if (
+      -- don't clock in data - it doesn't seem to work!
+        -- User_CLK'event and User_CLK = '1'
+        -- and User_RegRE = '1'
+        -- and
+        User_RegAddr(15 downto 6) = BASE_ADDRESS(15 downto 6)) then
+
+      case User_RegAddr(5 downto 0) is
+
+        -- read firmware ID
+        when FIRMWARE_ID_ADDRESS =>
+          Output_Data <= FIRMWARE_ID;
+
+          -- read staus of DUT_BUSY lines.
+        when DUT_BUSY_ADDRESS =>
+          Output_Data(NUMBER_OF_DUT-1 downto 0) <= DUT_Busy;
+          Output_Data(7 downto NUMBER_OF_DUT)   <= (others => '0');
+
+        -- read DUT_CLOCK ( aka DUT_TRIGGER_DATA ) lines
+        when DUT_CLOCK_DEBUG_ADDRESS =>
+          Output_Data(NUMBER_OF_DUT-1 downto 0) <= DUT_Clock_Debug;
+          Output_Data(7 downto NUMBER_OF_DUT)   <= (others => '0');
+
+
+          -- read state of trigger inhibit line
+        when TRIG_INHIBIT_ADDRESS =>
+          Output_Data(0) <= Internal_Host_Trig_Inhibit;
+          Output_Data(1) <= Trig_Enable_Status;
+          Output_Data(7 downto 2)   <= (others => '0');
+
+        when CLOCK_SOURCE_SELECT_ADDRESS =>
+          Output_Data(0) <= Internal_Clock_Source_Select;
+          Output_Data(7 downto 1)   <= (others => '0');
+
+        -- interval between internal triggersa
+        when INTERNAL_TRIGGER_INTERVAL =>
+          Output_Data(7 downto 0) <= Internal_Calibration_Trigger_Interval;
+          
+          -- read buffer pointer
+          -- for now assume a 16-bit buffer pointer
+        when REGISTERED_BUFFER_POINTER_ADDRESS_0 =>
+          Output_Data <= Buffer_Pointer_Register(7 downto 0);
+        when REGISTERED_BUFFER_POINTER_ADDRESS_1 =>
+          Output_Data <= Buffer_Pointer_Register(15 downto 8);
+
+          -- read buffer pointer
+          -- for now assume a 16-bit buffer pointer
+        when BUFFER_POINTER_ADDRESS_0 =>
+          Output_Data <= Buffer_Pointer(7 downto 0);
+        when BUFFER_POINTER_ADDRESS_1 =>
+          Output_Data(BUFFER_COUNTER_WIDTH-9 downto 0) <= Buffer_Pointer(BUFFER_COUNTER_WIDTH-1 downto 8);
+			 Output_Data(7 downto BUFFER_COUNTER_WIDTH-8) <= (others => '0');
+          
+          -- read timestamp
+          -- assume a 64-bit timestamp
+        when REGISTERED_TIMESTAMP_ADDRESS_0 =>
+          Output_Data <= Timestamp_Register(7 downto 0);
+        when REGISTERED_TIMESTAMP_ADDRESS_1 =>
+          Output_Data <= Timestamp_Register(15 downto 8);
+        when REGISTERED_TIMESTAMP_ADDRESS_2 =>
+          Output_Data <= Timestamp_Register(23 downto 16);
+        when REGISTERED_TIMESTAMP_ADDRESS_3 =>
+          Output_Data <= Timestamp_Register(31 downto 24);
+        when REGISTERED_TIMESTAMP_ADDRESS_4 =>
+          Output_Data <= Timestamp_Register(39 downto 32);
+        when REGISTERED_TIMESTAMP_ADDRESS_5 =>
+          Output_Data <= Timestamp_Register(47 downto 40);
+        when REGISTERED_TIMESTAMP_ADDRESS_6 =>
+          Output_Data <= Timestamp_Register(55 downto 48);
+        when REGISTERED_TIMESTAMP_ADDRESS_7 =>
+          Output_Data <= Timestamp_Register(63 downto 56);
+
+          -- read registered trigger counter.
+          -- assume a 32-bit trigger counter
+        when REGISTERED_TRIGGER_COUNTER_ADDRESS_0 =>
+          Output_Data <= Trigger_Counter_Register(7 downto 0);
+        when REGISTERED_TRIGGER_COUNTER_ADDRESS_1 =>
+          Output_Data <= Trigger_Counter_Register(15 downto 8);
+        when REGISTERED_TRIGGER_COUNTER_ADDRESS_2 =>
+          Output_Data <= Trigger_Counter_Register(23 downto 16);
+        when REGISTERED_TRIGGER_COUNTER_ADDRESS_3 =>
+          Output_Data <= Trigger_Counter_Register(31 downto 24);
+
+          -- read registered Particle counter.  -- fsv  --
+          -- assume a 32-bit trigger counter
+        when REGISTERED_PARTICLE_COUNTER_ADDRESS_0 =>
+          Output_Data <= Particle_Counter_Register(7 downto 0);
+        when REGISTERED_PARTICLE_COUNTER_ADDRESS_1 =>
+          Output_Data <= Particle_Counter_Register(15 downto 8);
+        when REGISTERED_PARTICLE_COUNTER_ADDRESS_2 =>
+          Output_Data <= Particle_Counter_Register(23 downto 16);
+        when REGISTERED_PARTICLE_COUNTER_ADDRESS_3 =>
+          Output_Data <= Particle_Counter_Register(31 downto 24);
+
+          -- read unregistered timestamp
+          -- assume a 64-bit timestamp
+        when TIMESTAMP_ADDRESS_0 =>
+          Output_Data <= Timestamp(7 downto 0);
+        when TIMESTAMP_ADDRESS_1 =>
+          Output_Data <= Timestamp(15 downto 8);
+        when TIMESTAMP_ADDRESS_2 =>
+          Output_Data <= Timestamp(23 downto 16);
+        when TIMESTAMP_ADDRESS_3 =>
+          Output_Data <= Timestamp(31 downto 24);
+        when TIMESTAMP_ADDRESS_4 =>
+          Output_Data <= Timestamp(39 downto 32);
+        when TIMESTAMP_ADDRESS_5 =>
+          Output_Data <= Timestamp(47 downto 40);
+        when TIMESTAMP_ADDRESS_6 =>
+          Output_Data <= Timestamp(55 downto 48);
+        when TIMESTAMP_ADDRESS_7 =>
+          Output_Data <= Timestamp(63 downto 56);
+
+          -- read unregisteredtrigger counter.
+          -- assume a 32-bit trigger counter
+        when TRIGGER_COUNTER_ADDRESS_0 =>
+          Output_Data <= Trigger_Counter(7 downto 0);
+        when TRIGGER_COUNTER_ADDRESS_1 =>
+          Output_Data <= Trigger_Counter(15 downto 8);
+        when TRIGGER_COUNTER_ADDRESS_2 =>
+          Output_Data <= Trigger_Counter(23 downto 16);
+        when TRIGGER_COUNTER_ADDRESS_3 =>
+          Output_Data <= Trigger_Counter(31 downto 24);
+
+          -- read status of DUT mask
+        when DUT_MASK_ADDRESS                              =>
+          Output_Data(NUMBER_OF_DUT-1 downto 0) <= Internal_DUT_Mask;
+          Output_Data(7 downto NUMBER_OF_DUT)   <= (others => '0');
+
+          -- read status of LEDs
+        when DUT_LED_ADDRESS                               =>
+          Output_Data(NUMBER_OF_DUT-1 downto 0) <= Internal_DUT_Leds;
+          Output_Data(7 downto NUMBER_OF_DUT)   <= (others => '0');
+
+        -- read status of debugging trigger (connected to dut trigger
+        -- outputs without trigger/busy handshake.
+        when DUT_DEBUG_TRIGGER_ADDRESS                     =>
+          Output_Data(NUMBER_OF_DUT-1 downto 0) <= Internal_Debug_Trigger;
+          Output_Data(7 downto NUMBER_OF_DUT)   <= (others => '0');
+
+        -- read status of beam trigger inputs
+        -- (useful for debugging)
+        when BEAM_TRIGGER_IN_ADDRESS          =>
+          Output_Data(NUMBER_OF_BEAM_TRIGGERS-1 downto 0) <= beam_trigger_in;
+          Output_Data(7 downto NUMBER_OF_BEAM_TRIGGERS)   <= (others => '0');
+
+
+        -- read status of beam_trigger_omask, amask , vmask
+        when BEAM_TRIGGER_OMASK_ADDRESS        =>
+          Output_Data(NUMBER_OF_BEAM_TRIGGERS-1 downto 0) <= Internal_Beam_Trigger_OMask;
+          Output_Data(7 downto NUMBER_OF_BEAM_TRIGGERS)   <= (others => '0');
+
+        when BEAM_TRIGGER_AMASK_ADDRESS        =>
+          Output_Data(NUMBER_OF_BEAM_TRIGGERS-1 downto 0) <= Internal_Beam_Trigger_AMask;
+          Output_Data(7 downto NUMBER_OF_BEAM_TRIGGERS)   <= (others => '0');
+
+        when BEAM_TRIGGER_VMASK_ADDRESS        =>
+          Output_Data(NUMBER_OF_BEAM_TRIGGERS-1 downto 0) <= Internal_Beam_Trigger_VMask;
+          Output_Data(7 downto NUMBER_OF_BEAM_TRIGGERS)   <= (others => '0');
+
+        -- read status of reset lines
+        when DUT_RESET_ADDRESS                     =>
+          Output_Data(NUMBER_OF_DUT-1 downto 0) <= Internal_DUT_Reset;
+          Output_Data(7 downto NUMBER_OF_DUT)   <= (others => '0');          
+
+        when TRIGGER_FSM_STATUS_ADDRESS =>
+          Output_Data(NUMBER_OF_DUT-1 downto 0) <= Trigger_Output_FSM_Status;
+          Output_Data(7 downto NUMBER_OF_DUT)   <= (others => '0');
+
+        when BEAM_TRIGGER_FSM_STATUS_ADDRESS =>
+          Output_Data(2 downto 0) <= beam_trigger_fsm_status;
+          Output_Data(7 downto 3)   <= (others => '0');
+          
+        when DMA_STATUS_ADDRESS =>
+          Output_Data(0) <= DMA_Status;
+          Output_Data(7 downto 1)   <= (others => '0');
+          
+--          trigger_scaler_read_mux:
+--            for BEAM_TRIGGER_IDX in 0 to NUMBER_OF_BEAM_TRIGGERS-1 generate
+--              high_low:
+--                for HIGH_LOW_BYTE in 0 to 1 generate
+--                  when (TRIGGER_IN0_COUNTER_0 + BEAM_TRIGGER_IDX*2 + HIGH_LOW_BYTE) =>                    
+--                    register_scaler: Select_Scaler
+--                      port map (
+--                        trigger_scaler => Trigger_Scalers(BEAM_TRIGGER_IDX1),
+--                        byte_select => HIGH_LOW_BYTE1,
+--                        byte_out => Output_Data
+--                        );
+--                end generate;  -- HIGH_LOW
+--            end generate;  -- BEAM_TRIGGER_IDX
+--                    Output_Data <= Registered_Trigger_Scaler_Byte(BEAM_TRIGGER_IDX*2 + HIGH_LOW_BYTE);
+
+        when TRIGGER_IN0_COUNTER_0 =>
+          Output_Data <= Trigger_Scaler0_low;
+
+        when TRIGGER_IN0_COUNTER_1 =>
+          Output_Data <= Trigger_Scaler0_high;
+
+        when TRIGGER_IN1_COUNTER_0 =>
+          Output_Data <= Trigger_Scaler1_low;
+
+        when TRIGGER_IN1_COUNTER_1 =>
+          Output_Data <= Trigger_Scaler1_high;
+
+        when TRIGGER_IN2_COUNTER_0 =>
+          Output_Data <= Trigger_Scaler2_low;
+
+        when TRIGGER_IN2_COUNTER_1 =>
+          Output_Data <= Trigger_Scaler2_high;
+
+        when TRIGGER_IN3_COUNTER_0 =>
+          Output_Data <= Trigger_Scaler3_low;
+
+        when TRIGGER_IN3_COUNTER_1 =>
+          Output_Data <= Trigger_Scaler3_high;          
+
+          
+        when others =>
+          -- if the address is out of range return zero
+          --Output_Data(7 downto 0)   <= (others => '0');
+			 null;
+			 
+      end case;
+
+      --else
+      --  -- if the address is out of range return zero
+      --  Output_Data(7 downto 0)   <= (others => '0');
+    end if;
+
+  end process read_mux;
+
+--  trigger_scaler_register_mux:
+--  for BEAM_TRIGGER_IDX1 in 0 to NUMBER_OF_BEAM_TRIGGERS-1 generate
+--    high_low1:
+--    for HIGH_LOW_BYTE1 in 0 to 1 generate
+--      register_scaler: Select_Scaler
+--        port map (
+--          trigger_scaler => Trigger_Scalers(BEAM_TRIGGER_IDX1),
+--          byte_select => HIGH_LOW_BYTE1,
+--          byte_out => Registered_Scaler_Byte(BEAM_TRIGGER_IDX1*2 + HIGH_LOW_BYTE1)
+--          );
+--    end generate;  -- HIGH_LOW
+--  end generate;  -- BEAM_TRIGGER_IDX
+
+--              Registered_Scaler <= Registered_Trigger_Scalers(BEAM_TRIGGER_IDX);
+--  Registered_Trigger_Scaler(8*(HIGH_LOW_BYTE+1)-1 downto 7*HIGH_LOW_BYTE);
+  
+
+  -- purpose: Writing to STATE_CAPTURE_ADDRESS registers
+  --          Timestamp, Trigger_Counter, Buffer_Pointer
+  -- type   : combinational
+  -- inputs : User_CLK
+  -- outputs: Timestamp_Register, Trigger_Counter_Register,
+  --          Buffer_Pointer_Register
+
+  write_mux : process (User_CLK, Timestamp,
+                           Trigger_Counter, Buffer_Pointer) is
+  begin  -- process capture_state
+	 -- clock the data to be written on the *falling* edge of user clock.
+    if (User_CLK'event and User_CLK = '0') then
+      if ( User_RegWE = '1' and User_RegAddr(15 downto 6) = BASE_ADDRESS(15 downto 6)) then
+
+        -- Capture timestamp, trigger_counter and buffer_pointer
+        -- into registers.
+        if (User_RegAddr(5 downto 0) = STATE_CAPTURE_ADDRESS) then
+          Timestamp_Register <= Timestamp;
+          Trigger_Counter_Register <= Trigger_Counter;
+          Particle_Counter_Register <= Particle_Counter;   --  fsv
+          Buffer_Pointer_Register(BUFFER_COUNTER_WIDTH-1 downto 0)                    <= Buffer_Pointer;
+          Buffer_Pointer_Register(BUFFER_POINTER_WIDTH-1 downto BUFFER_COUNTER_WIDTH) <= (others => '0');
+
+          Registered_Trigger_Scalers <= Trigger_Scalers;
+          
+        end if;
+
+        -- output DUT reset signals.
+        if (User_RegAddr(5 downto 0) = DUT_RESET_ADDRESS ) then
+          Internal_DUT_Reset <= User_RegDataIn(NUMBER_OF_DUT-1 downto 0);
+        end if;
+
+        -- output DUT trigger signals for one clock cycle...
+        if (User_RegAddr(5 downto 0) = DUT_TRIGGER_ADDRESS
+            ) then
+          DUT_Trigger <= User_RegDataIn(NUMBER_OF_DUT-1 downto 0);
+        end if;
+
+        -- output trigger inhibit signal
+        if (User_RegAddr(5 downto 0) = TRIG_INHIBIT_ADDRESS ) then
+          Internal_Host_Trig_Inhibit <= User_RegDataIn(0);
+        end if;
+
+        -- set the frequency of the internal (calibration) triggers
+        if (User_RegAddr(5 downto 0) = INTERNAL_TRIGGER_INTERVAL ) then
+          Internal_Calibration_Trigger_Interval <= User_RegDataIn;
+        end if;
+        
+        -- output DUT_mask
+        if ( User_RegAddr(5 downto 0) = DUT_MASK_ADDRESS ) then
+          Internal_DUT_Mask <= User_RegDataIn(NUMBER_OF_DUT-1 downto 0);
+          DUT_Mask_WE       <= '1';
+        end if;
+
+        -- write to LEDs
+        if ( User_RegAddr(5 downto 0) = DUT_LED_ADDRESS ) then
+          Internal_DUT_Leds <= User_RegDataIn(NUMBER_OF_DUT-1 downto 0);
+        end if;
+
+
+        -- Select which clock source drives the trigger logic
+        -- 0 = external clock
+        -- 1 = USB ( 48MHz ) clock
+        if (User_RegAddr(5 downto 0) = CLOCK_SOURCE_SELECT_ADDRESS ) then
+          Internal_Clock_Source_Select <= User_RegDataIn(0);
+        end if;
+
+        -- Write to the trigger output.
+        if ( User_RegAddr(5 downto 0) = DUT_DEBUG_TRIGGER_ADDRESS ) then
+          Internal_Debug_Trigger <= User_RegDataIn(NUMBER_OF_DUT-1 downto 0);
+        end if;
+
+        -- output pointer/counter reset signals for one clock cycle.
+        if (User_RegAddr(5 downto 0) = RESET_REGISTER_ADDRESS
+            ) then
+          Reset_Timestamp       <=
+            User_RegDataIn(TIMESTAMP_RESET_BIT);
+          Reset_Trigger_Counter <=
+            User_RegDataIn(TRIGGER_COUNTER_RESET_BIT);
+          Reset_Buffer_Pointer  <=
+            User_RegDataIn(BUFFER_POINTER_RESET_BIT);
+          Reset_DMA_Controller  <=
+            User_RegDataIn(DMA_CONTROLLER_RESET_BIT);
+          Reset_Trigger_Output_FSM <= User_RegDataIn(TRIGGER_FSM_RESET_BIT);
+          --Reset_Beam_Trigger_FSM <= User_RegDataIn(BEAM_TRIGGER_FSM_RESET_BIT);
+	  Reset_Trigger_Scalers <= User_RegDataIn(TRIGGER_SCALERS_RESET_BIT);
+       end if;
+
+
+
+        -- Initiate readout block readout of trigger info
+        if (User_RegAddr(5 downto 0) = INITIATE_READOUT_ADDRESS
+            ) then
+          Initiate_Readout <= '1';
+        end if;
+
+                                        -- set beam trigger output masks.
+        if (User_RegAddr(5 downto 0) = BEAM_TRIGGER_AMASK_ADDRESS or
+            User_RegAddr(5 downto 0) = BEAM_TRIGGER_OMASK_ADDRESS or
+            User_RegAddr(5 downto 0) = BEAM_TRIGGER_VMASK_ADDRESS
+            ) then
+          Beam_Trigger_Mask_WE <= '1';
+          if (User_RegAddr(5 downto 0) = BEAM_TRIGGER_AMASK_ADDRESS) then
+            Internal_Beam_Trigger_AMask <= User_RegDataIn(NUMBER_OF_BEAM_TRIGGERS-1 downto 0);
+          elsif (User_RegAddr(5 downto 0) = BEAM_TRIGGER_OMASK_ADDRESS) then
+            Internal_Beam_Trigger_OMask <= User_RegDataIn(NUMBER_OF_BEAM_TRIGGERS-1 downto 0);
+          else
+            Internal_Beam_Trigger_VMask <= User_RegDataIn(NUMBER_OF_BEAM_TRIGGERS-1 downto 0);
+          end if;
+        end if;
+
+
+      else
+        initiate_readout <= '0';
+        DUT_Mask_WE      <= '0';
+        Beam_Trigger_Mask_WE <= '0';
+        Reset_Timestamp       <= '0';
+        Reset_Trigger_Counter <= '0';
+        Reset_Buffer_Pointer  <= '0';
+        Reset_DMA_Controller  <= '0';
+        Reset_Trigger_Output_FSM <= '0';
+        Reset_Beam_Trigger_FSM <= '0';
+        
+      end if;
+
+    end if;  -- end of clk'falling
+  end process write_mux;
+
+
+  registered_scaler0 <= Registered_Trigger_Scalers(0);
+  Trigger_Scaler0_low <= registered_scaler0(7 downto 0);
+  Trigger_Scaler0_high <= registered_scaler0(15 downto 8);
+
+  registered_scaler1 <= Registered_Trigger_Scalers(1);
+  Trigger_Scaler1_low <= registered_scaler1(7 downto 0);
+  Trigger_Scaler1_high <= registered_scaler1(15 downto 8);
+
+  registered_scaler2 <= Registered_Trigger_Scalers(2);
+  Trigger_Scaler2_low <= registered_scaler2(7 downto 0);
+  Trigger_Scaler2_high <= registered_scaler2(15 downto 8);
+
+  registered_scaler3 <= Registered_Trigger_Scalers(3);
+  Trigger_Scaler3_low <= registered_scaler3(7 downto 0);
+  Trigger_Scaler3_high <= registered_scaler3(15 downto 8);
+  
+
+  -- purpose: output register for data output to USB
+  -- type   : combinational
+  -- inputs : clk, User_RegDataOut
+  -- outputs: User_RegDataOut
+--         output_register: process (User_CLK, Output_Data) is
+--           begin                      -- process output_register
+--             if (User_CLK'event and User_CLK='1') then
+--               User_RegDataOut <= Output_Data;
+--             end if;
+--           end process output_register;
+
+  User_RegDataOut <= Output_Data;
+
+  DUT_Mask <= Internal_DUT_Mask;
+
+  DUT_Leds <= Internal_DUT_Leds;
+
+  DUT_Debug_Trigger <= Internal_Debug_Trigger;
+
+  DUT_Reset <= Internal_DUT_Reset;
+
+  Clock_Source_Select <= Internal_Clock_Source_Select;
+
+  Host_Trig_Inhibit <= Internal_Host_Trig_Inhibit;
+
+  calibration_trigger_interval <= Internal_Calibration_Trigger_Interval;
+
+  Beam_Trigger_OMask <= Internal_Beam_Trigger_OMask;
+  Beam_Trigger_AMask <= Internal_Beam_Trigger_AMask;
+  Beam_Trigger_VMask <= Internal_Beam_Trigger_VMask;
+
+  
+end architecture rtl;
+
+
+
diff --git a/legacy/EUDETdummy/hdl/TLU_Address_Map.vhd b/legacy/EUDETdummy/hdl/TLU_Address_Map.vhd
new file mode 100644
index 00000000..c3b75a35
--- /dev/null
+++ b/legacy/EUDETdummy/hdl/TLU_Address_Map.vhd
@@ -0,0 +1,144 @@
+--
+-- TLU_address_map.vhdl
+--
+-- package containg address map and type definitions for JRA1 TLU
+--
+-- Generated by script make_tlu_address_map.pl
+--
+-- Do not edit by hand! 
+-- Edit TLU_address_map.dat instead                                
+--
+-- Generated on Sun Aug 31 21:05:20 2008
+--
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+
+package TLU_Address_Map is
+
+  constant FIRMWARE_ID : std_logic_vector(7 downto 0) := "11111010" ; 
+  constant NUMBER_OF_DUT : integer := 6; -- how many devices
+                                  -- (including telescope devices)
+                                  -- in system
+											 
+  constant BEAM_TRIGGER_MASK_WIDTH : integer := 12; -- should be three times the # trigger
+  constant NUMBER_OF_BEAM_TRIGGERS : integer := 4;
+  
+  constant TIMESTAMP_WIDTH : integer := 64;
+  constant NUMBER_WORDS_IN_TIMESTAMP : integer := 4;
+  constant TRIGGER_COUNTER_WIDTH : integer := 32;
+  constant TRIGGER_DATA_WIDTH : integer := 32;
+  constant BUFFER_POINTER_WIDTH : integer := 16;    --  width of pointer
+  constant BUFFER_COUNTER_WIDTH : integer := 12;  -- this is the width of
+                                                    -- the counter,
+                                                    -- *NOT* the pointer
+                                                    -- ( which has to be
+                                                    -- an integer number
+                                                    -- of bytes )
+  constant BUFFER_DEPTH : integer := 4096;          -- 2^BUFFER_COUNTER_WIDTH
+  constant BUFFER_HEADROOM : integer := 8; -- leave this many entries in 
+                                           -- buffer when siganlling full
+  -----------------------------------------------------------------------------
+  -- define which bits in RESET_REGISTER reset which counters/pointers...
+  constant TIMESTAMP_RESET_BIT : integer := 0;
+  constant TRIGGER_COUNTER_RESET_BIT : integer := 1;
+  constant BUFFER_POINTER_RESET_BIT : integer := 2;
+  constant TRIGGER_FSM_RESET_BIT : integer := 3;
+  constant BEAM_TRIGGER_FSM_RESET_BIT : integer := 4;
+  constant DMA_CONTROLLER_RESET_BIT : integer := 5;
+  constant TRIGGER_SCALERS_RESET_BIT : integer := 6;
+
+ -----------------------------------------------------------------------------
+  -- Constants for internal trigger generation
+  constant CALIBRATION_TRIGGER_COUNTER_WIDTH : integer := 8;
+  constant SLOW_CLOCK_COUNTER_WIDTH : integer := 16;  -- needs to store 48000
+  constant SLOW_CLOCK_RATIO : std_logic_vector (SLOW_CLOCK_COUNTER_WIDTH-1 downto 0) := "1011101110000000";  -- ratio between 48MHz and 1kHz
+
+  -----------------------------------------------------------------------------
+  constant SCALER_NUMBER_OF_BYTES : integer := 2;
+  subtype TRIGGER_SCALER is std_logic_vector(8*SCALER_NUMBER_OF_BYTES - 1 downto 0);
+  type TRIGGER_SCALER_ARRAY is array ( NUMBER_OF_BEAM_TRIGGERS-1 downto 0) of TRIGGER_SCALER;
+  
+  -----------------------------------------------------------------------------
+    -- mapping of IO pins onto signals in design.
+  -----------------------------------------------------------------------------
+  type beam_trigger_inputs is array ( 0 to 3 ) of integer; 
+  -- this beam trigger mapping assumes use of Bonn discriminator board.
+  -- i.e. 1,0,3,2
+  constant BEAM_TRIG_IN_BIT : beam_trigger_inputs := (9,6,11,8);
+  
+  type dut_io is array ( 0 to NUMBER_OF_DUT-1 ) of integer;
+  constant TRIGGER_OUTPUT_BIT : dut_io := (1,0,3,2,5,4);
+  constant DUT_RESET_BIT : dut_io := (13,12,15,14,17,16);
+  constant DUT_BUSY_BIT : dut_io := (27,26,29,28,31,30);
+  constant DUT_CLOCK_BIT : dut_io := (38,41,43,42,44,46);
+  constant DUT_LED_BIT : dut_io := (18,21,20,23,22,25);
+
+  type gpio is array (0 to 4) of integer;  -- mapping for gpio bits
+  constant GPIO_BIT : gpio := (37,36,35,34,32);
+  -----------------------------------------------------------------------------
+
+  constant BASE_ADDRESS : std_logic_vector(15 downto 0) := "0010000000000000" ;
+
+  constant FIRMWARE_ID_ADDRESS : std_logic_vector(5 downto 0) := "000001" ;
+  constant DUT_BUSY_ADDRESS : std_logic_vector(5 downto 0) := "000010" ;
+  constant DUT_RESET_ADDRESS : std_logic_vector(5 downto 0) := "000011" ;
+  constant DUT_TRIGGER_ADDRESS : std_logic_vector(5 downto 0) := "000100" ;
+  constant DUT_MASK_ADDRESS : std_logic_vector(5 downto 0) := "000101" ;
+  constant TRIG_INHIBIT_ADDRESS : std_logic_vector(5 downto 0) := "000110" ;
+  constant RESET_REGISTER_ADDRESS : std_logic_vector(5 downto 0) := "000111" ;
+  constant INITIATE_READOUT_ADDRESS : std_logic_vector(5 downto 0) := "001000" ;
+  constant STATE_CAPTURE_ADDRESS : std_logic_vector(5 downto 0) := "001001" ;
+  constant TRIGGER_FSM_STATUS_ADDRESS : std_logic_vector(5 downto 0) := "001010" ;
+  constant BEAM_TRIGGER_FSM_STATUS_ADDRESS : std_logic_vector(5 downto 0) := "001011" ;
+  constant DMA_STATUS_ADDRESS : std_logic_vector(5 downto 0) := "001100" ;
+  constant REGISTERED_BUFFER_POINTER_ADDRESS_0 : std_logic_vector(5 downto 0) := "001101" ;
+  constant REGISTERED_BUFFER_POINTER_ADDRESS_1 : std_logic_vector(5 downto 0) := "001110" ;
+  constant REGISTERED_TIMESTAMP_ADDRESS_0 : std_logic_vector(5 downto 0) := "001111" ;
+  constant REGISTERED_TIMESTAMP_ADDRESS_1 : std_logic_vector(5 downto 0) := "010000" ;
+  constant REGISTERED_TIMESTAMP_ADDRESS_2 : std_logic_vector(5 downto 0) := "010001" ;
+  constant REGISTERED_TIMESTAMP_ADDRESS_3 : std_logic_vector(5 downto 0) := "010010" ;
+  constant REGISTERED_TIMESTAMP_ADDRESS_4 : std_logic_vector(5 downto 0) := "010011" ;
+  constant REGISTERED_TIMESTAMP_ADDRESS_5 : std_logic_vector(5 downto 0) := "010100" ;
+  constant REGISTERED_TIMESTAMP_ADDRESS_6 : std_logic_vector(5 downto 0) := "010101" ;
+  constant REGISTERED_TIMESTAMP_ADDRESS_7 : std_logic_vector(5 downto 0) := "010110" ;
+  constant REGISTERED_TRIGGER_COUNTER_ADDRESS_0 : std_logic_vector(5 downto 0) := "010111" ;
+  constant REGISTERED_TRIGGER_COUNTER_ADDRESS_1 : std_logic_vector(5 downto 0) := "011000" ;
+  constant REGISTERED_TRIGGER_COUNTER_ADDRESS_2 : std_logic_vector(5 downto 0) := "011001" ;
+  constant REGISTERED_TRIGGER_COUNTER_ADDRESS_3 : std_logic_vector(5 downto 0) := "011010" ;
+  constant BUFFER_POINTER_ADDRESS_0 : std_logic_vector(5 downto 0) := "011011" ;
+  constant BUFFER_POINTER_ADDRESS_1 : std_logic_vector(5 downto 0) := "011100" ;
+  constant TIMESTAMP_ADDRESS_0 : std_logic_vector(5 downto 0) := "011101" ;
+  constant TIMESTAMP_ADDRESS_1 : std_logic_vector(5 downto 0) := "011110" ;
+  constant TIMESTAMP_ADDRESS_2 : std_logic_vector(5 downto 0) := "011111" ;
+  constant TIMESTAMP_ADDRESS_3 : std_logic_vector(5 downto 0) := "100000" ;
+  constant TIMESTAMP_ADDRESS_4 : std_logic_vector(5 downto 0) := "100001" ;
+  constant TIMESTAMP_ADDRESS_5 : std_logic_vector(5 downto 0) := "100010" ;
+  constant TIMESTAMP_ADDRESS_6 : std_logic_vector(5 downto 0) := "100011" ;
+  constant TIMESTAMP_ADDRESS_7 : std_logic_vector(5 downto 0) := "100100" ;
+  constant TRIGGER_COUNTER_ADDRESS_0 : std_logic_vector(5 downto 0) := "100101" ;
+  constant TRIGGER_COUNTER_ADDRESS_1 : std_logic_vector(5 downto 0) := "100110" ;
+  constant TRIGGER_COUNTER_ADDRESS_2 : std_logic_vector(5 downto 0) := "100111" ;
+  constant TRIGGER_COUNTER_ADDRESS_3 : std_logic_vector(5 downto 0) := "101000" ;
+  constant BEAM_TRIGGER_AMASK_ADDRESS : std_logic_vector(5 downto 0) := "101001" ;
+  constant BEAM_TRIGGER_OMASK_ADDRESS : std_logic_vector(5 downto 0) := "101010" ;
+  constant BEAM_TRIGGER_VMASK_ADDRESS : std_logic_vector(5 downto 0) := "101011" ;
+  constant INTERNAL_TRIGGER_INTERVAL : std_logic_vector(5 downto 0) := "101100" ;
+  constant BEAM_TRIGGER_IN_ADDRESS : std_logic_vector(5 downto 0) := "101101" ;
+  constant DUT_RESET_DEBUG_ADDRESS : std_logic_vector(5 downto 0) := "101110" ;
+  constant DUT_DEBUG_TRIGGER_ADDRESS : std_logic_vector(5 downto 0) := "101111" ;
+  constant DUT_CLOCK_DEBUG_ADDRESS : std_logic_vector(5 downto 0) := "110000" ;
+  constant DUT_LED_ADDRESS : std_logic_vector(5 downto 0) := "110001" ;
+  constant CLOCK_SOURCE_SELECT_ADDRESS : std_logic_vector(5 downto 0) := "110010" ;
+  constant TRIGGER_IN0_COUNTER_0 : std_logic_vector(5 downto 0) := "110011" ;
+  constant TRIGGER_IN0_COUNTER_1 : std_logic_vector(5 downto 0) := "110100" ;
+  constant TRIGGER_IN1_COUNTER_0 : std_logic_vector(5 downto 0) := "110101" ;
+  constant TRIGGER_IN1_COUNTER_1 : std_logic_vector(5 downto 0) := "110110" ;
+  constant TRIGGER_IN2_COUNTER_0 : std_logic_vector(5 downto 0) := "110111" ;
+  constant TRIGGER_IN2_COUNTER_1 : std_logic_vector(5 downto 0) := "111000" ;
+  constant TRIGGER_IN3_COUNTER_0 : std_logic_vector(5 downto 0) := "111001" ;
+  constant TRIGGER_IN3_COUNTER_1 : std_logic_vector(5 downto 0) := "111010" ;
+  constant REGISTERED_PARTICLE_COUNTER_ADDRESS_0 : std_logic_vector(5 downto 0) := "111011" ;
+  constant REGISTERED_PARTICLE_COUNTER_ADDRESS_1 : std_logic_vector(5 downto 0) := "111100" ;
+  constant REGISTERED_PARTICLE_COUNTER_ADDRESS_2 : std_logic_vector(5 downto 0) := "111101" ;
+  constant REGISTERED_PARTICLE_COUNTER_ADDRESS_3 : std_logic_vector(5 downto 0) := "111110" ;
+end package TLU_Address_Map;
diff --git a/legacy/EUDETdummy/hdl/TLU_address_map_v0-2.vhdl b/legacy/EUDETdummy/hdl/TLU_address_map_v0-2.vhdl
new file mode 100644
index 00000000..1d2515db
--- /dev/null
+++ b/legacy/EUDETdummy/hdl/TLU_address_map_v0-2.vhdl
@@ -0,0 +1,263 @@
+--
+-- TLU_address_map_v0-2.vhdl
+--
+--
+-- Generated on Mon Feb  8 18:18:05 2010
+--
+--
+-- package containg address map and type definitions for JRA1 TLU
+--
+-- Generated by script make_tlu_address_map.pl
+--
+-- Do not edit by hand! 
+--
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+
+package TLU_Address_Map_v02 is
+  
+  constant NUMBER_OF_DUT : integer := 6; -- how many devices
+                                  -- (including telescope devices)
+                                  -- in system
+											 
+  constant BEAM_TRIGGER_MASK_WIDTH : integer := 12; -- should be three times the # trigger
+  constant NUMBER_OF_BEAM_TRIGGERS : integer := 4;
+  
+  constant TIMESTAMP_WIDTH : integer := 64;
+  constant TIMESTAMP_OUTPUT_WIDTH : integer := 16;
+  constant NUMBER_WORDS_IN_TIMESTAMP : integer := 4;
+  constant TRIGGER_COUNTER_WIDTH : integer := 32;
+  constant TRIGGER_DATA_WIDTH : integer := 32;
+  constant STROBE_COUNTER_WIDTH : integer := 32;  -- width for recurring strobe pulses.
+  constant BUFFER_POINTER_WIDTH : integer := 16;    --  width of pointer
+  constant BUFFER_COUNTER_WIDTH : integer := 12;  -- this is the width of
+                                                    -- the counter,
+                                                    -- *NOT* the pointer
+                                                    -- ( which has to be
+                                                    -- an integer number
+                                                    -- of bytes )
+  constant OUTPUT_BUFFER_COUNTER_WIDTH : integer := BUFFER_COUNTER_WIDTH+2;  -- pointer into 16-bit output of DPR
+  constant BUFFER_DEPTH : integer := 4096;          -- 2^BUFFER_COUNTER_WIDTH
+  constant BUFFER_HEADROOM : integer := 16; -- leave this many entries in 
+                                            -- buffer when siganlling full
+  constant NUM_WORDS_IN_LONGLONG : integer := 4;  -- Number of 16-bit words in a 64-bit word
+  
+  -----------------------------------------------------------------------------
+  -- define which bits in RESET_REGISTER reset which counters/pointers...
+  -----------------------------------------------------------------------------
+  constant TIMESTAMP_RESET_BIT : integer := 0;
+  constant TRIGGER_COUNTER_RESET_BIT : integer := 1;
+  constant BUFFER_POINTER_RESET_BIT : integer := 2;
+  constant TRIGGER_FSM_RESET_BIT : integer := 3;
+  constant BEAM_TRIGGER_FSM_RESET_BIT : integer := 4;
+  constant DMA_CONTROLLER_RESET_BIT : integer := 5;
+  constant TRIGGER_SCALERS_RESET_BIT : integer := 6;
+  constant CLOCK_GEN_RESET_BIT : integer := 7;
+
+  constant ENABLE_DMA_BIT : integer := 0;
+  constant RESET_DMA_COUNTER_BIT : integer := 1;
+  
+  -----------------------------------------------------------------------------
+  -- Constants for internal trigger generation
+  -----------------------------------------------------------------------------
+  constant CALIBRATION_TRIGGER_COUNTER_WIDTH : integer := 8;
+  constant SLOW_CLOCK_COUNTER_WIDTH : integer := 16;  -- needs to store 48000
+  --constant SLOW_CLOCK_RATIO : std_logic_vector (SLOW_CLOCK_COUNTER_WIDTH-1 downto 0) := "1011101110000000";  -- ratio between 48MHz and 1kHz
+  -- hack for Santos...
+  constant SLOW_CLOCK_RATIO : std_logic_vector (SLOW_CLOCK_COUNTER_WIDTH-1 downto 0) :=   "0000000111100000";  -- ratio between 48MHz and 100kHz
+
+  -----------------------------------------------------------------------------
+  -- define sub-types for internal trigger scalers.
+  -----------------------------------------------------------------------------
+  constant SCALER_NUMBER_OF_BYTES : integer := 2;
+  subtype TRIGGER_SCALER is std_logic_vector(8*SCALER_NUMBER_OF_BYTES - 1 downto 0);
+  type TRIGGER_SCALER_ARRAY is array ( NUMBER_OF_BEAM_TRIGGERS-1 downto 0) of TRIGGER_SCALER;
+  
+  -----------------------------------------------------------------------------
+  -- define which bits for I2C lines
+  -----------------------------------------------------------------------------
+  constant I2C_SDA_OUT_BIT : integer := 0;
+  constant I2C_SDA_IN_BIT : integer := 1;
+  constant I2C_SCL_OUT_BIT : integer := 2;
+  constant I2C_SCL_IN_BIT : integer := 3;
+  constant WIDTH_OF_I2C_SELECT_PORT : integer := 2;
+
+  -- I2C bus numbers ( write to register to select )
+  constant I2C_BUS_MOTHERBOARD  : integer := 3;  
+  constant I2C_BUS_HDMI         : integer := 2;
+  constant I2C_BUS_LEMO         : integer := 1;
+  constant I2C_BUS_DISPLAY         : integer := 0;
+
+  -- List I2C PCA9555 devices.
+  constant I2C_BUS_MOTHERBOARD_LED_IO : integer := 0;
+  constant I2C_BUS_MOTHERBOARD_TRIGGER_ENABLE_IPSEL_IO : integer := 1;
+  constant I2C_BUS_MOTHERBOARD_RESET_ENABLE_IO : integer := 2;
+  constant I2C_BUS_MOTHERBOARD_FRONT_PANEL_IO : integer := 3;
+  constant I2C_BUS_MOTHERBOARD_LCD_IO : integer := 4;
+
+  constant I2C_BUS_LEMO_RELAY_IO : integer := 0;
+
+  -- This is a bit of a cock-up. The PCA9555 attached to the LEDs changed address between version "b" ( = 1 ) and version "c" (= 0) 
+  constant I2C_BUS_LEMO_LED_IO_VB : integer := 1;
+  
+  constant I2C_BUS_LEMO_LED_IO : integer := 0;
+  constant I2C_BUS_LEMO_ADC : integer := 2;
+
+  -----------------------------------------------------------------------------
+    -- mapping of IO pins onto signals in design.
+  -----------------------------------------------------------------------------
+  type beam_trigger_inputs is array ( 0 to 3 ) of integer;
+  -- Assumes Bonn discriminator board ( ie 1,0,3,2)
+  constant BEAM_TRIG_IN_BIT : beam_trigger_inputs := (9,6,11,8);
+  
+  type dut_io is array ( 0 to NUMBER_OF_DUT-1 ) of integer;
+  constant TRIGGER_OUTPUT_BIT : dut_io := (1,0,3,2,5,4);
+  constant DUT_RESET_BIT : dut_io := (13,12,15,14,17,16);
+  constant DUT_BUSY_BIT : dut_io := (27,26,29,28,31,30);
+  constant DUT_CLOCK_BIT : dut_io := (38,41,43,42,44,46);
+
+ -- constant DUT_LED_BIT : dut_io := (18,21,20,23,22,25);
+  type i2c_select_array is array ( 0 to WIDTH_OF_I2C_SELECT_PORT-1)of integer ;
+  constant I2C_BUS_SELECT_IO_BITS : i2c_select_array := ( 25 , 22 );
+  constant I2C_SCL_OUT_IO_BIT : integer := 18;
+  constant I2C_SDA_OUT_IO_BIT : integer := 21;
+  constant I2C_SCL_IN_IO_BIT : integer := 20;
+  constant I2C_SDA_IN_IO_BIT : integer := 23;
+
+  constant I2C_FRONT_PANEL_INTERRUPT : integer := 32;
+  
+  type gpio is array (0 to 3) of integer;  -- mapping for gpio bits
+  constant GPIO_BIT : gpio := (37,36,35,34);
+  -----------------------------------------------------------------------------
+  constant FIRMWARE_ID : std_logic_vector(7 downto 0) := "01000100" ;
+-- FIRMWARE_ID = 68
+
+ constant BASE_ADDRESS : std_logic_vector(15 downto 0) := "0010000000000000" ;
+-- BASE_ADDRESS = 8192
+
+  constant NUMBER_OF_BITS_TO_DECODE : integer := 7 ;  -- how many bits of the address should be decoded?
+  constant FIRMWARE_ID_ADDRESS : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "0000000" ;
+  constant DUT_BUSY_ADDRESS : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "0000001" ;
+  constant DUT_RESET_ADDRESS : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "0000010" ;
+  constant DUT_TRIGGER_ADDRESS : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "0000011" ;
+  constant DUT_MASK_ADDRESS : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "0000100" ;
+  constant TRIG_INHIBIT_ADDRESS : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "0000101" ;
+  constant RESET_REGISTER_ADDRESS : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "0000110" ;
+  constant INITIATE_READOUT_ADDRESS : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "0000111" ;
+  constant STATE_CAPTURE_ADDRESS : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "0001000" ;
+  constant TRIGGER_FSM_STATUS_ADDRESS : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "0001001" ;
+  constant BEAM_TRIGGER_FSM_STATUS_ADDRESS : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "0001010" ;
+  constant DMA_STATUS_ADDRESS : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "0001011" ;
+  constant REGISTERED_BUFFER_POINTER_ADDRESS_BASE : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "0001100" ;
+  constant REGISTERED_BUFFER_POINTER_ADDRESS_BYTES : integer := 2 ;
+  constant REGISTERED_BUFFER_POINTER_ADDRESS_0 : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "0001100" ;
+  constant REGISTERED_BUFFER_POINTER_ADDRESS_1 : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "0001101" ;
+  constant REGISTERED_TIMESTAMP_ADDRESS_BASE : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "0001110" ;
+  constant REGISTERED_TIMESTAMP_ADDRESS_BYTES : integer := 8 ;
+  constant REGISTERED_TIMESTAMP_ADDRESS_0 : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "0001110" ;
+  constant REGISTERED_TIMESTAMP_ADDRESS_1 : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "0001111" ;
+  constant REGISTERED_TIMESTAMP_ADDRESS_2 : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "0010000" ;
+  constant REGISTERED_TIMESTAMP_ADDRESS_3 : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "0010001" ;
+  constant REGISTERED_TIMESTAMP_ADDRESS_4 : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "0010010" ;
+  constant REGISTERED_TIMESTAMP_ADDRESS_5 : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "0010011" ;
+  constant REGISTERED_TIMESTAMP_ADDRESS_6 : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "0010100" ;
+  constant REGISTERED_TIMESTAMP_ADDRESS_7 : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "0010101" ;
+  constant REGISTERED_TRIGGER_COUNTER_ADDRESS_BASE : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "0010110" ;
+  constant REGISTERED_TRIGGER_COUNTER_ADDRESS_BYTES : integer := 4 ;
+  constant REGISTERED_TRIGGER_COUNTER_ADDRESS_0 : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "0010110" ;
+  constant REGISTERED_TRIGGER_COUNTER_ADDRESS_1 : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "0010111" ;
+  constant REGISTERED_TRIGGER_COUNTER_ADDRESS_2 : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "0011000" ;
+  constant REGISTERED_TRIGGER_COUNTER_ADDRESS_3 : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "0011001" ;
+  constant BUFFER_POINTER_ADDRESS_BASE : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "0011010" ;
+  constant BUFFER_POINTER_ADDRESS_BYTES : integer := 2 ;
+  constant BUFFER_POINTER_ADDRESS_0 : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "0011010" ;
+  constant BUFFER_POINTER_ADDRESS_1 : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "0011011" ;
+  constant TIMESTAMP_ADDRESS_BASE : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "0011100" ;
+  constant TIMESTAMP_ADDRESS_BYTES : integer := 8 ;
+  constant TIMESTAMP_ADDRESS_0 : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "0011100" ;
+  constant TIMESTAMP_ADDRESS_1 : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "0011101" ;
+  constant TIMESTAMP_ADDRESS_2 : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "0011110" ;
+  constant TIMESTAMP_ADDRESS_3 : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "0011111" ;
+  constant TIMESTAMP_ADDRESS_4 : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "0100000" ;
+  constant TIMESTAMP_ADDRESS_5 : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "0100001" ;
+  constant TIMESTAMP_ADDRESS_6 : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "0100010" ;
+  constant TIMESTAMP_ADDRESS_7 : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "0100011" ;
+  constant TRIGGER_COUNTER_ADDRESS_BASE : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "0100100" ;
+  constant TRIGGER_COUNTER_ADDRESS_BYTES : integer := 4 ;
+  constant TRIGGER_COUNTER_ADDRESS_0 : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "0100100" ;
+  constant TRIGGER_COUNTER_ADDRESS_1 : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "0100101" ;
+  constant TRIGGER_COUNTER_ADDRESS_2 : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "0100110" ;
+  constant TRIGGER_COUNTER_ADDRESS_3 : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "0100111" ;
+  constant BEAM_TRIGGER_AMASK_ADDRESS : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "0101000" ;
+  constant BEAM_TRIGGER_OMASK_ADDRESS : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "0101001" ;
+  constant BEAM_TRIGGER_VMASK_ADDRESS : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "0101010" ;
+  constant INTERNAL_TRIGGER_INTERVAL : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "0101011" ;
+  constant BEAM_TRIGGER_IN_ADDRESS : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "0101100" ;
+  constant DUT_RESET_DEBUG_ADDRESS : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "0101101" ;
+  constant DUT_DEBUG_TRIGGER_ADDRESS : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "0101110" ;
+  constant DUT_CLOCK_DEBUG_ADDRESS : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "0101111" ;
+  constant DUT_I2C_BUS_SELECT_ADDRESS : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "0110000" ;
+  constant DUT_I2C_BUS_DATA_ADDRESS : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "0110001" ;
+  constant CLOCK_SOURCE_SELECT_ADDRESS : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "0110010" ;
+  constant TRIGGER_IN0_COUNTER_BASE : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "0110011" ;
+  constant TRIGGER_IN0_COUNTER_BYTES : integer := 2 ;
+  constant TRIGGER_IN0_COUNTER_0 : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "0110011" ;
+  constant TRIGGER_IN0_COUNTER_1 : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "0110100" ;
+  constant TRIGGER_IN1_COUNTER_BASE : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "0110101" ;
+  constant TRIGGER_IN1_COUNTER_BYTES : integer := 2 ;
+  constant TRIGGER_IN1_COUNTER_0 : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "0110101" ;
+  constant TRIGGER_IN1_COUNTER_1 : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "0110110" ;
+  constant TRIGGER_IN2_COUNTER_BASE : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "0110111" ;
+  constant TRIGGER_IN2_COUNTER_BYTES : integer := 2 ;
+  constant TRIGGER_IN2_COUNTER_0 : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "0110111" ;
+  constant TRIGGER_IN2_COUNTER_1 : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "0111000" ;
+  constant TRIGGER_IN3_COUNTER_BASE : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "0111001" ;
+  constant TRIGGER_IN3_COUNTER_BYTES : integer := 2 ;
+  constant TRIGGER_IN3_COUNTER_0 : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "0111001" ;
+  constant TRIGGER_IN3_COUNTER_1 : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "0111010" ;
+  constant REGISTERED_PARTICLE_COUNTER_ADDRESS_BASE : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "0111011" ;
+  constant REGISTERED_PARTICLE_COUNTER_ADDRESS_BYTES : integer := 4 ;
+  constant REGISTERED_PARTICLE_COUNTER_ADDRESS_0 : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "0111011" ;
+  constant REGISTERED_PARTICLE_COUNTER_ADDRESS_1 : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "0111100" ;
+  constant REGISTERED_PARTICLE_COUNTER_ADDRESS_2 : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "0111101" ;
+  constant REGISTERED_PARTICLE_COUNTER_ADDRESS_3 : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "0111110" ;
+  constant REGISTERED_AUX_COUNTER_ADDRESS_BASE : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "0111111" ;
+  constant REGISTERED_AUX_COUNTER_ADDRESS_BYTES : integer := 4 ;
+  constant REGISTERED_AUX_COUNTER_ADDRESS_0 : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "0111111" ;
+  constant REGISTERED_AUX_COUNTER_ADDRESS_1 : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "1000000" ;
+  constant REGISTERED_AUX_COUNTER_ADDRESS_2 : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "1000001" ;
+  constant REGISTERED_AUX_COUNTER_ADDRESS_3 : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "1000010" ;
+  constant HANDSHAKE_MODE_ADDRESS : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "1000011" ;
+  constant BUFFER_STOP_MODE_ADDRESS : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "1000100" ;
+  constant WRITE_TRIGGER_BITS_MODE_ADDRESS : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "1000101" ;
+  constant TRIGGER_PATTERN_ADDRESS_BASE : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "1000110" ;
+  constant TRIGGER_PATTERN_ADDRESS_BYTES : integer := 2 ;
+  constant TRIGGER_PATTERN_ADDRESS_0 : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "1000110" ;
+  constant TRIGGER_PATTERN_ADDRESS_1 : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "1000111" ;
+  constant AUX_PATTERN_ADDRESS_BASE : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "1001000" ;
+  constant AUX_PATTERN_ADDRESS_BYTES : integer := 2 ;
+  constant AUX_PATTERN_ADDRESS_0 : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "1001000" ;
+  constant AUX_PATTERN_ADDRESS_1 : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "1001001" ;
+  constant STROBE_WIDTH_ADDRESS_BASE : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "1001010" ;
+  constant STROBE_WIDTH_ADDRESS_BYTES : integer := 4 ;
+  constant STROBE_WIDTH_ADDRESS_0 : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "1001010" ;
+  constant STROBE_WIDTH_ADDRESS_1 : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "1001011" ;
+  constant STROBE_WIDTH_ADDRESS_2 : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "1001100" ;
+  constant STROBE_WIDTH_ADDRESS_3 : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "1001101" ;
+  constant STROBE_PERIOD_ADDRESS_BASE : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "1001110" ;
+  constant STROBE_PERIOD_ADDRESS_BYTES : integer := 4 ;
+  constant STROBE_PERIOD_ADDRESS_0 : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "1001110" ;
+  constant STROBE_PERIOD_ADDRESS_1 : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "1001111" ;
+  constant STROBE_PERIOD_ADDRESS_2 : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "1010000" ;
+  constant STROBE_PERIOD_ADDRESS_3 : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "1010001" ;
+  constant STROBE_ENABLE_ADDRESS : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "1010010" ;
+  constant TRIGGER_FSM_STATUS_VALUE_ADDRESS_BASE : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "1010011" ;
+  constant TRIGGER_FSM_STATUS_VALUE_ADDRESS_BYTES : integer := 3 ;
+  constant TRIGGER_FSM_STATUS_VALUE_ADDRESS_0 : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "1010011" ;
+  constant TRIGGER_FSM_STATUS_VALUE_ADDRESS_1 : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "1010100" ;
+  constant TRIGGER_FSM_STATUS_VALUE_ADDRESS_2 : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "1010101" ;
+  constant ENABLE_DUT_VETO_ADDRESS : std_logic_vector(NUMBER_OF_BITS_TO_DECODE-1 downto 0) := "1010110" ;
+
+  constant ADDRESS_MAP_SIZE : integer := 87 ;
+
+end package TLU_Address_Map_v02 ;
diff --git a/legacy/EUDETdummy/hdl/Trigger_Number_Error_Checker.vhd b/legacy/EUDETdummy/hdl/Trigger_Number_Error_Checker.vhd
new file mode 100755
index 00000000..8c361f43
--- /dev/null
+++ b/legacy/EUDETdummy/hdl/Trigger_Number_Error_Checker.vhd
@@ -0,0 +1,116 @@
+----------------------------------------------------------------------------------
+--! @file
+--
+-- Company: University of Bristol 
+-- Engineer: David Cussans
+-- 
+-- Create Date:    11/11/09
+-- Design Name: 
+-- Module Name:    Trigger_Number_Error_Checker - RTL 
+-- Project Name: 
+-- Target Devices: 
+-- Tool versions: 
+--! @brief Checks the trigger numbers being returned by the dummy dut.
+--
+--
+-- Dependencies: 
+--
+-- Revision: 
+-- Revision 0.01 - File Created
+-- Additional Comments: 
+--
+----------------------------------------------------------------------------------
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+use IEEE.NUMERIC_STD.ALL;
+
+
+-- constant definitions.
+
+
+
+---- Uncomment the following library declaration if instantiating
+---- any Xilinx primitives in this code.
+--library UNISIM;
+--use UNISIM.VComponents.all;
+
+entity Trigger_Number_Error_Checker is
+    Port ( 
+           CLK : in  STD_LOGIC;         --! this is the USB clock.
+	   RST : in STD_LOGIC;          --! Synchronous with clock
+           TriggerNumber : in STD_LOGIC_VECTOR(15 downto 0);  --! should
+                                                              --incremeent from
+                                                              --0
+           TriggerNumberStrobe : in STD_LOGIC;  --! Active high
+           TriggerCounter : out  STD_LOGIC_VECTOR(15 downto 0);  --!internal counter
+           ErrorFlag : out STD_LOGIC    --! goes high if internal number
+                                        --doesn't match
+           );
+
+end entity Trigger_Number_Error_Checker;
+
+architecture RTL of Trigger_Number_Error_Checker is
+
+
+  
+  signal InternalTriggerCounter : std_logic_vector(TriggerNumber'high downto 0);  -- internal
+                                                                          -- store
+                                                                          -- to compare with output from TLU
+
+  signal InternalErrorFlag : std_logic := '0';  -- VHDL can't read an out-port bodge
+
+  signal Registered_TriggerNumberStrobe0 ,Registered_TriggerNumberStrobe1 ,Registered_TriggerNumberStrobe2  : std_logic := '0';  
+                                        -- bodge 'cos I don't understand RTL...
+  signal Registered_TriggerNumber : std_logic_vector(15 downto 0);
+  
+begin
+
+  delay_triggerstrobe: process (clk , TriggerNumberStrobe ,Registered_TriggerNumberStrobe0 ,Registered_TriggerNumberStrobe1 , Registered_TriggerNumberStrobe2 )
+  begin  -- process delay_triggerstrobe
+    if rising_edge(clk) then
+      Registered_TriggerNumberStrobe0 <= TriggerNumberStrobe;
+      Registered_TriggerNumberStrobe1 <= Registered_TriggerNumberStrobe0;
+      Registered_TriggerNumberStrobe2 <= Registered_TriggerNumberStrobe1;
+    end if;
+  end process delay_triggerstrobe;
+
+  register_trigger_number: process (clk , TriggerNumber  )
+  begin  -- process register_trigger_number
+    if rising_edge(clk) then
+      Registered_TriggerNumber <= TriggerNumber;
+    end if;
+  end process register_trigger_number;
+
+  
+  check_error: process (clk ,Registered_TriggerNumberStrobe0 , Registered_TriggerNumber , InternalTriggerCounter)
+  begin  -- process busy_control
+    if (rising_edge(clk) and (Registered_TriggerNumberStrobe0 = '1'))  then
+      if ( unsigned(Registered_TriggerNumber) /= (unsigned(InternalTriggerCounter)+2) )then  --
+        -- temporary fix to check that checker is working.
+--              if ( unsigned(Registered_TriggerNumber) /= (unsigned(InternalTriggerCounter)+1) )then
+        InternalErrorFlag <= '1';
+      else
+        InternalErrorFlag <= '0';
+      end if;
+    end if;
+  end process check_error;
+
+  output_error: process (clk ,  Registered_TriggerNumberStrobe1 , InternalErrorFlag)
+  begin  -- process output_error
+    if (rising_edge(clk)and (Registered_TriggerNumberStrobe1 = '1')) then
+      ErrorFlag <=  InternalErrorFlag;
+    end if;   
+  end process output_error;
+
+  
+  register_trigger_number: process (clk ,  Registered_TriggerNumberStrobe2 , TriggerNumber )
+  begin  -- process output_error
+    if (rising_edge(clk)and (Registered_TriggerNumberStrobe2 = '1')) then
+      InternalTriggerCounter <= TriggerNumber;
+    end if;   
+  end process output_error;
+
+  TriggerCounter <= InternalTriggerCounter;
+  
+end RTL;
+
diff --git a/legacy/EUDETdummy/hdl/ZestSC1_Host.vhd b/legacy/EUDETdummy/hdl/ZestSC1_Host.vhd
new file mode 100644
index 00000000..f7b1bf96
--- /dev/null
+++ b/legacy/EUDETdummy/hdl/ZestSC1_Host.vhd
@@ -0,0 +1,652 @@
+-- ZestSC1 Host Interface Code
+-- File name: ZestSC1_Host.vhd
+-- Version: 1.10
+-- Date: 14/3/2006
+
+-- Copyright (C) 2005 Orange Tree Technologies Ltd. All rights reserved.
+-- Orange Tree Technologies grants the purchaser of a ZestSC1 the right to use and
+-- modify this logic core in any form including but not limited to VHDL source code or
+-- EDIF netlist in FPGA designs that target the ZestSC1.
+-- Orange Tree Technologies prohibits the use of this logic core or any modification of
+-- it in any form including but not limited to VHDL source code or EDIF netlist in
+-- FPGA or ASIC designs that target any other hardware unless the purchaser of the
+-- ZestSC1 has purchased the appropriate licence from Orange Tree Technologies.
+-- Contact Orange Tree Technologies if you want to purchase such a licence.
+
+--*****************************************************************************************
+--**
+--**  Disclaimer: LIMITED WARRANTY AND DISCLAIMER. These designs are
+--**              provided to you "as is". Orange Tree Technologies and its licensors 
+--**              make and you receive no warranties or conditions, express, implied, 
+--**              statutory or otherwise, and Orange Tree Technologies specifically 
+--**              disclaims any implied warranties of merchantability, non-infringement,
+--**              or fitness for a particular purpose. Orange Tree Technologies does not
+--**              warrant that the functions contained in these designs will meet your 
+--**              requirements, or that the operation of these designs will be 
+--**              uninterrupted or error free, or that defects in the Designs will be 
+--**              corrected. Furthermore, Orange Tree Technologies does not warrant or 
+--**              make any representations regarding use or the results of the use of the 
+--**              designs in terms of correctness, accuracy, reliability, or otherwise.                                               
+--**
+--**              LIMITATION OF LIABILITY. In no event will Orange Tree Technologies 
+--**              or its licensors be liable for any loss of data, lost profits, cost or 
+--**              procurement of substitute goods or services, or for any special, 
+--**              incidental, consequential, or indirect damages arising from the use or 
+--**              operation of the designs or accompanying documentation, however caused 
+--**              and on any theory of liability. This limitation will apply even if 
+--**              Orange Tree Technologies has been advised of the possibility of such 
+--**              damage. This limitation shall apply notwithstanding the failure of the 
+--**              essential purpose of any limited remedies herein.
+--**
+--*****************************************************************************************
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+use IEEE.STD_LOGIC_ARITH.ALL;
+use IEEE.STD_LOGIC_UNSIGNED.ALL;
+
+library UNISIM;
+use UNISIM.VComponents.all;
+
+entity ZestSC1_Host is
+    port (
+        -- FPGA pin connections
+        USB_StreamCLK : in std_logic;
+        USB_StreamFIFOADDR : out std_logic_vector(1 downto 0);
+        USB_StreamPKTEND_n : out std_logic;
+        USB_StreamFlags_n : in std_logic_vector(2 downto 0);
+        USB_StreamSLOE_n : out std_logic;
+        USB_StreamSLRD_n : out std_logic;
+        USB_StreamSLWR_n : out std_logic;
+        USB_StreamFX2Rdy : in std_logic;
+--        USB_StreamData : inout std_logic_vector(15 downto 0);
+        USB_StreamData : out std_logic_vector(15 downto 0);
+
+        USB_RegCLK : in std_logic;
+        USB_RegAddr : in std_logic_vector(15 downto 0);
+        USB_RegData : inout std_logic_vector(7 downto 0);
+        USB_RegOE_n : in std_logic;
+        USB_RegRD_n : in std_logic;
+        USB_RegWR_n : in std_logic;
+        USB_RegCS_n : in std_logic;
+
+        USB_Interrupt : out std_logic;
+
+        -- User connections
+        -- Streaming interface
+        User_CLK : out std_logic;
+        User_RST : out std_logic;
+        DCMLocked : out std_logic;
+
+        User_StreamBusGrantLength : in std_logic_vector(11 downto 0);
+
+        User_StreamDataIn : out std_logic_vector(15 downto 0);
+        User_StreamDataInWE : out std_logic;
+        User_StreamDataInBusy : in std_logic;
+
+        User_StreamDataOut : in std_logic_vector(15 downto 0);
+        User_StreamDataOutWE : in std_logic;
+        User_StreamDataOutBusy : out std_logic;
+
+        -- Register interface
+        User_RegAddr : out std_logic_vector(15 downto 0);
+        User_RegDataIn : out std_logic_vector(7 downto 0);
+        User_RegDataOut : in std_logic_vector(7 downto 0);
+        User_RegWE : out std_logic;
+        User_RegRE : out std_logic;
+
+        -- Interrupts
+        User_Interrupt : in std_logic
+    );
+end ZestSC1_Host;
+
+architecture arch of ZestSC1_Host is
+
+    -- Reset block
+    component ROC
+        port
+        (
+            O : out std_logic
+        );
+    end component;
+    attribute box_type : string;
+    attribute box_type of ROC: component is "black_box";
+
+    -- DCMs
+    component DCM 
+      -- synthesis translate_off 
+      generic (CLK_FEEDBACK : string := "1X"; 
+               CLKDV_DIVIDE : real := 2.0;
+               CLKFX_DIVIDE : integer := 1;
+               CLKFX_MULTIPLY : integer := 4;
+               CLKIN_DIVIDE_BY_2 : boolean := FALSE;
+               CLKIN_PERIOD : real := 20.0;
+               CLKOUT_PHASE_SHIFT : string := "NONE"; 
+               DESKEW_ADJUST : string := "SYSTEM_SYNCHRONOUS"; 
+               DFS_FREQUENCY_MODE : string := "LOW"; 
+               DLL_FREQUENCY_MODE : string := "LOW"; 
+               DSS_MODE : string := "NONE"; 
+               DUTY_CYCLE_CORRECTION : boolean := TRUE;
+               PHASE_SHIFT : integer := 0; 
+               STARTUP_WAIT : boolean := FALSE);
+      -- synthesis translate_on 
+      port (CLK0 : out std_ulogic; 
+            CLK180 : out std_ulogic; 
+            CLK270 : out std_ulogic; 
+            CLK2X : out std_ulogic; 
+            CLK2X180 : out std_ulogic; 
+            CLK90 : out std_ulogic; 
+            CLKDV : out std_ulogic; 
+            CLKFX : out std_ulogic; 
+            CLKFX180 : out std_ulogic; 
+            LOCKED : out std_ulogic; 
+            PSDONE : out std_ulogic; 
+            STATUS : out std_logic_vector(7 downto 0); 
+            CLKFB : in std_ulogic; 
+            CLKIN : in std_ulogic; 
+            DSSEN : in std_ulogic; 
+            PSCLK : in std_ulogic; 
+            PSEN : in std_ulogic; 
+            PSINCDEC : in std_ulogic; 
+            RST : in std_ulogic); 
+    end component; 
+    attribute box_type of DCM: component is "black_box";
+
+    attribute CLK_FEEDBACK : string; 
+    attribute CLKDV_DIVIDE : real; 
+    attribute CLKFX_DIVIDE : integer; 
+    attribute CLKFX_MULTIPLY : integer; 
+    attribute CLKIN_DIVIDE_BY_2 : boolean; 
+    attribute CLKOUT_PHASE_SHIFT : string; 
+    attribute DESKEW_ADJUST : string; 
+    attribute DFS_FREQUENCY_MODE : string; 
+    attribute DLL_FREQUENCY_MODE : string; 
+    attribute DSS_MODE : string; 
+    attribute DUTY_CYCLE_CORRECTION : boolean; 
+    attribute PHASE_SHIFT : integer; 
+    attribute STARTUP_WAIT : boolean; 
+--    attribute FACTORY_JF : integer;
+    
+    -- Component Attribute specification for Stream clock DCM 
+    attribute CLK_FEEDBACK of StreamDCM: label is "1X"; 
+    attribute CLKDV_DIVIDE of StreamDCM: label is 2.0;
+    attribute CLKFX_DIVIDE of StreamDCM: label is 1; 
+    attribute CLKFX_MULTIPLY of StreamDCM: label is 2; 
+    attribute CLKIN_DIVIDE_BY_2 of StreamDCM: label is FALSE; 
+    attribute CLKOUT_PHASE_SHIFT of StreamDCM: label is "NONE";
+--    attribute CLKOUT_PHASE_SHIFT of StreamDCM: label is "FIXED"; 
+    attribute DESKEW_ADJUST of StreamDCM : label is "SYSTEM_SYNCHRONOUS"; 
+    attribute DFS_FREQUENCY_MODE of StreamDCM: label is "LOW"; 
+    attribute DLL_FREQUENCY_MODE of StreamDCM: label is "LOW"; 
+    attribute DSS_MODE of StreamDCM: label is "NONE"; 
+    attribute DUTY_CYCLE_CORRECTION of StreamDCM: label is TRUE;
+    attribute PHASE_SHIFT of StreamDCM: label is 0;
+--    attribute PHASE_SHIFT of StreamDCM: label is -13; 
+    attribute STARTUP_WAIT of StreamDCM: label is FALSE;
+--    attribute FACTORY_JF of StreamDCM: label is x"8080";
+    
+    -- Component Attribute specification for Register clock DCM 
+    attribute CLK_FEEDBACK of RegDCM: label is "1X"; 
+    attribute CLKDV_DIVIDE of RegDCM: label is 2.0;
+    attribute CLKFX_DIVIDE of RegDCM: label is 1; 
+    attribute CLKFX_MULTIPLY of RegDCM: label is 2; 
+    attribute CLKIN_DIVIDE_BY_2 of RegDCM: label is FALSE; 
+    attribute CLKOUT_PHASE_SHIFT of RegDCM: label is "NONE"; 
+    attribute DESKEW_ADJUST of RegDCM : label is "SYSTEM_SYNCHRONOUS"; 
+    attribute DFS_FREQUENCY_MODE of RegDCM: label is "LOW"; 
+    attribute DLL_FREQUENCY_MODE of RegDCM: label is "LOW"; 
+    attribute DSS_MODE of RegDCM: label is "NONE"; 
+    attribute DUTY_CYCLE_CORRECTION of RegDCM: label is TRUE;
+    attribute PHASE_SHIFT of RegDCM: label is 0; 
+    attribute STARTUP_WAIT of RegDCM: label is FALSE;
+
+    -- Declare global clock buffer
+    component BUFG 
+        port (I   : in std_logic;
+              O   : out std_logic
+	        ); 
+    end component;
+    attribute box_type of BUFG: component is "black_box";
+
+    -- General signals
+    signal RST : std_logic;
+    signal StreamCLK : std_logic;
+    signal StreamCLKFB : std_logic;
+    signal RegCLK : std_logic;
+    signal RegCLKFB : std_logic;
+
+    -- Streaming interface
+--    signal StreamRead : std_logic;
+    signal StreamWrite : std_logic;
+    signal StreamDataIn : std_logic_vector(15 downto 0);
+    signal StreamDataOut : std_logic_vector(15 downto 0);
+    signal DataOutRegFull : std_logic;
+    signal StreamBusy : std_logic;
+    signal StreamDataAvailable : std_logic;
+    signal StreamReadStrobe : std_logic;
+    signal WriteToFIFOIn : std_logic;
+    signal StreamWriteStrobe : std_logic;
+    signal ReadFromFIFOOut : std_logic;
+    signal ReadOK : std_logic;
+    signal WriteOK : std_logic;
+--    signal ReadCycle : std_logic;
+    signal WriteCycle : std_logic;
+    signal User_DataInStrobe : std_logic;
+    signal GrantPeriod : std_logic_vector(11 downto 0);
+    signal Granted : std_logic;
+    signal LastDir : std_logic;
+
+    signal FX2FIFOFull : std_logic;
+    signal FX2FIFOEmpty : std_logic;
+
+    type FIFO_ARRAY_TYPE is array(15 downto 0) of std_logic_vector(15 downto 0);
+    signal FIFOOut : FIFO_ARRAY_TYPE;
+    signal FIFOIn : FIFO_ARRAY_TYPE;
+    signal FIFOInEmpty : std_logic;
+
+    signal FIFOOutWriteCount : std_logic_vector(3 downto 0);
+    signal FIFOOutWriteCountG : std_logic_vector(3 downto 0);
+    signal RegFIFOOutWriteCountG : std_logic_vector(3 downto 0);
+    signal FIFOOutWriteCountInUSB : std_logic_vector(3 downto 0);
+
+    signal FIFOOutReadCount : std_logic_vector(3 downto 0);
+    signal FIFOOutReadCountG : std_logic_vector(3 downto 0);
+    signal RegFIFOOutReadCountG : std_logic_vector(3 downto 0);
+    signal FIFOOutReadCountInUser : std_logic_vector(3 downto 0);
+
+    signal FIFOInWriteCount : std_logic_vector(3 downto 0);
+    signal FIFOInWriteCountG : std_logic_vector(3 downto 0);
+    signal RegFIFOInWriteCountG : std_logic_vector(3 downto 0);
+    signal FIFOInWriteCountInUser : std_logic_vector(3 downto 0);
+
+    signal FIFOInReadCount : std_logic_vector(3 downto 0);
+    signal FIFOInReadCountG : std_logic_vector(3 downto 0);
+    signal RegFIFOInReadCountG : std_logic_vector(3 downto 0);
+    signal FIFOInReadCountInUSB : std_logic_vector(3 downto 0);
+
+    signal FIFOOutDataCount : std_logic_vector(3 downto 0);
+    signal FIFOInDataCount : std_logic_vector(3 downto 0);
+
+    -- Memory mapped interface
+    signal RegCS : std_logic;
+    signal RegLastCS : std_logic;
+    signal RegOE : std_logic;
+    signal RegLastOE : std_logic;
+    signal RegWR : std_logic;
+    signal RegLastWR : std_logic;
+    signal RegRD : std_logic;
+    signal RegLastRD : std_logic;
+    signal RegOutput : std_logic_vector(7 downto 0);
+
+    -- Counter for interrupt generation
+    signal IntCounter : std_logic_vector(2 downto 0);
+
+begin
+
+    -- Generate resets and clocks
+    ROC_1 : ROC port map ( O => RST );
+    User_RST <= RST;
+    User_CLK <= RegCLK;
+
+    -------------------------
+    -- Streaming interface --
+    -------------------------
+
+    -- Control signals
+    USB_StreamPKTEND_n <= '1';
+    USB_StreamSLRD_n <= not StreamReadStrobe;
+    USB_StreamSLWR_n <= not StreamWriteStrobe;
+    USB_StreamSLOE_n <= '1'; -- modify for write stream data only 
+
+    USB_StreamData <= StreamDataOut; -- modify for output only 
+
+--    USB_StreamFIFOADDR <= "00" when (ReadCycle='1' or StreamRead='1') else "10";
+    USB_StreamFIFOADDR <= "10";
+
+
+    -- Generate FIFO full and empty flags for the FX2
+    -- This must be done internally because the timing of the FX2 flags
+    -- and read/write strobes is such that we cannot respond to the flags
+    -- in one clock cycle.  The flags from the FX2 are therefore set to
+    -- one empty place (full flag) and one available word (empty flag).
+    process (RST, StreamCLK)
+    begin
+        if (RST='1') then
+            FX2FIFOFull <= '1';
+            FX2FIFOEmpty <= '1';
+        elsif (StreamCLK'event and StreamCLK='1') then
+            if (USB_StreamFlags_n(0)='1' and USB_StreamFX2Rdy='1') then
+                FX2FIFOEmpty <= '0';
+            elsif (StreamReadStrobe='1') then
+                FX2FIFOEmpty <= '1';
+            end if;
+
+            if (USB_StreamFlags_n(1)='1' and USB_StreamFX2Rdy='1') then
+                FX2FIFOFull <= '0';
+            elsif (StreamWriteStrobe='1') then
+                FX2FIFOFull <= '1';
+            end if;
+        end if;
+    end process;
+
+    -- Read and write strobe generation and registering of input and output data
+    StreamReadStrobe <= '0'; -- modify for write only
+    
+    WriteToFIFOIn <= '0'; -- modify for write only
+
+    StreamWriteStrobe <= '1' when (WriteCycle='1') else '0';
+    ReadFromFIFOOut <= '1' when (WriteCycle='0' and DataOutRegFull='0' and
+                                 StreamDataAvailable='1') else '0';
+    WriteOK <= '1' when FX2FIFOFull='0' and (StreamDataAvailable='1' or DataOutRegFull='1') and
+                        USB_StreamFX2Rdy='1' and StreamWrite='1' else '0';
+    process (RST, StreamCLK)
+    begin
+        if (RST='1') then
+            DataOutRegFull <= '0';
+        elsif (StreamCLK'event and StreamCLK='1') then
+            if (ReadFromFIFOOut='1') then
+                StreamDataOut <= FIFOOut(conv_integer(FIFOOutReadCount));
+                DataOutRegFull <= '1';
+            elsif (StreamWriteStrobe='1') then
+                DataOutRegFull <= '0';
+            end if;
+        end if;
+    end process;
+
+    -- Control individual reads and writes from/to the FX2
+    process (RST, StreamCLK)
+    begin
+        if (RST='1') then
+--            ReadCycle <= '0';
+            WriteCycle <= '0';
+        elsif (StreamCLK'event and StreamCLK='1') then
+
+--          ReadCycle <= '0';             -- modify for write only.
+
+            if (WriteCycle='0') then
+                WriteCycle <= WriteOK;
+            else
+                WriteCycle <= '0';
+            end if;
+
+        end if;
+    end process;
+
+    -- Manage transfers
+    -- Checks whether a transfer is needed and possible
+    -- Use round robin to alternate between reads and writes
+    --
+    -- GrantLength limits the length of time the streaming bus is granted to
+    -- reads or writes.  Set it low for rapid bus turn arounds at the expense
+    -- of overall bandwidth.  Set high for larger maximum bandwidth at the 
+    -- expense of slower bus turnarounds
+    -- DGC, Dec 09.
+    process (RST, StreamCLK)
+    begin
+        if (RST='1') then
+--            StreamRead <= '0';
+            StreamWrite <= '0';
+            GrantPeriod <= X"000";
+            Granted <= '0';
+            FIFOInWriteCount <= X"0";
+            FIFOOutReadCount <= X"0";
+            LastDir <= '0';
+
+        elsif (StreamCLK'event and StreamCLK='1') then
+
+--          StreamRead <= '0';
+          
+            if (Granted='0') then
+
+              -- modify for output data only
+              if (FX2FIFOFull='0' and (StreamDataAvailable='1' or DataOutRegFull='1')) then
+                    -- EP6 full flag is clear and we have data
+                    StreamWrite <= '1';
+--                    GrantPeriod <= User_StreamBusGrantLength; -- no point in
+--                    loading grant period - since don't do anything with it.
+                    LastDir <= '1';
+                    Granted <= '1';
+                end if;
+
+            end if;
+
+            if (WriteToFIFOIn='1') then
+                FIFOInWriteCount <= FIFOInWriteCount + 1;
+            end if;
+            if (ReadFromFIFOOut='1') then
+                FIFOOutReadCount <= FIFOOutReadCount + 1;
+            end if;
+
+        end if;
+    end process;
+
+    -- Short FIFOs for crossing clock domains
+    -- User domain -> USB
+    process (RST, RegCLK)
+    begin
+        if (RST='1') then
+            FIFOOutWriteCount <= "0000";
+        elsif (RegCLK'event and RegCLK='1') then
+            if (User_StreamDataOutWE='1') then
+                FIFOOutWriteCount <= FIFOOutWriteCount + 1;
+            end if;
+        end if;
+    end process;
+    process (RegCLK)
+    begin
+        if (RegCLK'event and RegCLK='1') then
+            if (User_StreamDataOutWE='1') then
+                FIFOOut(conv_integer(FIFOOutWriteCount)) <= User_StreamDataOut;
+            end if;
+        end if;
+    end process;
+
+    -- Note fixup for behavioural simulation - holds the data during write strobe
+    User_StreamDataIn <= ( others => '0' );
+    User_StreamDataInWE <= User_DataInStrobe;
+    User_DataInStrobe <= not FIFOInEmpty and not User_StreamDataInBusy;
+
+    -- Generate busy flag to User
+    -- Grey code the DataOut read counter, cross clock domain and decode
+    FIFOOutReadCountG <= FIFOOutReadCount(3) &
+                         (FIFOOutReadCount(3) xor FIFOOutReadCount(2)) &
+                         (FIFOOutReadCount(2) xor FIFOOutReadCount(1)) &
+                         (FIFOOutReadCount(1) xor FIFOOutReadCount(0));
+    process (RST, RegCLK)
+    begin
+        if (RST='1') then
+            RegFIFOOutReadCountG <= "0000";
+        elsif (RegCLK'event and RegClk='1') then
+            RegFIFOOutReadCountG <= FIFOOutReadCountG;
+        end if;
+    end process;
+    FIFOOutReadCountInUser <= RegFIFOOutReadCountG(3) &
+                              (RegFIFOOutReadCountG(3) xor RegFIFOOutReadCountG(2)) &
+                              (RegFIFOOutReadCountG(3) xor RegFIFOOutReadCountG(2) xor RegFIFOOutReadCountG(1)) &
+                              (RegFIFOOutReadCountG(3) xor RegFIFOOutReadCountG(2) xor RegFIFOOutReadCountG(1) xor RegFIFOOutReadCountG(0));
+    FIFOOutDataCount <= FIFOOutWriteCount-FIFOOutReadCountInUser;
+    User_StreamDataOutBusy <= '1' when (FIFOOutDataCount(3)='1') else '0';
+
+    -- Generate write enable strobe to the User
+    -- Grey code the DataIn write counter, cross clock domain and decode
+    FIFOInWriteCountG <= FIFOInWriteCount(3) &
+                         (FIFOInWriteCount(3) xor FIFOInWriteCount(2)) &
+                         (FIFOInWriteCount(2) xor FIFOInWriteCount(1)) &
+                         (FIFOInWriteCount(1) xor FIFOInWriteCount(0));
+    process (RST, RegCLK)
+    begin
+        if (RST='1') then
+            RegFIFOInWriteCountG <= "0000";
+        elsif (RegCLK'event and RegClk='1') then
+            RegFIFOInWriteCountG <= FIFOInWriteCountG;
+        end if;
+    end process;
+    FIFOInWriteCountInUser <= RegFIFOInWriteCountG(3) &
+                              (RegFIFOInWriteCountG(3) xor RegFIFOInWriteCountG(2)) &
+                              (RegFIFOInWriteCountG(3) xor RegFIFOInWriteCountG(2) xor RegFIFOInWriteCountG(1)) &
+                              (RegFIFOInWriteCountG(3) xor RegFIFOInWriteCountG(2) xor RegFIFOInWriteCountG(1) xor RegFIFOInWriteCountG(0));
+    FIFOInEmpty <= '1' when FIFOInWriteCountInUser=FIFOInReadCount else '0';
+
+    -- Generate 'data available' flag to the USB chip
+    FIFOOutWriteCountG <= FIFOOutWriteCount(3) &
+                          (FIFOOutWriteCount(3) xor FIFOOutWriteCount(2)) &
+                          (FIFOOutWriteCount(2) xor FIFOOutWriteCount(1)) &
+                          (FIFOOutWriteCount(1) xor FIFOOutWriteCount(0));
+    process (RST, StreamCLK)
+    begin
+        if (RST='1') then
+            RegFIFOOutWriteCountG <= "0000";
+        elsif (StreamCLK'event and StreamCLK='1') then
+            RegFIFOOutWriteCountG <= FIFOOutWriteCountG;
+        end if;
+    end process;
+    FIFOOutWriteCountInUSB <= RegFIFOOutWriteCountG(3) &
+                              (RegFIFOOutWriteCountG(3) xor RegFIFOOutWriteCountG(2)) &
+                              (RegFIFOOutWriteCountG(3) xor RegFIFOOutWriteCountG(2) xor RegFIFOOutWriteCountG(1)) &
+                              (RegFIFOOutWriteCountG(3) xor RegFIFOOutWriteCountG(2) xor RegFIFOOutWriteCountG(1) xor RegFIFOOutWriteCountG(0));
+    StreamDataAvailable <= '1' when (FIFOOutWriteCountInUSB/=FIFOOutReadCount) else '0';
+
+    -- Generate 'space available' flag to the USB chip
+    FIFOInReadCountG <= FIFOInReadCount(3) &
+                        (FIFOInReadCount(3) xor FIFOInReadCount(2)) &
+                        (FIFOInReadCount(2) xor FIFOInReadCount(1)) &
+                        (FIFOInReadCount(1) xor FIFOInReadCount(0));
+    process (RST, StreamCLK)
+    begin
+        if (RST='1') then
+            RegFIFOInReadCountG <= "0000";
+        elsif (StreamCLK'event and StreamCLK='1') then
+            RegFIFOInReadCountG <= FIFOInReadCountG;
+        end if;
+    end process;
+    FIFOInReadCountInUSB <= RegFIFOInReadCountG(3) &
+                            (RegFIFOInReadCountG(3) xor RegFIFOInReadCountG(2)) &
+                            (RegFIFOInReadCountG(3) xor RegFIFOInReadCountG(2) xor RegFIFOInReadCountG(1)) &
+                            (RegFIFOInReadCountG(3) xor RegFIFOInReadCountG(2) xor RegFIFOInReadCountG(1) xor RegFIFOInReadCountG(0));
+    FIFOInDataCount <= FIFOInWriteCount-FIFOInReadCountInUSB;
+    StreamBusy <= '1' when (FIFOInDataCount(3)='1') else '0';
+
+
+    -----------------------------
+    -- Memory mapped interface --
+    -----------------------------
+    User_RegAddr <= USB_RegAddr - X"2000"; -- 8051 external memory starts at 0x2000
+    User_RegWE <= RegCS and RegLastCS and RegWR and RegLastWR;
+    User_RegRE <= RegCS and not RegLastCS and RegRD and not RegLastRD;
+    User_RegDataIn <= USB_RegData;
+
+    RegCS <= not USB_RegCS_n;
+    RegOE <= not USB_RegOE_n;
+    RegWR <= not USB_RegWR_n;
+    RegRD <= not USB_RegRD_n;
+    process (RegCLK)
+    begin
+        if (RegCLK'event and RegCLK='1') then
+            RegLastCS <= RegCS;
+            RegLastRD <= RegRD;
+            RegLastWR <= RegWR;
+            RegLastOE <= RegOE;
+        end if;
+    end process;
+
+    -- Register read interface
+    process (RegCLK)
+    begin
+        if (RegCLK'event and RegCLK='1') then
+            RegOutput <= User_RegDataOut;
+        end if;
+    end process;
+
+    USB_RegData <= RegOutput when (RegRD='1' and RegCS='1' and RegOE='1') else (others=>'Z');
+
+
+    ---------------------------
+    -- Generate an interrupt --
+    ---------------------------
+    -- Interrupt is active low, edge triggered and must be held for
+    -- 4 cycles of the register interface clock
+    process (RST, RegCLK)
+    begin
+        if (RST='1') then
+            IntCounter <= "000";
+        elsif (RegCLK'event and RegCLK='1') then
+            if (User_Interrupt='1') then
+                IntCounter <= "100";
+            elsif (IntCounter/="000") then
+                IntCounter <= IntCounter + 1;
+            end if;
+        end if;
+    end process;
+    USB_Interrupt <= not IntCounter(2);
+
+
+    -------------------------------
+    -- Instatiate DCMs on clocks --
+    -------------------------------
+    StreamDCM : DCM 
+        -- synthesis translate_off 
+        generic map(CLK_FEEDBACK => "1X", 
+                    CLKDV_DIVIDE => 2.0,
+                    CLKFX_DIVIDE => 1,
+                    CLKFX_MULTIPLY => 2,
+                    CLKIN_DIVIDE_BY_2 => false,
+                    CLKOUT_PHASE_SHIFT => "NONE",
+--                    CLKOUT_PHASE_SHIFT => "NONE",
+                    CLKIN_PERIOD => 20.833,
+                    CLKOUT_PHASE_SHIFT => "FIXED", 
+                    DESKEW_ADJUST => "SYSTEM_SYNCHRONOUS", 
+                    DFS_FREQUENCY_MODE => "LOW", 
+                    DLL_FREQUENCY_MODE => "LOW", 
+                    DSS_MODE => "NONE", 
+                    DUTY_CYCLE_CORRECTION => true,
+--                    PHASE_SHIFT => -13,
+                    PHASE_SHIFT => 0,
+--                    FACTORY_JF => x"8080",
+                    STARTUP_WAIT => false)
+        -- synthesis translate_on 
+        port map (CLK0 => StreamCLKFB,
+                  CLKFB => StreamCLK,
+                  CLKIN => USB_StreamCLK, 
+                  DSSEN => '0',
+                  PSCLK => '0',
+                  PSEN => '0',
+                  PSINCDEC => '0',
+                  RST => RST); 
+    StreamCLK_BUFG: BUFG
+        port map (
+            I => StreamCLKFB,
+            O => StreamCLK
+        );
+
+    RegDCM : DCM 
+        -- synthesis translate_off 
+        generic map(CLK_FEEDBACK => "1X", 
+                    CLKDV_DIVIDE => 2.0,
+                    CLKFX_DIVIDE => 1,
+                    CLKFX_MULTIPLY => 2,
+                    CLKIN_DIVIDE_BY_2 => false,
+                    CLKOUT_PHASE_SHIFT => "NONE", 
+                    DESKEW_ADJUST => "SYSTEM_SYNCHRONOUS", 
+                    DFS_FREQUENCY_MODE => "LOW", 
+                    DLL_FREQUENCY_MODE => "LOW", 
+                    DSS_MODE => "NONE", 
+                    DUTY_CYCLE_CORRECTION => true,
+                    PHASE_SHIFT => 0, 
+                    STARTUP_WAIT => false)
+        -- synthesis translate_on 
+        port map (CLK0 => RegCLKFB,
+                  CLKFB => RegCLK,
+                  CLKIN => USB_RegCLK, 
+                  DSSEN => '0',
+                  PSCLK => '0',
+                  PSEN => '0',
+                  PSINCDEC => '0',
+                  RST => RST,
+                  LOCKED => DCMLocked); 
+    RegCLK_BUFG: BUFG
+        port map (
+  	        I => RegCLKFB,
+            O => RegCLK
+  	    );
+
+end arch;
diff --git a/legacy/EUDETdummy/hdl/ZestSC1_Interfaces.vhd b/legacy/EUDETdummy/hdl/ZestSC1_Interfaces.vhd
new file mode 100644
index 00000000..6f9909e2
--- /dev/null
+++ b/legacy/EUDETdummy/hdl/ZestSC1_Interfaces.vhd
@@ -0,0 +1,329 @@
+-- ZestSC1 Top Level Code
+-- File name: ZestSC1_Interfaces.vhd
+-- Version: 1.00
+-- Date: 9/2/2005
+
+-- Copyright (C) 2005 Orange Tree Technologies Ltd. All rights reserved.
+-- Orange Tree Technologies grants the purchaser of a ZestSC1 the right to use and
+-- modify this logic core in any form including but not limited to VHDL source code or
+-- EDIF netlist in FPGA designs that target the ZestSC1.
+-- Orange Tree Technologies prohibits the use of this logic core or any modification of
+-- it in any form including but not limited to VHDL source code or EDIF netlist in
+-- FPGA or ASIC designs that target any other hardware unless the purchaser of the
+-- ZestSC1 has purchased the appropriate licence from Orange Tree Technologies.
+-- Contact Orange Tree Technologies if you want to purchase such a licence.
+
+--*****************************************************************************************
+--**
+--**  Disclaimer: LIMITED WARRANTY AND DISCLAIMER. These designs are
+--**              provided to you "as is". Orange Tree Technologies and its licensors 
+--**              make and you receive no warranties or conditions, express, implied, 
+--**              statutory or otherwise, and Orange Tree Technologies specifically 
+--**              disclaims any implied warranties of merchantability, non-infringement,
+--**              or fitness for a particular purpose. Orange Tree Technologies does not
+--**              warrant that the functions contained in these designs will meet your 
+--**              requirements, or that the operation of these designs will be 
+--**              uninterrupted or error free, or that defects in the Designs will be 
+--**              corrected. Furthermore, Orange Tree Technologies does not warrant or 
+--**              make any representations regarding use or the results of the use of the 
+--**              designs in terms of correctness, accuracy, reliability, or otherwise.                                               
+--**
+--**              LIMITATION OF LIABILITY. In no event will Orange Tree Technologies 
+--**              or its licensors be liable for any loss of data, lost profits, cost or 
+--**              procurement of substitute goods or services, or for any special, 
+--**              incidental, consequential, or indirect damages arising from the use or 
+--**              operation of the designs or accompanying documentation, however caused 
+--**              and on any theory of liability. This limitation will apply even if 
+--**              Orange Tree Technologies has been advised of the possibility of such 
+--**              damage. This limitation shall apply notwithstanding the failure of the 
+--**              essential purpose of any limited remedies herein.
+--**
+--*****************************************************************************************
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+use IEEE.STD_LOGIC_ARITH.ALL;
+use IEEE.STD_LOGIC_UNSIGNED.ALL;
+
+--  Uncomment the following lines to use the declarations that are
+--  provided for instantiating Xilinx primitive components.
+--library UNISIM;
+--use UNISIM.VComponents.all;
+
+entity ZestSC1_Interfaces is
+    port (
+        -- User connections
+        -- General connections
+        User_CLK : out std_logic;                          -- User logic clock
+        User_RST : out std_logic;                          -- User logic reset
+
+        -- USB Streaming interface
+        User_StreamBusGrantLength : in std_logic_vector(11 downto 0); -- Round robin grant length
+                                                           -- Controls read and write grant times
+                                                           -- on the streaming bus
+
+        User_StreamDataIn : out std_logic_vector(15 downto 0); -- Stream data from host
+        User_StreamDataInWE : out std_logic;               -- Stream write strobe from host
+        User_StreamDataInBusy : in std_logic;              -- Busy for stream from host
+
+        User_StreamDataOut : in std_logic_vector(15 downto 0); -- Stream data to host
+        User_StreamDataOutWE : in std_logic;               -- Stream write strobe to host
+        User_StreamDataOutBusy : out std_logic;            -- Busy for stream to host
+
+        -- USB Register interface
+        User_RegAddr : out std_logic_vector(15 downto 0);  -- Register interface address
+        User_RegDataIn : out std_logic_vector(7 downto 0); -- Register write data
+        User_RegDataOut : in std_logic_vector(7 downto 0); -- Register read data
+        User_RegWE : out std_logic;                        -- Write strobe for register
+        User_RegRE : out std_logic;                        -- Read strobe for register
+
+        -- USB Interrupts
+        User_Interrupt : in std_logic;                     -- Interrupt to host PC
+
+        -- SRAM interface
+        User_SRAM_A: in std_logic_vector(22 downto 0);     -- 23-bit address
+        User_SRAM_W: in std_logic;                         -- write strobe active high
+        User_SRAM_R: in std_logic;                         -- read strobe active high
+        User_SRAM_DR_VALID: out std_logic;                 -- read data valid strobe active high
+        User_SRAM_DW: in std_logic_vector(17 downto 0);    -- 18-bit data bus for writing to SRAM
+        User_SRAM_DR: out std_logic_vector(17 downto 0);   -- 18-bit data bus for reading from SRAM
+
+        -- FPGA pin connections
+        -- External USB Controller interface
+        USB_StreamCLK : in std_logic;
+        USB_StreamFIFOADDR : out std_logic_vector(1 downto 0);
+        USB_StreamPKTEND_n : out std_logic;
+        USB_StreamFlags_n : in std_logic_vector(2 downto 0);
+        USB_StreamSLOE_n : out std_logic;
+        USB_StreamSLRD_n : out std_logic;
+        USB_StreamSLWR_n : out std_logic;
+        USB_StreamFX2Rdy : in std_logic;
+        USB_StreamData : inout std_logic_vector(15 downto 0);
+
+        USB_RegCLK : in std_logic;
+        USB_RegAddr : in std_logic_vector(15 downto 0);
+        USB_RegData : inout std_logic_vector(7 downto 0);
+        USB_RegOE_n : in std_logic;
+        USB_RegRD_n : in std_logic;
+        USB_RegWR_n : in std_logic;
+        USB_RegCS_n : in std_logic;
+
+        USB_Interrupt : out std_logic;
+
+        -- External SRAM interface
+        S_CLK: out std_logic;
+        S_A: out std_logic_vector(22 downto 0);
+        S_ADV_LD_N: out std_logic;
+        S_BWA_N: out std_logic;
+        S_BWB_N: out std_logic;
+        S_DA: inout std_logic_vector(8 downto 0);
+        S_DB: inout std_logic_vector(8 downto 0);
+        S_OE_N: out std_logic;
+        S_WE_N: out std_logic
+    );
+ 
+end ZestSC1_Interfaces;
+
+architecture arch of ZestSC1_Interfaces is
+
+component ZestSC1_Host is
+    port (
+        -- FPGA pin connections
+        USB_StreamCLK : in std_logic;
+        USB_StreamFIFOADDR : out std_logic_vector(1 downto 0);
+        USB_StreamPKTEND_n : out std_logic;
+        USB_StreamFlags_n : in std_logic_vector(2 downto 0);
+        USB_StreamSLOE_n : out std_logic;
+        USB_StreamSLRD_n : out std_logic;
+        USB_StreamSLWR_n : out std_logic;
+        USB_StreamFX2Rdy : in std_logic;
+        USB_StreamData : inout std_logic_vector(15 downto 0);
+
+        USB_RegCLK : in std_logic;
+        USB_RegAddr : in std_logic_vector(15 downto 0);
+        USB_RegData : inout std_logic_vector(7 downto 0);
+        USB_RegOE_n : in std_logic;
+        USB_RegRD_n : in std_logic;
+        USB_RegWR_n : in std_logic;
+        USB_RegCS_n : in std_logic;
+
+        USB_Interrupt : out std_logic;
+
+        -- User connections
+        -- General connections
+        User_CLK : out std_logic;
+        User_RST : out std_logic;
+        DCMLocked : out std_logic;
+
+        -- Streaming interface
+        User_StreamBusGrantLength : in std_logic_vector(11 downto 0);
+
+        User_StreamDataIn : out std_logic_vector(15 downto 0);
+        User_StreamDataInWE : out std_logic;
+        User_StreamDataInBusy : in std_logic;
+
+        User_StreamDataOut : in std_logic_vector(15 downto 0);
+        User_StreamDataOutWE : in std_logic;
+        User_StreamDataOutBusy : out std_logic;
+
+        -- Register interface
+        User_RegAddr : out std_logic_vector(15 downto 0);
+        User_RegDataIn : out std_logic_vector(7 downto 0);
+        User_RegDataOut : in std_logic_vector(7 downto 0);
+        User_RegWE : out std_logic;
+        User_RegRE : out std_logic;
+
+        -- Interrupts
+        User_Interrupt : in std_logic
+    );
+end component;
+
+
+-- comment out unused SRAM 
+--component ZestSC1_SRAM is
+--    port (
+--        -- User interface
+--        USER_CLK: in std_logic;                       -- clock from user logic
+--        USER_RESET: in std_logic;                     -- reset
+--        USER_A: in std_logic_vector(22 downto 0);     -- 23-bit address
+--        USER_W: in std_logic;                         -- write strobe active high
+--        USER_R: in std_logic;                         -- read strobe active high
+--        USER_DR_VALID: out std_logic;                 -- read data valid strobe active high
+--        USER_DW: in std_logic_vector(17 downto 0);    -- 18-bit data bus for writing to SRAM
+--        USER_DR: out std_logic_vector(17 downto 0);   -- 18-bit data bus for reading from SRAM
+--
+--        -- ZBT SRAM interface
+--        CLK_SRAM: out std_logic;
+--        S_A: out std_logic_vector(22 downto 0);
+--        S_ADV_LD_N: out std_logic;
+--        S_BWA_N: out std_logic;
+--        S_BWB_N: out std_logic;
+--        S_DA: inout std_logic_vector(8 downto 0);
+--        S_DB: inout std_logic_vector(8 downto 0);
+--        S_OE_N: out std_logic;
+--        S_WE_N: out std_logic
+--    );
+--end component;
+
+signal Clk: std_logic;
+signal Reset: std_logic;
+signal SRAMReset : std_logic;
+signal DCMLocked : std_logic;
+
+-- Preserve IO signals to prevent errors from the UCF file
+-- Comment out all keep attributes in an attempt to see if it
+-- screws ISE 9.1
+--attribute keep : string;
+--attribute keep of USB_StreamCLK: signal is "true";
+--attribute keep of USB_StreamSLRD_n: signal is "true";
+--attribute keep of USB_StreamSLWR_n: signal is "true";
+--attribute keep of USB_StreamSLOE_n: signal is "true";
+--attribute keep of USB_StreamFX2Rdy: signal is "true";
+--attribute keep of USB_StreamFIFOADDR: signal is "true";
+--attribute keep of USB_StreamPKTEND_n: signal is "true";
+--attribute keep of USB_StreamData: signal is "true";
+--attribute keep of USB_StreamFlags_n: signal is "true";
+--
+--attribute keep of USB_RegCLK: signal is "true";
+--attribute keep of USB_RegAddr: signal is "true";
+--attribute keep of USB_RegOE_n: signal is "true";
+--attribute keep of USB_RegRD_n: signal is "true";
+--attribute keep of USB_RegWR_n: signal is "true";
+--attribute keep of USB_RegCS_n: signal is "true";
+--attribute keep of USB_RegData: signal is "true";
+--
+--attribute keep of USB_Interrupt: signal is "true";
+--
+--attribute keep of S_CLK: signal is "true";
+--attribute keep of S_A: signal is "true";
+--attribute keep of S_BWA_N: signal is "true";
+--attribute keep of S_BWB_N: signal is "true";
+--attribute keep of S_DA: signal is "true";
+--attribute keep of S_DB: signal is "true";
+--attribute keep of S_OE_N: signal is "true";
+--attribute keep of S_WE_N: signal is "true";
+--attribute keep of S_ADV_LD_N: signal is "true";
+
+begin
+
+User_CLK <= Clk;
+User_RST <= Reset;
+SRAMReset <= Reset or not DCMLocked;
+
+INST_ZestSC1_Host: ZestSC1_Host 
+    port map (
+        -- FPGA pin connections
+        USB_StreamCLK => USB_StreamCLK,
+        USB_StreamFIFOADDR => USB_StreamFIFOADDR,
+        USB_StreamPKTEND_n => USB_StreamPKTEND_n,
+        USB_StreamFlags_n => USB_StreamFlags_n,
+        USB_StreamSLOE_n => USB_StreamSLOE_n,
+        USB_StreamSLRD_n => USB_StreamSLRD_n,
+        USB_StreamSLWR_n => USB_StreamSLWR_n,
+        USB_StreamFX2Rdy => USB_StreamFX2Rdy,
+        USB_StreamData => USB_StreamData,
+
+        USB_RegCLK => USB_RegCLK,
+        USB_RegAddr => USB_RegAddr,
+        USB_RegData => USB_RegData,
+        USB_RegOE_n => USB_RegOE_n,
+        USB_RegRD_n => USB_RegRD_n,
+        USB_RegWR_n => USB_RegWR_n,
+        USB_RegCS_n => USB_RegCS_n,
+
+        USB_Interrupt => USB_Interrupt,
+
+        -- User connections
+        -- General connections
+        User_CLK => Clk,
+        User_RST => Reset,
+        DCMLocked => DCMLocked,
+
+        -- Streaming interface
+        User_StreamBusGrantLength => User_StreamBusGrantLength,
+
+        User_StreamDataIn => User_StreamDataIn,
+        User_StreamDataInWE => User_StreamDataInWE,
+        User_StreamDataInBusy => User_StreamDataInBusy,
+
+        User_StreamDataOut => User_StreamDataOut,
+        User_StreamDataOutWE => User_StreamDataOutWE,
+        User_StreamDataOutBusy => User_StreamDataOutBusy,
+
+        -- Register interface
+        User_RegAddr => User_RegAddr,
+        User_RegDataIn => User_RegDataIn,
+        User_RegDataOut => User_RegDataOut,
+        User_RegWE => User_RegWE,
+        User_RegRE => User_RegRE,
+
+        -- Interrupts
+        User_Interrupt => User_Interrupt
+    );
+
+-- Comment out SRAM since it isn't needed.
+--INST_SRAM: ZestSC1_SRAM
+--  port map(
+--        -- User interface
+--        USER_CLK => Clk,
+--        USER_RESET => SRAMReset,
+--        USER_A => USER_SRAM_A,
+--        USER_W => USER_SRAM_W,
+--        USER_R => USER_SRAM_R,
+--        USER_DR_VALID => USER_SRAM_DR_VALID,
+--        USER_DW => USER_SRAM_DW,
+--        USER_DR => USER_SRAM_DR,
+--
+--        -- ZBT SRAM interface
+--        CLK_SRAM => S_CLK,
+--        S_A => S_A,    
+--        S_ADV_LD_N => S_ADV_LD_N,
+--        S_BWA_N => S_BWA_N,
+--        S_BWB_N => S_BWB_N,
+--        S_DA => S_DA,
+--        S_DB => S_DB,
+--        S_OE_N => S_OE_N,
+--        S_WE_N => S_WE_N
+--    );
+
+end arch;
diff --git a/legacy/EUDETdummy/hdl/clocks_7s_extphy_se.vhd b/legacy/EUDETdummy/hdl/clocks_7s_extphy_se.vhd
new file mode 100644
index 00000000..90c77ffd
--- /dev/null
+++ b/legacy/EUDETdummy/hdl/clocks_7s_extphy_se.vhd
@@ -0,0 +1,151 @@
+-- clocks_7s_extphy_se
+--
+-- Generates a 125MHz ethernet clock and 31MHz ipbus clock from the 50MHz reference
+-- Also an unbuffered 200MHz clock for IO delay calibration block
+-- Includes reset logic for ipbus
+--
+-- Dave Newbold, April 2011
+--
+-- $Id$
+
+library ieee;
+use ieee.std_logic_1164.all;
+use ieee.numeric_std.all;
+
+library unisim;
+use unisim.VComponents.all;
+
+entity clocks_7s_extphy_Se is
+	port(
+		sysclk: in std_logic;
+		clko_125: out std_logic;
+		clko_125_90: out std_logic;
+		clko_200: out std_logic;
+		clko_ipb: out std_logic;
+		locked: out std_logic;
+		nuke: in std_logic;
+		soft_rst: in std_logic;
+		rsto_125: out std_logic;
+		rsto_ipb: out std_logic;
+		rsto_ipb_ctrl: out std_logic;
+		onehz: out std_logic
+	);
+
+end clocks_7s_extphy_se;
+
+architecture rtl of clocks_7s_extphy_se is
+	
+	signal dcm_locked, sysclk_i, clk_ipb_i, clk_125_i, clk_125_90_i, clkfb, clk_ipb_b, clk_125_b, clk_200_i: std_logic;
+	signal d17, d17_d: std_logic;
+	signal nuke_i, nuke_d, nuke_d2: std_logic := '0';
+	signal rst, srst, rst_ipb, rst_125, rst_ipb_ctrl: std_logic := '1';
+	signal rctr: unsigned(3 downto 0) := "0000";
+
+begin
+
+	ibufgds0: IBUFG port map(
+		i => sysclk,
+		o => sysclk_i
+	);
+	
+	bufg125: BUFG port map(
+		i => clk_125_i,
+		o => clk_125_b
+	);
+
+	clko_125 <= clk_125_b;
+
+	bufg125_90: BUFG port map(
+		i => clk_125_90_i,
+		o => clko_125_90
+	);
+	
+	bufgipb: BUFG port map(
+		i => clk_ipb_i,
+		o => clk_ipb_b
+	);
+	
+	clko_ipb <= clk_ipb_b;
+	
+	bufg200: BUFG port map(
+		i => clk_200_i,
+		o => clko_200
+	);	
+	
+	mmcm: MMCME2_BASE
+		generic map(
+			clkfbout_mult_f => 20.0,
+			clkout1_divide => 8,
+			clkout2_divide => 8,
+			clkout2_phase => 90.0,
+			clkout3_divide => 32,
+			clkout4_divide => 5,
+			clkin1_period => 20.0
+		)
+		port map(
+			clkin1 => sysclk_i,
+			clkfbin => clkfb,
+			clkfbout => clkfb,
+			clkout1 => clk_125_i,
+			clkout2 => clk_125_90_i,
+			clkout3 => clk_ipb_i,
+			clkout4 => clk_200_i,
+			locked => dcm_locked,
+			rst => '0',
+			pwrdwn => '0'
+		);
+	
+	clkdiv: entity work.ipbus_clock_div
+		port map(
+			clk => sysclk_i,
+			d17 => d17,
+			d28 => onehz
+		);
+	
+	process(sysclk_i)
+	begin
+		if rising_edge(sysclk_i) then
+			d17_d <= d17;
+			if d17='1' and d17_d='0' then
+				rst <= nuke_d2 or not dcm_locked;
+				nuke_d <= nuke_i; -- Time bomb (allows return packet to be sent)
+				nuke_d2 <= nuke_d;
+			end if;
+		end if;
+	end process;
+		
+	locked <= dcm_locked;
+	srst <= '1' when rctr /= "0000" else '0';
+	
+	process(clk_ipb_b)
+	begin
+		if rising_edge(clk_ipb_b) then
+			rst_ipb <= rst or srst;
+			nuke_i <= nuke;
+			if srst = '1' or soft_rst = '1' then
+				rctr <= rctr + 1;
+			end if;
+		end if;
+	end process;
+	
+	rsto_ipb <= rst_ipb;
+	
+	process(clk_ipb_b)
+	begin
+		if rising_edge(clk_ipb_b) then
+			rst_ipb_ctrl <= rst;
+		end if;
+	end process;
+	
+	rsto_ipb_ctrl <= rst_ipb_ctrl;
+	
+	process(clk_125_b)
+	begin
+		if rising_edge(clk_125_b) then
+			rst_125 <= rst;
+		end if;
+	end process;
+	
+	rsto_125 <= rst_125;
+			
+end rtl;
diff --git a/legacy/EUDETdummy/hdl/delay.vhd b/legacy/EUDETdummy/hdl/delay.vhd
new file mode 100644
index 00000000..d8191059
--- /dev/null
+++ b/legacy/EUDETdummy/hdl/delay.vhd
@@ -0,0 +1,52 @@
+LIBRARY ieee;
+USE ieee.std_logic_1164.ALL;
+use IEEE.std_logic_arith.all;
+USE ieee.std_logic_unsigned.all;
+
+entity delay is
+  
+  generic (
+    length : integer := 1);  -- number of clock cycles to delay signal
+  port (
+    clock  : in  std_logic;             -- rising edge active
+    input  : in  std_logic;
+    output : out std_logic);
+
+end delay;
+
+architecture rtl of delay is
+
+  component dtype
+    port (
+      Q : out std_logic;
+      C   : in std_logic;
+      CLR : in std_logic;
+      D   : in std_logic;
+      CE  : in std_logic;
+      PRE : in std_logic
+      );
+  end component;
+
+  signal internal_signal : std_logic_vector( length downto 0);  -- signals along the pipe-line
+  
+begin  -- rtl
+
+  internal_signal(0) <= input;
+  
+  pipeline: for N in 1 to length generate
+
+    pipelinestage: dtype
+      port map (
+        q => internal_signal(N),
+        c => clock ,
+        clr => '0' ,
+        d => internal_signal(N-1),
+        ce => '1' ,
+        pre => '0'
+        );
+    
+  end generate pipeline;
+
+  output <= internal_signal(length);
+  
+end rtl;
diff --git a/legacy/EUDETdummy/hdl/delay_word.vhd b/legacy/EUDETdummy/hdl/delay_word.vhd
new file mode 100644
index 00000000..e520714d
--- /dev/null
+++ b/legacy/EUDETdummy/hdl/delay_word.vhd
@@ -0,0 +1,43 @@
+LIBRARY ieee;
+USE ieee.std_logic_1164.ALL;
+use IEEE.std_logic_arith.all;
+USE ieee.std_logic_unsigned.all;
+
+entity delay_word is
+  
+  generic (
+    length : integer := 1 ; -- number of clock cycles to delay signal
+    width : integer := 1 );             -- width of bus
+  port (
+    clock  : in  std_logic;             -- rising edge active
+    input  : in  std_logic_vector(width-1 downto 0);
+    output : out std_logic_vector(width-1 downto 0)
+    );
+
+end delay_word;
+
+architecture rtl of delay_word is
+
+
+  subtype DataWord is std_logic_vector( width-1 downto 0 );
+  type WordArray is array (length downto 0) of DataWord;
+  signal InternalSignal : WordArray;  -- signals along the pipe-line
+  
+begin  -- rtl
+
+  InternalSignal(0) <= input;
+  
+  pipeline: for N in 1 to length generate
+
+    pipelinestage: process (clock , InternalSignal(N-1))
+    begin  -- process pipelinestage
+      if rising_edge(clock) then
+        InternalSignal(N) <= InternalSignal(N-1);
+      end if;      
+    end process pipelinestage;
+    
+  end generate pipeline;
+
+  output <= InternalSignal(length);
+  
+end rtl;
diff --git a/legacy/EUDETdummy/hdl/dtype.vhdl b/legacy/EUDETdummy/hdl/dtype.vhdl
new file mode 100644
index 00000000..d2dd1710
--- /dev/null
+++ b/legacy/EUDETdummy/hdl/dtype.vhdl
@@ -0,0 +1,34 @@
+----- CELL dtype                       -----
+library IEEE;
+use IEEE.STD_LOGIC_1164.all;
+-- use IEEE.VITAL_Timing.all;
+
+entity dtype is
+
+  port(
+    Q : out std_logic;
+    C   : in std_logic;
+    CLR : in std_logic;
+    D   : in std_logic;
+	 CE  : in std_logic;
+    PRE : in std_logic
+    );
+
+end dtype;
+
+architecture dtype_V of dtype is
+begin
+
+  VITALBehavior         : process(C, CLR, PRE)
+  begin
+
+    if (CLR = '1') then
+      Q <= '0';
+    elsif (PRE = '1') then
+      Q <= '1';
+    elsif (rising_edge(C) and CE='1') then
+      Q <= D ;
+    end if;
+  end process;
+end dtype_V;
+
diff --git a/legacy/EUDETdummy/hdl/enclustra_ax3_pm3_infra.vhd b/legacy/EUDETdummy/hdl/enclustra_ax3_pm3_infra.vhd
new file mode 100644
index 00000000..df07ba1e
--- /dev/null
+++ b/legacy/EUDETdummy/hdl/enclustra_ax3_pm3_infra.vhd
@@ -0,0 +1,131 @@
+-- enclustra_ax3_pm3_infra
+--
+-- All board-specific stuff goes here
+--
+-- Dave Newbold, June 2013---
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+
+use work.ipbus.all;
+
+entity enclustra_ax3_pm3_infra is
+	port(
+		sysclk: in std_logic; -- ??? board crystal clock
+		clk_ipb_o: out std_logic; -- IPbus clock
+		rst_ipb_o: out std_logic;
+		rst_125_o: out std_logic;
+		clk_200_o: out std_logic;
+		--clk_aux_o: out std_logic; -- 40MHz generated clock
+		--rst_aux_o: out std_logic;
+		nuke: in std_logic; -- The signal of doom
+		soft_rst: in std_logic; -- The signal of lesser doom
+		leds: out std_logic_vector(1 downto 0); -- status LEDs
+		rgmii_txd: out std_logic_vector(3 downto 0);
+		rgmii_tx_ctl: out std_logic;
+		rgmii_txc: out std_logic;
+		rgmii_rxd: in std_logic_vector(3 downto 0);
+		rgmii_rx_ctl: in std_logic;
+		rgmii_rxc: in std_logic;
+		mac_addr: in std_logic_vector(47 downto 0); -- MAC address
+		ip_addr: in std_logic_vector(31 downto 0); -- IP address
+		ipb_in: in ipb_rbus; -- ipbus
+		ipb_out: out ipb_wbus
+	);
+
+end enclustra_ax3_pm3_infra;
+
+architecture rtl of enclustra_ax3_pm3_infra is
+
+	signal clk125_fr, clk125, clk125_90, clk200, clk_ipb, clk_ipb_i, locked, rst125, rst_ipb, rst_ipb_ctrl, rst_eth, onehz, pkt: std_logic;
+	signal mac_tx_data, mac_rx_data: std_logic_vector(7 downto 0);
+	signal mac_tx_valid, mac_tx_last, mac_tx_error, mac_tx_ready, mac_rx_valid, mac_rx_last, mac_rx_error: std_logic;
+	signal led_p: std_logic_vector(0 downto 0);
+	
+begin
+
+--	DCM clock generation for internal bus, ethernet
+
+	clocks: entity work.clocks_7s_extphy_se
+		port map(
+			sysclk => sysclk,
+			clko_125 => clk125,
+			clko_125_90 => clk125_90,
+			clko_200 => clk200,
+			clko_ipb => clk_ipb_i,
+			locked => locked,
+			nuke => nuke,
+			soft_rst => soft_rst,
+			rsto_125 => rst125,
+			rsto_ipb => rst_ipb,
+			rsto_ipb_ctrl => rst_ipb_ctrl,
+			onehz => onehz
+		);
+
+	clk_ipb <= clk_ipb_i; -- Best to align delta delays on all clocks for simulation
+	clk_ipb_o <= clk_ipb_i;
+	rst_ipb_o <= rst_ipb;
+	rst_125_o <= rst125;
+	clk_200_o <= clk200;
+	
+	stretch: entity work.led_stretcher
+		generic map(
+			WIDTH => 1
+		)
+		port map(
+			clk => clk125,
+			d(0) => pkt,
+			q => led_p
+		);
+	leds <= (led_p(0), locked and onehz);
+	
+-- Ethernet MAC core and PHY interface
+	
+	eth: entity work.eth_7s_rgmii
+		port map(
+			clk125 => clk125,
+			clk125_90 => clk125_90,
+			clk200 => clk200,
+			rst => rst125,
+			rgmii_txd => rgmii_txd,
+			rgmii_tx_ctl => rgmii_tx_ctl,
+			rgmii_txc => rgmii_txc,
+			rgmii_rxd => rgmii_rxd,
+			rgmii_rx_ctl => rgmii_rx_ctl,
+			rgmii_rxc => rgmii_rxc,
+			tx_data => mac_tx_data,
+			tx_valid => mac_tx_valid,
+			tx_last => mac_tx_last,
+			tx_error => mac_tx_error,
+			tx_ready => mac_tx_ready,
+			rx_data => mac_rx_data,
+			rx_valid => mac_rx_valid,
+			rx_last => mac_rx_last,
+			rx_error => mac_rx_error
+		);
+	
+-- ipbus control logic
+
+	ipbus: entity work.ipbus_ctrl
+		port map(
+			mac_clk => clk125,
+			rst_macclk => rst125,
+			ipb_clk => clk_ipb,
+			rst_ipb => rst_ipb_ctrl,
+			mac_rx_data => mac_rx_data,
+			mac_rx_valid => mac_rx_valid,
+			mac_rx_last => mac_rx_last,
+			mac_rx_error => mac_rx_error,
+			mac_tx_data => mac_tx_data,
+			mac_tx_valid => mac_tx_valid,
+			mac_tx_last => mac_tx_last,
+			mac_tx_error => mac_tx_error,
+			mac_tx_ready => mac_tx_ready,
+			ipb_out => ipb_out,
+			ipb_in => ipb_in,
+			mac_addr => mac_addr,
+			ip_addr => ip_addr,
+			pkt => pkt
+		);
+
+end rtl;
diff --git a/legacy/EUDETdummy/hdl/eth_7s_rgmii.vhd b/legacy/EUDETdummy/hdl/eth_7s_rgmii.vhd
new file mode 100644
index 00000000..3e2e1670
--- /dev/null
+++ b/legacy/EUDETdummy/hdl/eth_7s_rgmii.vhd
@@ -0,0 +1,184 @@
+-- Contains the instantiation of the Xilinx MAC & PHY interface for RGMII
+--
+-- Do not change signal names in here without corresponding alteration to the timing contraints file
+--
+-- Dave Newbold, October 2016
+
+library ieee;
+use ieee.std_logic_1164.all;
+
+library unisim;
+use unisim.VComponents.all;
+use work.emac_hostbus_decl.all;
+
+entity eth_7s_rgmii is
+	port(
+		clk125: in std_logic;
+		clk125_90: in std_logic;
+		clk200: in std_logic;
+		rst: in std_logic;
+		rgmii_txd: out std_logic_vector(3 downto 0);
+		rgmii_tx_ctl: out std_logic;
+		rgmii_txc: out std_logic;
+		rgmii_rxd: in std_logic_vector(3 downto 0);
+		rgmii_rx_ctl: in std_logic;
+		rgmii_rxc: in std_logic;
+		tx_data: in std_logic_vector(7 downto 0);
+		tx_valid: in std_logic;
+		tx_last: in std_logic;
+		tx_error: in std_logic;
+		tx_ready: out std_logic;
+		rx_data: out std_logic_vector(7 downto 0);
+		rx_valid: out std_logic;
+		rx_last: out std_logic;
+		rx_error: out std_logic;
+		hostbus_in: in emac_hostbus_in := ('0', "00", "0000000000", X"00000000", '0', '0', '0');
+		hostbus_out: out emac_hostbus_out;
+		status: out std_logic_vector(3 downto 0)
+	);
+
+end eth_7s_rgmii;
+
+architecture rtl of eth_7s_rgmii is
+
+	COMPONENT temac_gbe_v9_rgmii
+		PORT (
+			gtx_clk : IN STD_LOGIC;
+			gtx_clk90 : IN STD_LOGIC;
+			glbl_rstn : IN STD_LOGIC;
+			rx_axi_rstn : IN STD_LOGIC;
+			tx_axi_rstn : IN STD_LOGIC;
+			rx_statistics_vector : OUT STD_LOGIC_VECTOR(27 DOWNTO 0);
+			rx_statistics_valid : OUT STD_LOGIC;
+			rx_mac_aclk : OUT STD_LOGIC;
+			rx_reset : OUT STD_LOGIC;
+			rx_axis_mac_tdata : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);
+			rx_axis_mac_tvalid : OUT STD_LOGIC;
+			rx_axis_mac_tlast : OUT STD_LOGIC;
+			rx_axis_mac_tuser : OUT STD_LOGIC;
+			tx_ifg_delay : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
+			tx_statistics_vector : OUT STD_LOGIC_VECTOR(31 DOWNTO 0);
+			tx_statistics_valid : OUT STD_LOGIC;
+			tx_mac_aclk : OUT STD_LOGIC;
+			tx_reset : OUT STD_LOGIC;
+			tx_axis_mac_tdata : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
+			tx_axis_mac_tvalid : IN STD_LOGIC;
+			tx_axis_mac_tlast : IN STD_LOGIC;
+			tx_axis_mac_tuser : IN STD_LOGIC_VECTOR(0 DOWNTO 0);
+			tx_axis_mac_tready : OUT STD_LOGIC;
+			pause_req : IN STD_LOGIC;
+			pause_val : IN STD_LOGIC_VECTOR(15 DOWNTO 0);
+			speedis100 : OUT STD_LOGIC;
+			speedis10100 : OUT STD_LOGIC;
+			rgmii_txd : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);
+			rgmii_tx_ctl : OUT STD_LOGIC;
+			rgmii_txc : OUT STD_LOGIC;
+			rgmii_rxd : IN STD_LOGIC_VECTOR(3 DOWNTO 0);
+			rgmii_rx_ctl : IN STD_LOGIC;
+			rgmii_rxc : IN STD_LOGIC;
+			inband_link_status : OUT STD_LOGIC;
+			inband_clock_speed : OUT STD_LOGIC_VECTOR(1 DOWNTO 0);
+			inband_duplex_status : OUT STD_LOGIC;
+			rx_configuration_vector : IN STD_LOGIC_VECTOR(79 DOWNTO 0);
+			tx_configuration_vector : IN STD_LOGIC_VECTOR(79 DOWNTO 0)
+		);
+	END COMPONENT;
+
+	COMPONENT mac_fifo_axi4
+	  PORT (
+		 m_aclk : IN STD_LOGIC;
+		 s_aclk : IN STD_LOGIC;
+		 s_aresetn : IN STD_LOGIC;
+		 s_axis_tvalid : IN STD_LOGIC;
+		 s_axis_tready : OUT STD_LOGIC;
+		 s_axis_tdata : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
+		 s_axis_tlast : IN STD_LOGIC;
+		 s_axis_tuser : IN STD_LOGIC_VECTOR(0 DOWNTO 0);
+		 m_axis_tvalid : OUT STD_LOGIC;
+		 m_axis_tready : IN STD_LOGIC;
+		 m_axis_tdata : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);
+		 m_axis_tlast : OUT STD_LOGIC;
+		 m_axis_tuser : OUT STD_LOGIC_VECTOR(0 DOWNTO 0)
+	  );
+	END COMPONENT;
+	
+	signal rx_data_e: std_logic_vector(7 downto 0);
+	signal rx_clk_e, rx_valid_e, rx_last_e, rx_user_e, rx_rst_e, rx_rst_en, rstn: std_logic;
+	signal rx_user_f, rx_user_ef: std_logic_vector(0 downto 0);
+	
+begin
+
+	idelayctrl0: idelayctrl port map(
+		refclk => clk200,
+		rst => rst
+	);
+	
+	rstn <= not rst;
+
+	emac0: temac_gbe_v9_rgmii
+		port map(
+			gtx_clk => clk125,
+			gtx_clk90 => clk125_90,
+			glbl_rstn => rstn,
+			rx_axi_rstn => '1',
+			tx_axi_rstn => '1',
+			rx_statistics_vector => open,
+			rx_statistics_valid => open,		
+			rx_mac_aclk => rx_clk_e,
+			rx_reset => rx_rst_e,
+			rx_axis_mac_tdata => rx_data_e,
+			rx_axis_mac_tvalid => rx_valid_e,
+			rx_axis_mac_tlast => rx_last_e,
+			rx_axis_mac_tuser => rx_user_e,
+			tx_ifg_delay => X"00",
+			tx_statistics_vector => open,
+			tx_statistics_valid => open,	
+			tx_mac_aclk => open, -- Internally connected to gtx_clk inside core
+			tx_reset => open,
+			tx_axis_mac_tdata => tx_data,
+			tx_axis_mac_tvalid => tx_valid,
+			tx_axis_mac_tlast => tx_last,
+			tx_axis_mac_tuser(0) => tx_error,
+			tx_axis_mac_tready => tx_ready,
+			pause_req => '0',
+			pause_val => X"0000",
+			speedis100 => open,
+			speedis10100 => open,
+			rgmii_txd => rgmii_txd,
+			rgmii_tx_ctl => rgmii_tx_ctl,
+			rgmii_txc => rgmii_txc,
+			rgmii_rxd => rgmii_rxd,
+			rgmii_rx_ctl => rgmii_rx_ctl,
+			rgmii_rxc => rgmii_rxc,
+			inband_link_status => status(0),
+			inband_clock_speed => status(3 downto 2),
+			inband_duplex_status => status(1),
+			rx_configuration_vector => X"0000_0000_0000_0000_0812",
+			tx_configuration_vector => X"0000_0000_0000_0000_0012"
+		);
+	
+	rx_user_ef(0) <= rx_user_e;
+	rx_error <= rx_user_f(0);
+	rx_rst_en <= not rx_rst_e;
+	
+	fifo: mac_fifo_axi4
+		port map(
+			m_aclk => clk125,
+			s_aclk => rx_clk_e,
+			s_aresetn => rx_rst_en,
+			s_axis_tvalid => rx_valid_e,
+			s_axis_tready => open,
+			s_axis_tdata => rx_data_e,
+			s_axis_tlast => rx_last_e,
+			s_axis_tuser => rx_user_ef,
+			m_axis_tvalid => rx_valid,
+			m_axis_tready => '1',
+			m_axis_tdata => rx_data,
+			m_axis_tlast => rx_last,
+			m_axis_tuser => rx_user_f
+		); -- Clock domain crossing FIFO
+
+	hostbus_out.hostrddata <= (others => '0');
+	hostbus_out.hostmiimrdy <= '0';
+	
+end rtl;
diff --git a/legacy/EUDETdummy/hdl/fmcTLU_pkg.vhd b/legacy/EUDETdummy/hdl/fmcTLU_pkg.vhd
new file mode 100644
index 00000000..cb6b1010
--- /dev/null
+++ b/legacy/EUDETdummy/hdl/fmcTLU_pkg.vhd
@@ -0,0 +1,27 @@
+--=============================================================================
+--! @file fmcTLU_pkg.vhd
+--=============================================================================
+---
+--! @brief VHDL Package Header fmc_mTLU_lib.fmcTLU
+--
+--! @author  phdgc
+--! @date  16:44:31 11/08/12         
+--
+-- using Mentor Graphics HDL Designer(TM) 2010.3 (Build 21)
+--
+LIBRARY ieee;
+USE ieee.std_logic_1164.all;
+PACKAGE fmcTLU IS
+  
+  constant c_NUM_TIME_BITS : natural := 5;
+  constant c_NUM_TRIG_INPUTS : natural := 4;
+  constant c_EVENT_DATA_WIDTH : natural := 32;
+  constant c_DATA_WIDTH : natural := 32;
+  
+  subtype t_triggerTime is std_logic_vector(c_NUM_TIME_BITS-1 downto 0);
+  --type    t_triggerTimeArray is array(natural range <>) of t_triggerTime;
+  type    t_triggerTimeArray is array(natural range <>) of std_logic_vector(c_NUM_TIME_BITS-1 downto 0) ;
+
+  type t_registerArray is array(natural range <>) of std_logic_vector(c_DATA_WIDTH-1 downto 0) ;
+  
+END fmcTLU;
diff --git a/legacy/EUDETdummy/hdl/fmcTLU_pkg_body.vhd b/legacy/EUDETdummy/hdl/fmcTLU_pkg_body.vhd
new file mode 100644
index 00000000..9437776d
--- /dev/null
+++ b/legacy/EUDETdummy/hdl/fmcTLU_pkg_body.vhd
@@ -0,0 +1,13 @@
+--=============================================================================
+--! @file fmcTLU_pkg_body.vhd
+--=============================================================================
+---
+--! @brief VHDL Package Body fmc_mTLU_lib.fmcTLU
+--
+--! @author  phdgc
+--! @date  16:45:08 11/08/12         
+--
+-- using Mentor Graphics HDL Designer(TM) 2010.3 (Build 21)
+--
+PACKAGE BODY fmcTLU IS
+END fmcTLU;
diff --git a/legacy/EUDETdummy/hdl/i2c/i2c_master_bit_ctrl.vhd b/legacy/EUDETdummy/hdl/i2c/i2c_master_bit_ctrl.vhd
new file mode 100644
index 00000000..d0dc4e9a
--- /dev/null
+++ b/legacy/EUDETdummy/hdl/i2c/i2c_master_bit_ctrl.vhd
@@ -0,0 +1,492 @@
+----------------------------------------------------------------------
+-- >>>>>>>>>>>>>>>>>>>>>> COPYRIGHT NOTICE <<<<<<<<<<<<<<<<<<<<<<<<<<<
+----------------------------------------------------------------------
+--///////////////////////////////////////////////////////////////////
+--//                                                             ////
+--//  WISHBONE rev.B2 compliant I2C Master bit-controller        ////
+--//                                                             ////
+--//                                                             ////
+--//  Author: Richard Herveille                                  ////
+--//          richard@asics.ws                                   ////
+--//          www.asics.ws                                       ////
+--//                                                             ////
+--//  Downloaded from: http://www.opencores.org/projects/i2c/    ////
+--//                                                             ////
+--///////////////////////////////////////////////////////////////////
+--//                                                             ////
+--// Copyright (C) 2001 Richard Herveille                        ////
+--//                    richard@asics.ws                         ////
+--//                                                             ////
+--// This source file may be used and distributed without        ////
+--// restriction provided that this copyright statement is not   ////
+--// removed from the file and that any derivative work contains ////
+--// the original copyright notice and the associated disclaimer.////
+--//                                                             ////
+--//     THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY     ////
+--// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED   ////
+--// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS   ////
+--// FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL THE AUTHOR      ////
+--// OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,         ////
+--// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES    ////
+--// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE   ////
+--// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR        ////
+--// BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF  ////
+--// LIABILITY, WHETHER IN  CONTRACT, STRICT LIABILITY, OR TORT  ////
+--// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT  ////
+--// OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE         ////
+--// POSSIBILITY OF SUCH DAMAGE.                                 ////
+--//                                                             ////
+--///////////////////////////////////////////////////////////////////
+-- --------------------------------------------------------------------              
+-- >>>>>>>>>>>>>>>>>>>>>>>>> COPYRIGHT NOTICE <<<<<<<<<<<<<<<<<<<<<<<<<              
+-- --------------------------------------------------------------------              
+-- Copyright (c) 2008 - 2010 by Lattice Semiconductor Corporation                    
+-- --------------------------------------------------------------------                            
+--                                                                                   
+-- Disclaimer:                                                                       
+--                                                                                   
+-- This VHDL or Verilog source code is intended as a design reference                
+-- which illustrates how these types of functions can be implemented.                
+-- It is the user's responsibility to verify their design for                        
+-- consistency and functionality through the use of formal                           
+-- verification methods. Lattice Semiconductor provides no warranty                  
+-- regarding the use or functionality of this code.                                  
+--                                                                                   
+-- --------------------------------------------------------------------              
+--                                                                                   
+-- Lattice Semiconductor Corporation                                                 
+-- 5555 NE Moore Court                                                               
+-- Hillsboro, OR 97214                                                               
+-- U.S.A                                                                             
+--                                                                                   
+-- TEL: 1-800-Lattice (USA and Canada)                                               
+-- 503-268-8001 (other locations)                                                    
+--                                                                                   
+-- web: http://www.latticesemi.com/                                                  
+-- email: techsupport@latticesemi.com                                                
+--                                                                                   
+-- --------------------------------------------------------------------              
+-- Code Revision History :                                                           
+-- --------------------------------------------------------------------              
+-- Ver: | Author |Mod. Date |Changes Made:                                           
+-- V1.0 |K.P.    | 7/09     | Initial ver for VHDL                                       
+-- 			    | converted from LSC ref design RD1046                   
+-- --------------------------------------------------------------------              
+
+
+--/////////////////////////////////////
+--// Bit controller section
+--/////////////////////////////////////
+--//
+--// Translate simple commands into SCL/SDA transitions
+--// Each command has 5 states, A/B/C/D/idle
+--//
+--// start:	SCL	~~~~~~~~~~\____
+--//	SDA	~~~~~~~~\______
+--//		 x | A | B | C | D | i
+--//
+--// repstart	SCL	____/~~~~\___
+--//	SDA	__/~~~\______
+--//		 x | A | B | C | D | i
+--//
+--// stop	SCL	____/~~~~~~~~
+--//	SDA	==\____/~~~~~
+--//		 x | A | B | C | D | i
+--//
+--//- write	SCL	____/~~~~\____
+--//	SDA	==X=========X=
+--//		 x | A | B | C | D | i
+--//
+--//- read	SCL	____/~~~~\____
+--//	SDA	XXXX=====XXXX
+--//		 x | A | B | C | D | i
+--//
+--
+--// Timing:     Normal mode      Fast mode
+--///////////////////////////////////////////////////////////////////////
+--// Fscl        100KHz           400KHz
+--// Th_scl      4.0us            0.6us   High period of SCL
+--// Tl_scl      4.7us            1.3us   Low period of SCL
+--// Tsu:sta     4.7us            0.6us   setup time for a repeated start condition
+--// Tsu:sto     4.0us            0.6us   setup time for a stop conditon
+--// Tbuf        4.7us            1.3us   Bus free time between a stop and start condition
+--//
+--
+-- --------------------------------------------------------------------
+
+library ieee;
+use ieee.std_logic_1164.all;
+use ieee.std_logic_arith.all;
+use ieee.std_logic_unsigned.all;
+
+entity i2c_master_bit_ctrl is
+  port (
+        clk      : in  std_logic;
+        rst      : in  std_logic;
+        nReset   : in  std_logic;
+        clk_cnt  : in  std_logic_vector(15 downto 0);	-- clock prescale value
+        ena      : in  std_logic;						-- core enable signal
+        cmd      : in  std_logic_vector(3 downto 0);
+        cmd_ack  : out std_logic;						-- command complete acknowledge
+        busy     : out std_logic;						-- i2c bus busy
+        al       : out std_logic;						-- i2c bus arbitration lost
+        din      : in  std_logic;
+        dout     : out std_logic;
+        scl_i    : in  std_logic;						-- i2c clock line input
+        scl_o    : out std_logic;						-- i2c clock line output
+        scl_oen  : out std_logic;						-- i2c clock line output enable (active low)
+        sda_i    : in  std_logic;						-- i2c data line input
+        sda_o    : out std_logic;						-- i2c data line output
+        sda_oen  : out std_logic						-- i2c data line output enable (active low)
+        );
+        
+ 
+end;
+
+architecture arch of i2c_master_bit_ctrl is
+
+--attribute UGROUP:string;                                   
+--attribute UGROUP of arch : label is "bit_group"; 
+
+
+signal sSCL, sSDA : std_logic;	-- synchronized SCL and SDA inputs
+signal dscl_oen : std_logic;	-- delayed scl_oen
+signal sda_chk : std_logic;		-- check SDA output (Multi-master arbitration)
+signal clk_en : std_logic;		-- clock generation signals
+signal slave_wait : std_logic;
+
+-- bus status controller signals
+signal dSCL,dSDA : std_logic;
+signal sta_condition : std_logic;
+signal sto_condition : std_logic;
+signal cmd_stop : std_logic;
+
+signal cnt : std_logic_vector(15 downto 0);	-- clock divider counter
+
+signal scl_oen_int : std_logic;
+signal sda_oen_int : std_logic;
+signal busy_int : std_logic;
+signal al_int : std_logic;
+
+-- state machine variable
+signal c_state : std_logic_vector(16 downto 0);
+
+constant idle 		: std_logic_vector(16 downto 0) := "00000000000000000";
+constant start_a 	: std_logic_vector(16 downto 0) := "00000000000000001";
+constant start_b 	: std_logic_vector(16 downto 0) := "00000000000000010";
+constant start_c 	: std_logic_vector(16 downto 0) := "00000000000000100";
+constant start_d 	: std_logic_vector(16 downto 0) := "00000000000001000";
+constant start_e 	: std_logic_vector(16 downto 0) := "00000000000010000";
+constant stop_a 	: std_logic_vector(16 downto 0) := "00000000000100000";
+constant stop_b	 	: std_logic_vector(16 downto 0) := "00000000001000000";
+constant stop_c	 	: std_logic_vector(16 downto 0) := "00000000010000000";
+constant stop_d 	: std_logic_vector(16 downto 0) := "00000000100000000";
+constant rd_a	 	: std_logic_vector(16 downto 0) := "00000001000000000";
+constant rd_b 		: std_logic_vector(16 downto 0) := "00000010000000000";
+constant rd_c 		: std_logic_vector(16 downto 0) := "00000100000000000";
+constant rd_d 		: std_logic_vector(16 downto 0) := "00001000000000000";
+constant wr_a 		: std_logic_vector(16 downto 0) := "00010000000000000";
+constant wr_b 		: std_logic_vector(16 downto 0) := "00100000000000000";
+constant wr_c 		: std_logic_vector(16 downto 0) := "01000000000000000";
+constant wr_d 		: std_logic_vector(16 downto 0) := "10000000000000000";
+
+constant I2C_CMD_NOP	: std_logic_vector(3 downto 0) := "0000";
+constant I2C_CMD_START	: std_logic_vector(3 downto 0) := "0001";
+constant I2C_CMD_STOP	: std_logic_vector(3 downto 0) := "0010";
+constant I2C_CMD_WRITE	: std_logic_vector(3 downto 0) := "0100";
+constant I2C_CMD_READ	: std_logic_vector(3 downto 0) := "1000";
+
+begin
+
+scl_oen <= scl_oen_int;
+sda_oen <= sda_oen_int;
+
+-- whenever the slave is not ready it can delay the cycle by pulling SCL low
+-- delay scl_oen
+process(clk)
+begin
+	if rising_edge(clk) then
+		dscl_oen <= scl_oen_int;
+	end if;
+end process;
+
+slave_wait <= '1' when ((dscl_oen = '1') AND (sSCL = '0')) else '0';
+
+-- generate clk enable signal
+process(clk,nReset)
+begin
+	if (nReset = '0') then
+		cnt <= (others => '0');
+		clk_en <= '1';
+	elsif rising_edge(clk) then
+		if (rst = '1') then
+			cnt <= (others => '0');
+			clk_en <= '1';
+		elsif ((cnt = "0000000000000000") OR (ena = '0')) then
+			cnt <= clk_cnt;
+			clk_en <= '1';
+		elsif (slave_wait = '1') then
+			cnt <= cnt;
+			clk_en <= '0';
+		else
+			cnt <= cnt - '1';
+			clk_en <= '0';
+		end if;
+	end if;
+end process;
+
+-- synchronize SCL and SDA inputs
+-- reduce metastability risc
+process(clk,nReset)
+begin
+	if (nReset = '0') then
+		sSCL <= '1';
+		sSDA <= '1';
+		dSCL <= '1';
+		dSDA <= '1';
+	elsif rising_edge(clk) then
+		if (rst = '1') then
+			sSCL <= '1';
+			sSDA <= '1';
+			dSCL <= '1';
+			dSDA <= '1';
+		else
+			dSCL <= sSCL;
+			dSDA <= sSDA;
+                        -- Don't need to treat 'H' if separate I and O
+			-- if ((scl_i = '1') OR (scl_i = 'H')) then
+                        if (scl_i = '1')  then
+				sSCL <= '1';
+			else
+				sSCL <= '0';
+			end if;
+			-- if ((sda_i = '1') OR (sda_i = 'H')) then
+                        if (sda_i = '1')  then
+				sSDA <= '1';
+			else
+				sSDA <= '0';
+			end if;
+		end if;
+	end if;
+end process;
+
+-- detect start condition => detect falling edge on SDA while SCL is high
+-- detect stop condition => detect rising edge on SDA while SCL is high
+process(clk,nReset)
+begin
+	if (nReset = '0') then
+		sta_condition <= '0';
+		sto_condition <= '0';
+	elsif rising_edge(clk) then
+		if (rst = '1') then
+			sta_condition <= '0';
+			sto_condition <= '0';
+		else
+			sta_condition <= NOT(sSDA) AND dSDA AND sSCL;
+			sto_condition <= sSDA AND NOT(dSDA) AND sSCL;
+		end if;
+	end if;
+end process;
+
+-- generate i2c bus busy signal
+process(clk,nReset)
+begin
+	if (nReset = '0') then
+		busy_int <= '0';
+	elsif rising_edge(clk) then
+		if (rst = '1') then
+			busy_int <= '0';
+		else
+			busy_int <= (sta_condition OR busy_int) AND NOT(sto_condition);
+		end if;
+	end if;
+end process;
+
+busy <= busy_int;
+
+-- generate arbitration lost signal
+-- aribitration lost when:
+-- 1) master drives SDA high, but the i2c bus is low
+-- 2) stop detected while not requested
+process(clk,nReset)
+begin
+	if (nReset = '0') then
+		cmd_stop <= '0';
+	elsif rising_edge(clk) then
+		if (rst = '1') then
+			cmd_stop <= '0';
+		elsif (clk_en = '1') then
+			if (cmd = I2C_CMD_STOP) then
+				cmd_stop <= '1';
+			else
+				cmd_stop <= '0';
+			end if;
+		end if;
+	end if;
+end process;
+
+process(clk,nReset)
+begin
+	if (nReset = '0') then
+		al_int <= '0';
+	elsif rising_edge(clk) then
+		if (rst = '1') then
+			al_int <= '0';
+		else
+			if (((sda_chk = '1') AND (sSDA = '0') AND (sda_oen_int = '1')) OR ((c_state /= idle) AND (sto_condition = '1') AND (cmd_stop = '0'))) then
+				al_int <= '1';
+			else
+				al_int <= '0';
+			end if;
+		end if;
+	end if;
+end process;
+
+al <= al_int;
+
+
+-- generate dout signal (store SDA on rising edge of SCL)
+process(clk)
+begin
+	if rising_edge(clk) then
+		if ((sSCL = '1') AND (dSCL = '0')) then
+			dout <= sSDA;
+		end if;
+	end if;
+end process;
+
+
+--generate state machine
+process(clk,nReset)
+begin
+	if (nReset = '0') then
+		c_state <= idle;
+		cmd_ack <= '0';
+		scl_oen_int <= '1';
+		sda_oen_int <= '1';
+		sda_chk <= '0';
+	elsif rising_edge(clk) then
+		if ((rst = '1') OR (al_int = '1')) then
+			c_state <= idle;
+			cmd_ack <= '0';
+			scl_oen_int <= '1';
+			sda_oen_int <= '1';
+			sda_chk <= '0';
+		else
+			cmd_ack <= '0';	--default no command acknowledge + assert cmd_ack only 1clk cycle
+			if (clk_en = '1') then
+				case (c_state) is
+					when idle =>
+							case (cmd) is
+								when I2C_CMD_START	=> c_state <= start_a;
+								when I2C_CMD_STOP	=> c_state <= stop_a;
+								when I2C_CMD_WRITE	=> c_state <= wr_a;
+								when I2C_CMD_READ	=> c_state <= rd_a;
+								when others			=> c_state <= idle;
+							end case;
+
+							scl_oen_int <= scl_oen_int;  -- keep SCL in same state
+							sda_oen_int <= sda_oen_int;  -- keep SDA in same state
+							sda_chk <= '0';              -- don't check SDA output
+					when start_a =>          -- start
+							c_state <= start_b;
+							scl_oen_int <= scl_oen_int;  -- keep SCL in same state
+							sda_oen_int <= '1';          -- set SDA high
+							sda_chk <= '0';              -- don't check SDA output
+					when start_b =>
+							c_state <= start_c;
+							scl_oen_int <= '1';          -- set SCL high
+							sda_oen_int <= '1';          -- keep SDA high
+							sda_chk <= '0';              -- don't check SDA output
+					when start_c =>
+							c_state <= start_d;
+							scl_oen_int <= '1';          -- keep SCL high
+							sda_oen_int <= '0';          -- set SDA low
+							sda_chk <= '0';              -- don't check SDA output
+					when start_d =>
+							c_state <= start_e;
+							scl_oen_int <= '1';          -- keep SCL high
+							sda_oen_int <= '0';          -- keep SDA low
+							sda_chk <= '0';              -- don't check SDA output
+					when start_e =>
+							c_state <= idle;
+							cmd_ack <= '1';
+							scl_oen_int <= '0';          -- set SCL low
+							sda_oen_int <= '0';          -- keep SDA low
+							sda_chk <= '0';              -- don't check SDA output
+					when stop_a =>          -- stop
+							c_state <= stop_b;
+							scl_oen_int <= '0';          -- keep SCL low
+							sda_oen_int <= '0';          -- set SDA low
+							sda_chk <= '0';              -- don't check SDA output
+					when stop_b =>
+							c_state <= stop_c;
+							scl_oen_int <= '1';          -- set SCL high
+							sda_oen_int <= '0';          -- keep SDA low
+							sda_chk <= '0';              -- don't check SDA output
+					when stop_c =>
+							c_state <= stop_d;
+							scl_oen_int <= '1';          -- keep SCL high
+							sda_oen_int <= '0';          -- keep SDA low
+							sda_chk <= '0';              -- don't check SDA output
+					when stop_d =>
+							c_state <= idle;
+							cmd_ack <= '1';
+							scl_oen_int <= '1';          -- keep SCL high
+							sda_oen_int <= '1';          -- set SDA high
+							sda_chk <= '0';              -- don't check SDA output
+					when rd_a =>          -- read
+							c_state <= rd_b;
+							scl_oen_int <= '0';          -- keep SCL low
+							sda_oen_int <= '1';          -- tri-state SDA
+							sda_chk <= '0';              -- don't check SDA output
+					when rd_b =>
+							c_state <= rd_c;
+							scl_oen_int <= '1';          -- set SCL high
+							sda_oen_int <= '1';          -- keep SDA tri-stated
+							sda_chk <= '0';              -- don't check SDA output
+					when rd_c =>
+							c_state <= rd_d;
+							scl_oen_int <= '1';          -- keep SCL high
+							sda_oen_int <= '1';          -- keep SDA tri-stated
+							sda_chk <= '0';              -- don't check SDA output
+					when rd_d =>
+							c_state <= idle;
+							cmd_ack <= '1';
+							scl_oen_int <= '0';          -- set SCL low
+							sda_oen_int <= '1';          -- keep SDA tri-stated
+							sda_chk <= '0';              -- don't check SDA output
+					when wr_a =>          -- write
+							c_state <= wr_b;
+							scl_oen_int <= '0';          -- keep SCL low
+							sda_oen_int <= din;          -- set SDA
+							sda_chk <= '0';              -- don't check SDA output (SCL low)
+					when wr_b =>
+							c_state <= wr_c;
+							scl_oen_int <= '1';          -- set SCL high
+							sda_oen_int <= din;          -- keep SDA
+							sda_chk <= '1';              -- check SDA output
+					when wr_c =>
+							c_state <= wr_d;
+							scl_oen_int <= '1';          -- keep SCL high
+							sda_oen_int <= din;
+							sda_chk <= '1';              -- check SDA output
+					when wr_d =>
+							c_state <= idle;
+							cmd_ack <= '1';
+							scl_oen_int <= '0';          -- set SCL low
+							sda_oen_int <= din;
+							sda_chk <= '0';              -- don't check SDA output (SCL low)
+					when others => NULL;
+				end case;
+			end if;
+		end if;
+	end if;
+end process;
+
+
+-- assign scl and sda output (always gnd)
+scl_o <= '0';
+sda_o <= '0';
+
+end arch;
diff --git a/legacy/EUDETdummy/hdl/i2c/i2c_master_byte_ctrl.vhd b/legacy/EUDETdummy/hdl/i2c/i2c_master_byte_ctrl.vhd
new file mode 100644
index 00000000..f5219574
--- /dev/null
+++ b/legacy/EUDETdummy/hdl/i2c/i2c_master_byte_ctrl.vhd
@@ -0,0 +1,286 @@
+----------------------------------------------------------------------
+-- >>>>>>>>>>>>>>>>>>>>>> COPYRIGHT NOTICE <<<<<<<<<<<<<<<<<<<<<<<<<<<
+----------------------------------------------------------------------
+--///////////////////////////////////////////////////////////////////
+--//                                                             ////
+--//  WISHBONE rev.B2 compliant I2C Master byte-controller        ////
+--//                                                             ////
+--//                                                             ////
+--//  Author: Richard Herveille                                  ////
+--//          richard@asics.ws                                   ////
+--//          www.asics.ws                                       ////
+--//                                                             ////
+--//  Downloaded from: http://www.opencores.org/projects/i2c/    ////
+--//                                                             ////
+--///////////////////////////////////////////////////////////////////
+--//                                                             ////
+--// Copyright (C) 2001 Richard Herveille                        ////
+--//                    richard@asics.ws                         ////
+--//                                                             ////
+--// This source file may be used and distributed without        ////
+--// restriction provided that this copyright statement is not   ////
+--// removed from the file and that any derivative work contains ////
+--// the original copyright notice and the associated disclaimer.////
+--//                                                             ////
+--//     THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY     ////
+--// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED   ////
+--// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS   ////
+--// FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL THE AUTHOR      ////
+--// OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,         ////
+--// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES    ////
+--// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE   ////
+--// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR        ////
+--// BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF  ////
+--// LIABILITY, WHETHER IN  CONTRACT, STRICT LIABILITY, OR TORT  ////
+--// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT  ////
+--// OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE         ////
+--// POSSIBILITY OF SUCH DAMAGE.                                 ////
+--//                                                             ////
+--///////////////////////////////////////////////////////////////////
+-----------------------------------------------------------------------
+-- Copyright (c) 2008 - 2010 by Lattice Semiconductor Corporation                    
+-- --------------------------------------------------------------------                        
+--                                                                                   
+-- Disclaimer:                                                                       
+--                                                                                   
+-- This VHDL or Verilog source code is intended as a design reference                
+-- which illustrates how these types of functions can be implemented.                
+-- It is the user's responsibility to verify their design for                        
+-- consistency and functionality through the use of formal                           
+-- verification methods. Lattice Semiconductor provides no warranty                  
+-- regarding the use or functionality of this code.                                  
+--                                                                                   
+-- --------------------------------------------------------------------              
+--                                                                                   
+-- Lattice Semiconductor Corporation                                                 
+-- 5555 NE Moore Court                                                               
+-- Hillsboro, OR 97214                                                               
+-- U.S.A                                                                             
+--                                                                                   
+-- TEL: 1-800-Lattice (USA and Canada)                                               
+-- 503-268-8001 (other locations)                                                    
+--                                                                                   
+-- web: http://www.latticesemi.com/                                                  
+-- email: techsupport@latticesemi.com                                                
+--                                                                                   
+-- --------------------------------------------------------------------              
+-- Code Revision History :                                                           
+-- --------------------------------------------------------------------              
+-- Ver: | Author |Mod. Date |Changes Made:                                           
+-- V1.0 |K.P.    | 7/09     | Initial ver for VHDL                                       
+-- 			    | converted from LSC ref design RD1046                   
+-- --------------------------------------------------------------------  
+
+
+library ieee;
+use ieee.std_logic_1164.all;
+use ieee.std_logic_arith.all;
+use ieee.std_logic_unsigned.all;
+
+entity i2c_master_byte_ctrl is
+  port (
+        clk      : in  std_logic;						-- master clock
+        rst      : in  std_logic;						-- synchronous active high reset
+        nReset   : in  std_logic;						-- asynchronous active low reset
+        clk_cnt  : in  std_logic_vector(15 downto 0);	-- 4x SCL
+		-- control inputs
+        start    : in  std_logic;
+        stop     : in  std_logic;
+        read     : in  std_logic;
+        write    : in  std_logic;
+        ack_in   : in  std_logic;
+        din      : in  std_logic_vector(7 downto 0);
+		-- status outputs
+        cmd_ack  : out std_logic;
+        ack_out  : out std_logic;						-- i2c clock line input
+        dout     : out std_logic_vector(7 downto 0);
+        i2c_al   : in  std_logic;
+		-- signals for bit_controller
+		core_cmd : out std_logic_vector(3 downto 0);
+		core_txd : out std_logic;
+		core_rxd : in  std_logic;
+		core_ack : in  std_logic
+        );
+end;
+
+architecture arch of i2c_master_byte_ctrl is
+
+constant I2C_CMD_NOP	: std_logic_vector(3 downto 0) := "0000";
+constant I2C_CMD_START	: std_logic_vector(3 downto 0) := "0001";
+constant I2C_CMD_STOP	: std_logic_vector(3 downto 0) := "0010";
+constant I2C_CMD_WRITE	: std_logic_vector(3 downto 0) := "0100";
+constant I2C_CMD_READ	: std_logic_vector(3 downto 0) := "1000";
+
+
+constant ST_IDLE	: std_logic_vector(4 downto 0) := "00000";
+constant ST_START	: std_logic_vector(4 downto 0) := "00001";
+constant ST_READ	: std_logic_vector(4 downto 0) := "00010";
+constant ST_WRITE	: std_logic_vector(4 downto 0) := "00100";
+constant ST_ACK		: std_logic_vector(4 downto 0) := "01000";
+constant ST_STOP	: std_logic_vector(4 downto 0) := "10000";
+
+signal c_state : std_logic_vector(4 downto 0);
+
+
+signal go : std_logic;
+signal dcnt : std_logic_vector(2 downto 0);
+signal cnt_done : std_logic;
+
+signal sr : std_logic_vector(7 downto 0); --8bit shift register
+signal shift, ld : std_logic;
+
+signal cmd_ack_int : std_logic;
+
+
+begin
+
+go <= '1' when (((read = '1') OR (write = '1') OR (stop = '1')) AND (cmd_ack_int = '0')) else '0';
+dout <= sr;
+
+-- generate shift register
+process(clk,nReset)
+begin
+	if (nReset = '0') then
+		sr <= (others => '0');
+	elsif rising_edge(clk) then
+		if (rst = '1') then
+			sr <= (others => '0');
+		elsif (ld = '1') then
+			sr <= din;
+		elsif (shift = '1') then
+			sr <= sr(6 downto 0) & core_rxd;
+		end if;
+	end if;
+end process;
+
+-- generate counter
+process(clk,nReset)
+begin
+	if (nReset = '0') then
+		dcnt <= (others => '0');
+	elsif rising_edge(clk) then
+		if (rst = '1') then
+			dcnt <= (others => '0');
+		elsif (ld = '1') then
+			dcnt <= "111";
+		elsif (shift = '1') then
+			dcnt <= dcnt - '1';
+		end if;
+	end if;
+end process;
+
+cnt_done <= '1' when (dcnt = "000") else '0';
+
+-- state machine
+process(clk,nReset)
+begin
+	if (nReset = '0') then
+		core_cmd <= I2C_CMD_NOP;
+		core_txd <= '0';
+		shift <= '0';
+		ld <= '0';
+		cmd_ack_int <= '0';
+		c_state <= ST_IDLE;
+		ack_out <= '0';
+	elsif rising_edge(clk) then
+		if ((rst = '1') OR (i2c_al = '1')) then
+			core_cmd <= I2C_CMD_NOP;
+			core_txd <= '0';
+			shift <= '0';
+			ld <= '0';
+			cmd_ack_int <= '0';
+			c_state <= ST_IDLE;
+			ack_out <= '0';
+		else
+			-- initially reset all signals
+			core_txd <= sr(7);
+			shift <= '0';
+			ld <= '0';
+			cmd_ack_int <= '0';
+
+			case (c_state) is
+				when ST_IDLE =>
+						if (go = '1') then
+							if (start = '1') then
+								c_state <= ST_START;
+								core_cmd <= I2C_CMD_START;
+							elsif (read = '1') then
+								c_state <= ST_READ;
+								core_cmd <= I2C_CMD_READ;
+							elsif (write = '1') then
+								c_state <= ST_WRITE;
+								core_cmd <= I2C_CMD_WRITE;
+							else
+								c_state <= ST_STOP;
+								core_cmd <= I2C_CMD_STOP;
+							end if;
+							ld <= '1';
+						end if;
+				when ST_START =>
+						if (core_ack = '1') then
+							if (read = '1') then
+								c_state <= ST_READ;
+								core_cmd <= I2C_CMD_READ;
+							else
+								c_state <= ST_WRITE;
+								core_cmd <= I2C_CMD_WRITE;
+							end if;
+							ld <= '1';
+						end if;
+				when ST_WRITE =>
+						if (core_ack = '1') then
+							if (cnt_done = '1') then
+								c_state <= ST_ACK;
+								core_cmd <= I2C_CMD_READ;
+							else
+								c_state <= ST_WRITE;		-- stay in same state
+								core_cmd <= I2C_CMD_WRITE;	-- write next bit
+								shift <= '1';
+							end if;
+						end if;
+				when ST_READ =>
+						if (core_ack = '1') then
+							if (cnt_done = '1') then
+								c_state <= ST_ACK;
+								core_cmd <= I2C_CMD_WRITE;
+							else
+								c_state <= ST_READ;			-- stay in same state
+								core_cmd <= I2C_CMD_READ;	-- read next bit
+								shift <= '1';
+							end if;
+							shift <= '1';
+							core_txd <= ack_in;
+						end if;
+				when ST_ACK =>
+						if (core_ack = '1') then
+							if (stop = '1') then
+								c_state <= ST_STOP;
+								core_cmd <= I2C_CMD_STOP;
+							else
+								c_state <= ST_IDLE;
+								core_cmd <= I2C_CMD_NOP;
+								-- generate command acknowledge signal
+								cmd_ack_int <= '1';
+							end if;
+							-- assign ack_out output to bit_controller_rxd (contains last received bit)
+							ack_out <= core_rxd;
+							core_txd <= '1';
+						else
+							core_txd <= ack_in;
+						end if;
+				when ST_STOP =>
+						if (core_ack = '1') then
+							c_state <= ST_IDLE;
+							core_cmd <= I2C_CMD_NOP;
+							-- generate command acknowledge signal
+							cmd_ack_int <= '1';
+						end if;
+				when others => NULL;
+			end case;
+		end if;
+	end if;
+end process;
+
+cmd_ack <= cmd_ack_int;
+
+end arch;
diff --git a/legacy/EUDETdummy/hdl/i2c/i2c_master_registers.vhd b/legacy/EUDETdummy/hdl/i2c/i2c_master_registers.vhd
new file mode 100644
index 00000000..620e226c
--- /dev/null
+++ b/legacy/EUDETdummy/hdl/i2c/i2c_master_registers.vhd
@@ -0,0 +1,196 @@
+----------------------------------------------------------------------
+-- >>>>>>>>>>>>>>>>>>>>>> COPYRIGHT NOTICE <<<<<<<<<<<<<<<<<<<<<<<<<<<
+----------------------------------------------------------------------
+--///////////////////////////////////////////////////////////////////
+--//                                                             ////
+--//  WISHBONE rev.B2 compliant I2C Master registers             ////
+--//                                                             ////
+--//                                                             ////
+--//  Author: Richard Herveille                                  ////
+--//          richard@asics.ws                                   ////
+--//          www.asics.ws                                       ////
+--//                                                             ////
+--//  Downloaded from: http://www.opencores.org/projects/i2c/    ////
+--//                                                             ////
+--///////////////////////////////////////////////////////////////////
+--//                                                             ////
+--// Copyright (C) 2001 Richard Herveille                        ////
+--//                    richard@asics.ws                         ////
+--//                                                             ////
+--// This source file may be used and distributed without        ////
+--// restriction provided that this copyright statement is not   ////
+--// removed from the file and that any derivative work contains ////
+--// the original copyright notice and the associated disclaimer.////
+--//                                                             ////
+--//     THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY     ////
+--// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED   ////
+--// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS   ////
+--// FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL THE AUTHOR      ////
+--// OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,         ////
+--// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES    ////
+--// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE   ////
+--// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR        ////
+--// BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF  ////
+--// LIABILITY, WHETHER IN  CONTRACT, STRICT LIABILITY, OR TORT  ////
+--// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT  ////
+--// OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE         ////
+--// POSSIBILITY OF SUCH DAMAGE.                                 ////
+--//                                                             ////
+--///////////////////////////////////////////////////////////////////
+-- --------------------------------------------------------------------              
+-- >>>>>>>>>>>>>>>>>>>>>>>>> COPYRIGHT NOTICE <<<<<<<<<<<<<<<<<<<<<<<<<              
+-- --------------------------------------------------------------------              
+-- Copyright (c) 2008 - 2010 by Lattice Semiconductor Corporation                    
+-- --------------------------------------------------------------------                            
+--                                                                                   
+-- Disclaimer:                                                                       
+--                                                                                   
+-- This VHDL or Verilog source code is intended as a design reference                
+-- which illustrates how these types of functions can be implemented.                
+-- It is the user's responsibility to verify their design for                        
+-- consistency and functionality through the use of formal                           
+-- verification methods. Lattice Semiconductor provides no warranty                  
+-- regarding the use or functionality of this code.                                  
+--                                                                                   
+-- --------------------------------------------------------------------              
+--                                                                                   
+-- Lattice Semiconductor Corporation                                                 
+-- 5555 NE Moore Court                                                               
+-- Hillsboro, OR 97214                                                               
+-- U.S.A                                                                             
+--                                                                                   
+-- TEL: 1-800-Lattice (USA and Canada)                                               
+-- 503-268-8001 (other locations)                                                    
+--                                                                                   
+-- web: http://www.latticesemi.com/                                                  
+-- email: techsupport@latticesemi.com                                                
+--                                                                                   
+-- --------------------------------------------------------------------              
+-- Code Revision History :                                                           
+-- --------------------------------------------------------------------              
+-- Ver: | Author |Mod. Date |Changes Made:                                           
+-- V1.0 |K.P.    | 7/09     | Initial ver for VHDL                                       
+-- 			    | converted from LSC ref design RD1046                   
+-- --------------------------------------------------------------------    
+-- --------------------------------------------------------------------
+library ieee;
+use ieee.std_logic_1164.all;
+use ieee.std_logic_arith.all;
+use ieee.std_logic_unsigned.all;
+
+entity i2c_master_registers is
+  port (
+        wb_clk_i : in  std_logic;
+        rst_i    : in  std_logic;
+        wb_rst_i : in  std_logic;
+        wb_dat_i : in  std_logic_vector(7 downto 0);
+        wb_adr_i : in  std_logic_vector(2 downto 0);
+        wb_wacc  : in  std_logic;
+        i2c_al   : in  std_logic;
+        i2c_busy : in  std_logic;
+        done     : in  std_logic;
+        irxack   : in  std_logic;
+        prer     : out std_logic_vector(15 downto 0);	-- clock prescale register
+        ctr      : out std_logic_vector(7 downto 0);	-- control register
+        txr      : out std_logic_vector(7 downto 0);	-- transmit register
+        cr       : out std_logic_vector(7 downto 0);	-- command register
+        sr       : out std_logic_vector(7 downto 0)		-- status register
+        );
+end;
+
+architecture arch of i2c_master_registers is
+
+
+signal ctr_int : std_logic_vector(7 downto 0);
+signal cr_int : std_logic_vector(7 downto 0);
+
+signal al : std_logic;			-- status register arbitration lost bit
+signal rxack : std_logic;		-- received aknowledge from slave
+signal tip : std_logic;			-- transfer in progress
+signal irq_flag : std_logic;	-- interrupt pending flag
+
+begin
+
+-- generate prescale regisres, control registers, and transmit register
+process(wb_clk_i,rst_i)
+begin
+	if (rst_i = '0') then
+		prer <= (others => '1');
+		ctr_int <= (others => '0');
+		txr <= (others => '0');
+	elsif rising_edge(wb_clk_i) then
+		if (wb_rst_i = '1') then
+			prer <= (others => '1');
+			ctr_int <= (others => '0');
+			txr <= (others => '0');
+		elsif (wb_wacc = '1') then
+			case (wb_adr_i) is
+				when "000" => prer(7 downto 0)	<= wb_dat_i;
+				when "001" => prer(15 downto 8)	<= wb_dat_i;
+				when "010" => ctr_int			<= wb_dat_i;
+				when "011" => txr				<= wb_dat_i;
+				when others => NULL;
+			end case;
+		end if;
+	end if;
+end process;
+
+ctr <= ctr_int;
+
+-- generate command register (special case)
+process(wb_clk_i,rst_i)
+begin
+	if (rst_i = '0') then
+		cr_int <= (others => '0');
+	elsif rising_edge(wb_clk_i) then
+		if (wb_rst_i = '1') then
+			cr_int <= (others => '0');
+		elsif (wb_wacc = '1') then
+			if ((ctr_int(7) = '1') AND (wb_adr_i = "100")) then
+				cr_int <= wb_dat_i;
+			end if;
+		else
+			if ((done = '1') OR (i2c_al = '1')) then
+				cr_int(7 downto 4) <= "0000";	-- clear command b
+			end if;							-- or when aribitr
+			cr_int(2 downto 1) <= "00";			-- reserved bits
+			cr_int(0) <= '0';					-- clear IRQ_ACK b
+		end if;
+	end if;
+end process;
+
+cr <= cr_int;
+
+-- generate status register block + interrupt request signal
+-- each output will be assigned to corresponding sr register locations on top level
+process(wb_clk_i,rst_i)
+begin
+	if (rst_i = '0') then
+		al 			<= '0';
+		rxack 		<= '0';
+		tip 		<= '0';
+		irq_flag	<= '0';
+	elsif rising_edge(wb_clk_i) then
+		if (wb_rst_i = '1') then
+			al 			<= '0';
+			rxack 		<= '0';
+			tip 		<= '0';
+			irq_flag	<= '0';
+		else
+			al			<= i2c_al OR (al AND NOT(cr_int(7)));
+			rxack		<= irxack;
+			tip			<= (cr_int(5) OR cr_int(4));
+			irq_flag	<= (done OR i2c_al OR irq_flag) AND NOT(cr_int(0)); -- interrupt request flag is always generated
+		end if;
+	end if;
+end process;
+
+sr(7)	 		<= rxack;
+sr(6)			<= i2c_busy;
+sr(5)			<= al;
+sr(4 downto 2)	<= "000"; -- reserved
+sr(1)			<= tip;
+sr(0)			<= irq_flag;
+
+
+end arch;
diff --git a/legacy/EUDETdummy/hdl/i2c/i2c_master_rtl.vhd b/legacy/EUDETdummy/hdl/i2c/i2c_master_rtl.vhd
new file mode 100644
index 00000000..6d0bb973
--- /dev/null
+++ b/legacy/EUDETdummy/hdl/i2c/i2c_master_rtl.vhd
@@ -0,0 +1,97 @@
+--=============================================================================
+--! @file i2c_master_rtl.vhd
+--=============================================================================
+--
+-------------------------------------------------------------------------------
+-- --
+-- University of Bristol, High Energy Physics Group.
+-- --
+------------------------------------------------------------------------------- --
+-- VHDL Architecture work.i2c_master.rtl
+--
+--! @brief Wraps the Wishbone I2C master in a wrapper where the IPBus signals\n
+--! are bundled together in a record\n
+--
+--! @author David Cussans , David.Cussans@bristol.ac.uk
+--
+--! @date 17:22:12 11/30/12
+--
+--! @version v0.1
+--
+--! @details
+--!
+--!
+--! <b>Dependencies:</b>\n
+--!
+--! <b>References:</b>\n
+--!
+--! <b>Modified by:</b>\n
+--! Author: 
+-------------------------------------------------------------------------------
+--! \n\n<b>Last changes:</b>\n
+-------------------------------------------------------------------------------
+--! @todo <next thing to do> \n
+--! <another thing to do> \n
+--
+--------------------------------------------------------------------------------
+-- 
+-- Created using using Mentor Graphics HDL Designer(TM) 2010.3 (Build 21)
+--
+LIBRARY ieee;
+USE ieee.std_logic_1164.all;
+USE ieee.numeric_std.all;
+
+USE work.ipbus.all;
+
+ENTITY i2c_master IS
+   PORT( 
+      i2c_scl_i     : IN     std_logic;
+      i2c_sda_i     : IN     std_logic;
+      ipbus_clk_i   : IN     std_logic;
+      ipbus_i       : IN     ipb_wbus;    -- Signals from IPBus core to slave
+      ipbus_reset_i : IN     std_logic;
+      i2c_scl_enb_o : OUT    std_logic;
+      i2c_sda_enb_o : OUT    std_logic;
+      ipbus_o       : OUT    ipb_rbus     -- signals from slave to IPBus core
+   );
+
+-- Declarations
+
+END ENTITY i2c_master ;
+
+--
+ARCHITECTURE rtl OF i2c_master IS
+  
+  --signal s_i2c_scl, s_i2c_scl_o, s_i2c_scl_enb, s_i2c_sda, s_i2c_sda_enb : std_logic ;
+  
+BEGIN
+  
+  --i2c_scl_b <= s_i2c_scl when (s_i2c_scl_enb = '0') else 'Z';
+  --i2c_sda_b <= s_i2c_sda when (s_i2c_sda_enb = '0') else 'Z';
+
+  i2c_interface: entity work.i2c_master_top port map(
+                wb_clk_i => ipbus_clk_i,
+                wb_rst_i => ipbus_reset_i,
+                arst_i => '1',
+                wb_adr_i => ipbus_i.ipb_addr(2 downto 0),
+                wb_dat_i => ipbus_i.ipb_wdata(7 downto 0),
+                wb_dat_o => ipbus_o.ipb_rdata(7 downto 0),
+                wb_we_i => ipbus_i.ipb_write,
+                wb_stb_i => ipbus_i.ipb_strobe,
+                wb_cyc_i => '1',
+                wb_ack_o => ipbus_o.ipb_ack,
+                wb_inta_o => open,
+                scl_pad_i => i2c_scl_i,
+                scl_pad_o => open,
+                scl_padoen_o => i2c_scl_enb_o,
+                sda_pad_i => i2c_sda_i,
+                sda_pad_o => open,
+                sda_padoen_o => i2c_sda_enb_o
+        );
+        
+  
+  ipbus_o.ipb_rdata(31 downto 8) <= ( others => '0');
+  ipbus_o.ipb_err <= '0'; -- never return an error.
+  
+END ARCHITECTURE rtl;
+
diff --git a/legacy/EUDETdummy/hdl/i2c/i2c_master_top.vhd b/legacy/EUDETdummy/hdl/i2c/i2c_master_top.vhd
new file mode 100644
index 00000000..a6f0aabb
--- /dev/null
+++ b/legacy/EUDETdummy/hdl/i2c/i2c_master_top.vhd
@@ -0,0 +1,344 @@
+----------------------------------------------------------------------
+-- >>>>>>>>>>>>>>>>>>>>>> COPYRIGHT NOTICE <<<<<<<<<<<<<<<<<<<<<<<<<<<
+----------------------------------------------------------------------
+--///////////////////////////////////////////////////////////////////
+--//                                                             ////
+--//  WISHBONE rev.B2 compliant I2C Master bit-controller        ////
+--//                                                             ////
+--//                                                             ////
+--//  Author: Richard Herveille                                  ////
+--//          richard@asics.ws                                   ////
+--//          www.asics.ws                                       ////
+--//                                                             ////
+--//  Downloaded from: http://www.opencores.org/projects/i2c/    ////
+--//                                                             ////
+--///////////////////////////////////////////////////////////////////
+--//                                                             ////
+--// Copyright (C) 2001 Richard Herveille                        ////
+--//                    richard@asics.ws                         ////
+--//                                                             ////
+--// This source file may be used and distributed without        ////
+--// restriction provided that this copyright statement is not   ////
+--// removed from the file and that any derivative work contains ////
+--// the original copyright notice and the associated disclaimer.////
+--//                                                             ////
+--//     THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY     ////
+--// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED   ////
+--// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS   ////
+--// FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL THE AUTHOR      ////
+--// OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,         ////
+--// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES    ////
+--// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE   ////
+--// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR        ////
+--// BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF  ////
+--// LIABILITY, WHETHER IN  CONTRACT, STRICT LIABILITY, OR TORT  ////
+--// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT  ////
+--// OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE         ////
+--// POSSIBILITY OF SUCH DAMAGE.                                 ////
+--//                                                             ////
+--///////////////////////////////////////////////////////////////////
+-- --------------------------------------------------------------------              
+-- >>>>>>>>>>>>>>>>>>>>>>>>> COPYRIGHT NOTICE <<<<<<<<<<<<<<<<<<<<<<<<<              
+-- --------------------------------------------------------------------              
+-- Copyright (c) 2008 - 2010 by Lattice Semiconductor Corporation                    
+-- --------------------------------------------------------------------                            
+--                                                                                   
+-- Disclaimer:                                                                       
+--                                                                                   
+-- This VHDL or Verilog source code is intended as a design reference                
+-- which illustrates how these types of functions can be implemented.                
+-- It is the user's responsibility to verify their design for                        
+-- consistency and functionality through the use of formal                           
+-- verification methods. Lattice Semiconductor provides no warranty                  
+-- regarding the use or functionality of this code.                                  
+--                                                                                   
+-- --------------------------------------------------------------------              
+--                                                                                   
+-- Lattice Semiconductor Corporation                                                 
+-- 5555 NE Moore Court                                                               
+-- Hillsboro, OR 97214                                                               
+-- U.S.A                                                                             
+--                                                                                   
+-- TEL: 1-800-Lattice (USA and Canada)                                               
+-- 503-268-8001 (other locations)                                                    
+--                                                                                   
+-- web: http://www.latticesemi.com/                                                  
+-- email: techsupport@latticesemi.com                                                
+--                                                                                   
+-- --------------------------------------------------------------------              
+-- Code Revision History :                                                           
+-- --------------------------------------------------------------------              
+-- Ver: | Author |Mod. Date |Changes Made:                                           
+-- V1.0 |K.P.    | 7/09     | Initial ver for VHDL                                       
+-- 			    | converted from LSC ref design RD1046                   
+-------------------------------------------------------------------------------
+-- Changes at University of bristol:
+-- V1.0A|D.G.C   | 5/11     | Changed name and ports to fit OC original
+-- --------------------------------------------------------------------    
+
+library ieee;
+use ieee.std_logic_1164.all;
+use ieee.std_logic_arith.all;
+use ieee.std_logic_unsigned.all;
+
+entity i2c_master_top is
+  generic (
+		ARST_LVL : integer := 0
+		);
+  port (
+        wb_clk_i : in  std_logic;
+        wb_rst_i : in  std_logic;
+        arst_i   : in  std_logic;
+        wb_adr_i : in  std_logic_vector(2 downto 0);
+        wb_dat_i : in  std_logic_vector(7 downto 0);
+        wb_dat_o : out std_logic_vector(7 downto 0);
+        wb_we_i  : in  std_logic;
+        wb_stb_i : in  std_logic;
+        wb_cyc_i : in  std_logic;
+        wb_ack_o : out std_logic;
+        wb_inta_o: out std_logic;
+        scl_pad_i: in std_logic;
+        scl_pad_o: out std_logic;
+        scl_padoen_o: out std_logic;
+        sda_pad_i: in std_logic;
+        sda_pad_o: out std_logic;
+        sda_padoen_o: out std_logic
+--        scl      : inout std_logic;
+--        sda      : inout std_logic
+        );
+end;
+
+architecture arch of i2c_master_top is
+
+component i2c_master_bit_ctrl
+  port (
+        clk      : in  std_logic;
+        rst      : in  std_logic;
+        nReset   : in  std_logic;
+        clk_cnt  : in  std_logic_vector(15 downto 0);	-- clock prescale value
+        ena      : in  std_logic;						-- core enable signal
+        cmd      : in  std_logic_vector(3 downto 0);
+        cmd_ack  : out std_logic;						-- command complete acknowledge
+        busy     : out std_logic;						-- i2c bus busy
+        al       : out std_logic;						-- i2c bus arbitration lost
+        din      : in  std_logic;
+        dout     : out std_logic;
+        scl_i    : in  std_logic;						-- i2c clock line input
+        scl_o    : out std_logic;						-- i2c clock line output
+        scl_oen  : out std_logic;						-- i2c clock line output enable (active low)
+        sda_i    : in  std_logic;						-- i2c data line input
+        sda_o    : out std_logic;						-- i2c data line output
+        sda_oen  : out std_logic						-- i2c data line output enable (active low)
+        );
+end component;
+
+component i2c_master_byte_ctrl
+  port (
+        clk      : in  std_logic;						-- master clock
+        rst      : in  std_logic;						-- synchronous active high reset
+        nReset   : in  std_logic;						-- asynchronous active low reset
+        clk_cnt  : in  std_logic_vector(15 downto 0);	-- 4x SCL
+		-- control inputs
+        start    : in  std_logic;
+        stop     : in  std_logic;
+        read     : in  std_logic;
+        write    : in  std_logic;
+        ack_in   : in  std_logic;
+        din      : in  std_logic_vector(7 downto 0);
+		-- status outputs
+        cmd_ack  : out std_logic;
+        ack_out  : out std_logic;						-- i2c clock line input
+        dout     : out std_logic_vector(7 downto 0);
+        i2c_al   : in  std_logic;
+		-- signals for bit_controller
+		core_cmd : out std_logic_vector(3 downto 0);
+		core_txd : out std_logic;
+		core_rxd : in  std_logic;
+		core_ack : in  std_logic
+        );
+end component;
+
+component i2c_master_registers
+  port (
+        wb_clk_i : in  std_logic;
+        rst_i    : in  std_logic;
+        wb_rst_i : in  std_logic;
+        wb_dat_i : in  std_logic_vector(7 downto 0);
+        wb_adr_i : in  std_logic_vector(2 downto 0);
+        wb_wacc  : in  std_logic;
+        i2c_al   : in  std_logic;
+        i2c_busy : in  std_logic;
+        done     : in  std_logic;
+        irxack   : in  std_logic;
+        prer     : out std_logic_vector(15 downto 0);	-- clock prescale register
+        ctr      : out std_logic_vector(7 downto 0);	-- control register
+        txr      : out std_logic_vector(7 downto 0);	-- transmit register
+        cr       : out std_logic_vector(7 downto 0);	-- command register
+        sr       : out std_logic_vector(7 downto 0)		-- status register
+        );
+end component;
+
+
+signal prer : std_logic_vector(15 downto 0);
+signal ctr : std_logic_vector(7 downto 0);
+signal txr : std_logic_vector(7 downto 0);
+signal rxr : std_logic_vector(7 downto 0);
+signal cr : std_logic_vector(7 downto 0);
+signal sr : std_logic_vector(7 downto 0);
+
+signal done : std_logic;
+signal core_en : std_logic;
+signal ien : std_logic;
+signal irxack : std_logic;
+signal irq_flag : std_logic;
+signal i2c_busy : std_logic;
+signal i2c_al : std_logic;
+
+signal core_cmd : std_logic_vector(3 downto 0);
+signal core_txd : std_logic;
+signal core_ack, core_rxd : std_logic;
+
+-- Don't need these signals, since passing them through
+-- component interface
+--signal scl_pad_i : std_logic;
+--signal scl_pad_o : std_logic;
+--signal scl_padoen_o : std_logic;
+--
+--signal sda_pad_i : std_logic;
+--signal sda_pad_o : std_logic;
+--signal sda_padoen_o : std_logic;
+
+signal rst_i : std_logic;
+
+signal sta : std_logic;
+signal sto : std_logic;
+signal rd : std_logic;
+signal wr : std_logic;
+signal ack : std_logic;
+signal iack : std_logic;
+
+signal wb_ack_o_int : std_logic;
+
+signal wb_wacc : std_logic;
+signal acki : std_logic;
+
+begin
+
+  -- Don't need to copy these signal - passing through
+  -- component interface
+--scl_pad_i <= scl;
+--sda_pad_i <= sda;
+
+rst_i <= arst_i when (ARST_LVL = 0) else NOT(arst_i);
+
+wb_wacc <= wb_cyc_i AND wb_stb_i AND wb_we_i;
+
+sta <= cr(7);
+sto <= cr(6);
+rd <= cr(5);
+wr <= cr(4);
+ack <= cr(3);
+acki <= cr(0);
+
+core_en <= ctr(7);
+ien <= ctr(6);
+
+process(wb_clk_i)
+begin
+	if rising_edge(wb_clk_i) then
+		wb_ack_o_int <= wb_cyc_i AND wb_stb_i AND NOT(wb_ack_o_int);
+	end if;
+end process;
+
+wb_ack_o <= wb_ack_o_int;
+
+process(wb_clk_i)
+begin
+	if rising_edge(wb_clk_i) then
+		case (wb_adr_i) is
+			when "000" => wb_dat_o <= prer(7 downto 0);
+			when "001" => wb_dat_o <= prer(15 downto 8);
+			when "010" => wb_dat_o <= ctr;
+			when "011" => wb_dat_o <= rxr;
+			when "100" => wb_dat_o <= sr;
+			when "101" => wb_dat_o <= txr;
+			when "110" => wb_dat_o <= cr;
+			when "111" => wb_dat_o <= "00000000";
+			when others => NULL;
+		end case;
+	end if;
+end process;
+
+process(wb_clk_i,rst_i)
+begin
+	if (rst_i = '0') then
+		wb_inta_o <= '0';
+	elsif rising_edge(wb_clk_i) then
+		wb_inta_o <= sr(0) AND ien;
+	end if;
+end process;
+
+
+
+byte_controller: i2c_master_byte_ctrl port map(
+	clk 		=> wb_clk_i,
+	rst			=> wb_rst_i,
+	nReset		=> rst_i,
+	clk_cnt		=> prer,
+	start		=> sta,
+	stop		=> sto,
+	read		=> rd,
+	write		=> wr,
+	ack_in		=> ack,
+	din			=> txr,
+	cmd_ack		=> done,
+	ack_out		=> irxack,
+	dout		=> rxr,
+	i2c_al		=> i2c_al,
+	core_cmd	=> core_cmd,
+	core_ack	=> core_ack,
+	core_txd	=> core_txd,
+	core_rxd	=> core_rxd);
+
+bit_controller: i2c_master_bit_ctrl port map(
+	clk			=> wb_clk_i,
+	rst			=> wb_rst_i,
+	nReset		=> rst_i,
+	ena			=> core_en,
+	clk_cnt		=> prer,
+	cmd			=> core_cmd,
+	cmd_ack		=> core_ack,
+	busy		=> i2c_busy,
+	al			=> i2c_al,
+	din			=> core_txd,
+	dout		=> core_rxd,
+	scl_i		=> scl_pad_i,
+	scl_o		=> scl_pad_o,
+	scl_oen		=> scl_padoen_o,
+	sda_i		=> sda_pad_i,
+	sda_o		=> sda_pad_o,
+	sda_oen		=> sda_padoen_o);
+
+registers: i2c_master_registers port map(
+	wb_clk_i	=> wb_clk_i,
+	rst_i		=> rst_i,
+	wb_rst_i	=> wb_rst_i,
+	wb_dat_i	=> wb_dat_i,
+	wb_wacc		=> wb_wacc,
+	wb_adr_i	=> wb_adr_i,
+	i2c_al		=> i2c_al,
+	i2c_busy	=> i2c_busy,
+	done		=> done,
+	irxack		=> irxack,
+	prer		=> prer,
+	ctr			=> ctr,
+	txr			=> txr,
+	cr			=> cr,
+	sr			=> sr);
+
+
+-- edited from Lattice original to pass uni-directional signals
+--scl <= scl_pad_o when (scl_padoen_o = '0') else 'Z';
+--sda <= sda_pad_o when (sda_padoen_o = '0') else 'Z';
+
+end arch;
diff --git a/legacy/EUDETdummy/hdl/ipbus_addr_decode.vhd b/legacy/EUDETdummy/hdl/ipbus_addr_decode.vhd
new file mode 100644
index 00000000..dc630e87
--- /dev/null
+++ b/legacy/EUDETdummy/hdl/ipbus_addr_decode.vhd
@@ -0,0 +1,50 @@
+-- Address decode logic for ipbus fabric
+--
+-- This file has been AUTOGENERATED from the address table - do not hand edit
+--
+-- We assume the synthesis tool is clever enough to recognise exclusive conditions
+-- in the if statement.
+--
+-- Dave Newbold, February 2011
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.all;
+use ieee.numeric_std.all;
+use work.ipbus.all;
+
+package ipbus_addr_decode is
+
+  function ipbus_addr_sel(signal addr : in std_logic_vector(31 downto 0)) return integer;
+
+end ipbus_addr_decode;
+
+package body ipbus_addr_decode is
+
+  function ipbus_addr_sel(signal addr : in std_logic_vector(31 downto 0)) return integer is
+    variable sel : integer;
+  begin
+		if    std_match(addr, "-----------------------0001-----") then
+			sel := 0; -- DUTInterfaces / base 00000020 / mask 0000001f
+		elsif std_match(addr, "-----------------------0010-----") then
+			sel := 1; -- triggerInputs / base 00000040 / mask 0000001f
+		elsif std_match(addr, "-----------------------0011-----") then
+			sel := 2; -- triggerLogic / base 00000060 / mask 0000001f
+		elsif std_match(addr, "-----------------------0100-----") then
+			sel := 3; -- eventBuffer / base 00000080 / mask 0000001f
+		elsif std_match(addr, "-----------------------0101-----") then
+			sel := 4; -- logic_clocks / base 000000a0 / mask 0000001f
+		elsif std_match(addr, "-----------------------0110-----") then
+			sel := 5; -- i2c_master / base 000000c0 / mask 00000007
+		elsif std_match(addr, "-----------------------1010-----") then
+                        sel := 6; -- Event_Formatter / base 00000140 / mask 0000001f
+                elsif std_match(addr, "-----------------------1011-----") then
+                        sel := 7; -- TPix3_iface   / base 00000160 / mask 0000001f
+		elsif std_match(addr, "-----------------------0000-----") then
+			sel := 8; -- version / base 00000000 / mask 00000000
+		else
+			sel := 99;
+		end if;
+		return sel;
+	end ipbus_addr_sel;
+ 
+end ipbus_addr_decode;
diff --git a/legacy/EUDETdummy/hdl/ipbus_decode_ipbus_example.vhd b/legacy/EUDETdummy/hdl/ipbus_decode_ipbus_example.vhd
new file mode 100644
index 00000000..a315ed03
--- /dev/null
+++ b/legacy/EUDETdummy/hdl/ipbus_decode_ipbus_example.vhd
@@ -0,0 +1,69 @@
+-- Address decode logic for ipbus fabric
+-- 
+-- 
+-- We assume the synthesis tool is clever enough to recognise exclusive conditions
+-- in the if statement.
+-- 
+-- Dave Newbold, February 2011
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.all;
+use ieee.numeric_std.all;
+
+package ipbus_decode_ipbus_example is
+
+  constant IPBUS_SEL_WIDTH: positive := 5; -- Should be enough for now?
+  subtype ipbus_sel_t is std_logic_vector(IPBUS_SEL_WIDTH - 1 downto 0);
+  function ipbus_sel_ipbus_example(addr : in std_logic_vector(31 downto 0)) return ipbus_sel_t;
+
+-- START automatically  generated VHDL the Fri Oct  7 12:10:31 2016 
+  constant N_SLV_CTRL_REG: integer := 0; --for tests
+  constant N_SLV_REG: integer := 1; -- for tests
+  constant N_SLV_I2C_0: integer := 2; --I2C core for the TLU
+  constant N_SLV_DUT: integer :=3;
+  constant N_SLV_SHUT: integer :=4;
+  constant N_SLV_EVBUF: integer :=5;
+  constant N_SLV_EVFMT: integer :=6;
+  constant N_SLV_TRGIN: integer :=7;
+  constant N_SLV_TRGLGC: integer :=8;
+  constant N_SLV_LGCCLK: integer :=9;
+    
+  constant N_SLAVES: integer := 10; --Total number of slaves
+-- END automatically generated VHDL
+  --constant N_I2C_CORES: integer := 3; --How many I2C cores
+    
+end ipbus_decode_ipbus_example;
+
+package body ipbus_decode_ipbus_example is
+
+  function ipbus_sel_ipbus_example(addr : in std_logic_vector(31 downto 0)) return ipbus_sel_t is
+    variable sel: ipbus_sel_t;
+  begin
+
+-- START automatically  generated VHDL the Fri Oct  7 12:10:31 2016 
+    if    std_match(addr, "-----------------000----------0-") then
+      sel := ipbus_sel_t(to_unsigned(N_SLV_CTRL_REG, IPBUS_SEL_WIDTH)); -- ctrl_reg / base 0x00000000 / mask 0x00003002
+    elsif std_match(addr, "-----------------000----------1-") then
+      sel := ipbus_sel_t(to_unsigned(N_SLV_REG, IPBUS_SEL_WIDTH)); -- reg / base 0x00000002 / mask 0x00003002
+    --elsif std_match(addr, "-----------------001------------") then
+      --sel := ipbus_sel_t(to_unsigned(N_SLV_RAM, IPBUS_SEL_WIDTH)); -- ram / base 0x00001000 / mask 0x00003000
+    --elsif std_match(addr, "-----------------010----------0-") then
+     -- sel := ipbus_sel_t(to_unsigned(N_SLV_PRAM, IPBUS_SEL_WIDTH)); -- pram / base 0x00002000 / mask 0x00003002
+    elsif std_match(addr, "-----------------011------------") then
+      sel := ipbus_sel_t(to_unsigned(N_SLV_I2C_0, IPBUS_SEL_WIDTH)); -- i2c / base 0x00003000 / mask 0x00003002
+    elsif std_match(addr, "-----------------100------------") then
+      sel := ipbus_sel_t(to_unsigned(N_SLV_DUT, IPBUS_SEL_WIDTH)); -- i2c / base 0x00004000 / mask 0x00003002
+    elsif std_match(addr, "-----------------101------------") then
+      sel := ipbus_sel_t(to_unsigned(N_SLV_TRGIN, IPBUS_SEL_WIDTH)); -- i2c / base 0x00005000 / mask 0x00003002
+-- END automatically generated VHDL
+
+    else
+        sel := ipbus_sel_t(to_unsigned(N_SLAVES, IPBUS_SEL_WIDTH));
+    end if;
+
+    return sel;
+
+  end function ipbus_sel_ipbus_example;
+
+end ipbus_decode_ipbus_example;
+
diff --git a/legacy/EUDETdummy/hdl/ipbus_decode_tlu.vhd b/legacy/EUDETdummy/hdl/ipbus_decode_tlu.vhd
new file mode 100644
index 00000000..114da401
--- /dev/null
+++ b/legacy/EUDETdummy/hdl/ipbus_decode_tlu.vhd
@@ -0,0 +1,73 @@
+-- Address decode logic for ipbus fabric
+-- 
+-- 
+-- 
+-- Paolo Baesso, February 2017
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.all;
+use ieee.numeric_std.all;
+
+package ipbus_decode_tlu is
+
+  constant IPBUS_SEL_WIDTH: positive := 5; -- Should be enough for now?
+  subtype ipbus_sel_t is std_logic_vector(IPBUS_SEL_WIDTH - 1 downto 0);
+  function ipbus_sel_ipbus_example(addr : in std_logic_vector(31 downto 0)) return ipbus_sel_t;
+
+-- START automatically  generated VHDL the Fri Oct  7 12:10:31 2016 
+  constant N_SLV_CTRL_REG: integer := 0; --for tests
+  constant N_SLV_REG: integer := 1; -- for tests
+  constant N_SLV_I2C_0: integer := 2; --I2C core for the TLU
+  constant N_SLV_DUT: integer :=3;
+  constant N_SLV_SHUT: integer :=4;
+  constant N_SLV_EVBUF: integer :=5;
+  constant N_SLV_EVFMT: integer :=6;
+  constant N_SLV_TRGIN: integer :=7;
+  constant N_SLV_TRGLGC: integer :=8;
+  constant N_SLV_LGCCLK: integer :=9;
+    
+  constant N_SLAVES: integer := 10; --Total number of IPBus slaves
+-- END automatically generated VHDL
+  --constant N_I2C_CORES: integer := 3; --How many I2C cores
+    
+end ipbus_decode_tlu;
+
+package body ipbus_decode_tlu is
+
+  function ipbus_sel_ipbus_example(addr : in std_logic_vector(31 downto 0)) return ipbus_sel_t is
+    variable sel: ipbus_sel_t;
+  begin
+
+-- START automatically  generated VHDL the Fri Oct  7 12:10:31 2016 
+    if    std_match(addr, "----------------0000----------0-") then
+        sel := ipbus_sel_t(to_unsigned(N_SLV_CTRL_REG, IPBUS_SEL_WIDTH)); -- ctrl_reg / base 0x00000000 / mask 0x00003002
+    elsif std_match(addr, "----------------0000----------1-") then
+        sel := ipbus_sel_t(to_unsigned(N_SLV_REG, IPBUS_SEL_WIDTH)); -- reg / base 0x00000002 / mask 0x00003002
+    elsif std_match(addr, "----------------0001------------") then
+        sel := ipbus_sel_t(to_unsigned(N_SLV_DUT, IPBUS_SEL_WIDTH)); -- ram / base 0x00001000 / mask 0x00003000
+    elsif std_match(addr, "----------------0010----------0-") then
+        sel := ipbus_sel_t(to_unsigned(N_SLV_SHUT, IPBUS_SEL_WIDTH)); -- shutter / base 0x00002000 / mask 0x00003002
+    elsif std_match(addr, "----------------0011------------") then
+        sel := ipbus_sel_t(to_unsigned(N_SLV_I2C_0, IPBUS_SEL_WIDTH)); -- i2c / base 0x00003000 / mask 0x00003002
+    elsif std_match(addr, "----------------0100------------") then
+        sel := ipbus_sel_t(to_unsigned(N_SLV_EVBUF, IPBUS_SEL_WIDTH)); -- event buffer / base 0x00004000 / mask 0x00003002
+    elsif std_match(addr, "----------------0101------------") then
+        sel := ipbus_sel_t(to_unsigned(N_SLV_EVFMT, IPBUS_SEL_WIDTH)); -- event formatter / base 0x00005000 / mask 0x00003002
+    elsif std_match(addr, "----------------0110------------") then
+        sel := ipbus_sel_t(to_unsigned(N_SLV_TRGIN, IPBUS_SEL_WIDTH)); -- trigger inputs / base 0x00006000 / mask 0x00003002
+    elsif std_match(addr, "----------------0111------------") then
+        sel := ipbus_sel_t(to_unsigned(N_SLV_TRGLGC, IPBUS_SEL_WIDTH)); -- trigger logic / base 0x00007000 / mask 0x00003002
+    elsif std_match(addr, "----------------1000------------") then
+        sel := ipbus_sel_t(to_unsigned(N_SLV_LGCCLK, IPBUS_SEL_WIDTH)); -- logic clocks / base 0x00008000 / mask 0x00003002
+-- END automatically generated VHDL
+ 
+    else
+        sel := ipbus_sel_t(to_unsigned(N_SLAVES, IPBUS_SEL_WIDTH));
+    end if;
+
+    return sel;
+
+  end function ipbus_sel_ipbus_example;
+
+end ipbus_decode_tlu;
+
diff --git a/legacy/EUDETdummy/hdl/ipbus_example.vhd b/legacy/EUDETdummy/hdl/ipbus_example.vhd
new file mode 100644
index 00000000..5cc5f12c
--- /dev/null
+++ b/legacy/EUDETdummy/hdl/ipbus_example.vhd
@@ -0,0 +1,174 @@
+-- ipbus_example
+--
+-- selection of different IPBus slaves without actual function,
+-- just for performance evaluation of the IPbus/uhal system
+--
+-- Kristian Harder, March 2014
+-- based on code by Dave Newbold, February 2011
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+use work.ipbus.all;
+use work.ipbus_reg_types.all;
+use work.ipbus_decode_ipbus_example.all;
+
+entity ipbus_example is
+	port(
+		ipb_clk: in std_logic;
+		ipb_rst: in std_logic;
+		ipb_in: in ipb_wbus;
+		ipb_out: out ipb_rbus;
+		nuke: out std_logic;
+		soft_rst: out std_logic;
+		--i2c_scl_b: INOUT  std_logic;
+        --i2c_sda_b: INOUT  std_logic;
+        
+        --i2c_sda_i: IN std_logic;
+        --i2c_scl_i: IN std_logic;
+        --i2c_scl_enb_o: OUT std_logic;
+        --i2c_sda_enb_o: OUT std_logic;
+                
+        i2c_sda_i: IN std_logic_vector(N_I2C_CORES - 1 downto 0);
+        i2c_scl_i: IN std_logic_vector(N_I2C_CORES - 1 downto 0);
+        i2c_scl_enb_o: OUT std_logic_vector(N_I2C_CORES - 1 downto 0);
+        i2c_sda_enb_o: OUT std_logic_vector(N_I2C_CORES - 1 downto 0);
+        userled: out std_logic
+	);
+
+end ipbus_example;
+
+architecture rtl of ipbus_example is
+
+	signal ipbw: ipb_wbus_array(N_SLAVES - 1 downto 0);
+	signal ipbr: ipb_rbus_array(N_SLAVES - 1 downto 0);
+	signal ctrl, stat: ipb_reg_v(0 downto 0);
+    --SIGNAL s_i2c_scl_enb         : std_logic;
+    --SIGNAL s_i2c_sda_enb         : std_logic;
+           
+    -->P
+       COMPONENT i2c_master
+    PORT (
+       i2c_scl_i     : IN     std_logic;
+       i2c_sda_i     : IN     std_logic;
+       ipbus_clk_i   : IN     std_logic;
+       ipbus_i       : IN     ipb_wbus;
+       ipbus_reset_i : IN     std_logic;
+       i2c_scl_enb_o : OUT    std_logic;
+       i2c_sda_enb_o : OUT    std_logic;
+       ipbus_o       : OUT    ipb_rbus
+    );
+    END COMPONENT i2c_master;
+    FOR ALL : i2c_master USE ENTITY work.i2c_master;--<P
+begin
+
+-- ipbus address decode
+    --i2c_scl_b <= '0' when (s_i2c_scl_enb = '0') else 'Z';
+    --i2c_sda_b <= '0' when (s_i2c_sda_enb = '0') else 'Z';
+		
+	fabric: entity work.ipbus_fabric_sel
+    generic map(
+    	NSLV => N_SLAVES,
+    	SEL_WIDTH => IPBUS_SEL_WIDTH)
+    port map(
+      ipb_in => ipb_in,
+      ipb_out => ipb_out,
+      sel => ipbus_sel_ipbus_example(ipb_in.ipb_addr),
+      ipb_to_slaves => ipbw,
+      ipb_from_slaves => ipbr
+    );
+
+-- Slave 0: id / rst reg
+
+	slave0: entity work.ipbus_ctrlreg_v
+		port map(
+			clk => ipb_clk,
+			reset => ipb_rst,
+			ipbus_in => ipbw(N_SLV_CTRL_REG),
+			ipbus_out => ipbr(N_SLV_CTRL_REG),
+			d => stat,
+			q => ctrl
+		);
+		
+		stat(0) <= X"abcdfedc";
+		soft_rst <= ctrl(0)(0);
+		nuke <= ctrl(0)(1);
+
+-- Slave 1: register
+
+	slave1: entity work.ipbus_reg_v
+		port map(
+			clk => ipb_clk,
+			reset => ipb_rst,
+			ipbus_in => ipbw(N_SLV_REG),
+			ipbus_out => ipbr(N_SLV_REG),
+			q => open
+		);
+
+-- Slave 2: 1kword RAM
+
+	slave4: entity work.ipbus_ram
+		generic map(ADDR_WIDTH => 10)
+		port map(
+			clk => ipb_clk,
+			reset => ipb_rst,
+			ipbus_in => ipbw(N_SLV_RAM),
+			ipbus_out => ipbr(N_SLV_RAM)
+		);
+	
+-- Slave 3: peephole RAM
+
+	slave5: entity work.ipbus_peephole_ram
+		generic map(ADDR_WIDTH => 10)
+		port map(
+			clk => ipb_clk,
+			reset => ipb_rst,
+			ipbus_in => ipbw(N_SLV_PRAM),
+			ipbus_out => ipbr(N_SLV_PRAM)
+		);
+--    slave6 : i2c_master
+--    PORT MAP (
+--         i2c_scl_i     => i2c_scl_b,
+--         i2c_sda_i     => i2c_sda_b,
+--         ipbus_clk_i   => ipb_clk,
+--         ipbus_i       => ipbw(N_SLV_I2C),
+--         ipbus_reset_i => ipb_rst,
+--         i2c_scl_enb_o => s_i2c_scl_enb,
+--         i2c_sda_enb_o => s_i2c_sda_enb,
+--         ipbus_o       => ipbr(N_SLV_I2C)
+--    );
+
+    -- Instantiate a I2C core for the EEPROM
+    slave6 : i2c_master
+    PORT MAP (
+         i2c_scl_i     => i2c_scl_i(0),
+         i2c_sda_i     => i2c_sda_i(0),
+         ipbus_clk_i   => ipb_clk,
+         ipbus_i       => ipbw(N_SLV_I2C_0),
+         ipbus_reset_i => ipb_rst,
+         i2c_scl_enb_o => i2c_scl_enb_o(0),
+         i2c_sda_enb_o => i2c_sda_enb_o(0),
+         ipbus_o       => ipbr(N_SLV_I2C_0)
+    );
+    slave7 : i2c_master
+    PORT MAP (
+         i2c_scl_i     => i2c_scl_i(1),
+         i2c_sda_i     => i2c_sda_i(1),
+         ipbus_clk_i   => ipb_clk,
+         ipbus_i       => ipbw(N_SLV_I2C_1),
+         ipbus_reset_i => ipb_rst,
+         i2c_scl_enb_o => i2c_scl_enb_o(1),
+         i2c_sda_enb_o => i2c_sda_enb_o(1),
+         ipbus_o       => ipbr(N_SLV_I2C_1)
+    );
+    slave8 : i2c_master
+    PORT MAP (
+         i2c_scl_i     => i2c_scl_i(2),
+         i2c_sda_i     => i2c_sda_i(2),
+         ipbus_clk_i   => ipb_clk,
+         ipbus_i       => ipbw(N_SLV_I2C_2),
+         ipbus_reset_i => ipb_rst,
+         i2c_scl_enb_o => i2c_scl_enb_o(2),
+         i2c_sda_enb_o => i2c_sda_enb_o(2),
+         ipbus_o       => ipbr(N_SLV_I2C_2)
+    );
+end rtl;
diff --git a/legacy/EUDETdummy/hdl/ipbus_fabric_sel.vhd b/legacy/EUDETdummy/hdl/ipbus_fabric_sel.vhd
new file mode 100644
index 00000000..86d2fa7a
--- /dev/null
+++ b/legacy/EUDETdummy/hdl/ipbus_fabric_sel.vhd
@@ -0,0 +1,61 @@
+-- The ipbus bus fabric, address select logic, data multiplexers
+--
+-- This version selects the addressed slave depending on the state
+-- of incoming control lines
+--
+-- Dave Newbold, February 2011
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+use ieee.numeric_std.all;
+use work.ipbus.ALL;
+
+entity ipbus_fabric_sel is
+  generic(
+    NSLV: positive;
+    STROBE_GAP: boolean := false;
+    SEL_WIDTH: positive
+   );
+  port(
+  	sel: in std_logic_vector(SEL_WIDTH - 1 downto 0);
+    ipb_in: in ipb_wbus;
+    ipb_out: out ipb_rbus;
+    ipb_to_slaves: out ipb_wbus_array(NSLV - 1 downto 0);
+    ipb_from_slaves: in ipb_rbus_array(NSLV - 1 downto 0) := (others => IPB_RBUS_NULL)
+   );
+
+end ipbus_fabric_sel;
+
+architecture rtl of ipbus_fabric_sel is
+
+	signal sel_i: integer range 0 to NSLV := 0;
+	signal ored_ack, ored_err: std_logic_vector(NSLV downto 0);
+	signal qstrobe: std_logic;
+
+begin
+
+	sel_i <= to_integer(unsigned(sel));
+
+	ored_ack(NSLV) <= '0';
+	ored_err(NSLV) <= '0';
+	
+	qstrobe <= ipb_in.ipb_strobe when STROBE_GAP = false else
+	 ipb_in.ipb_strobe and not (ored_ack(0) or ored_err(0));
+
+	busgen: for i in NSLV-1 downto 0 generate
+	begin
+
+		ipb_to_slaves(i).ipb_addr <= ipb_in.ipb_addr;
+		ipb_to_slaves(i).ipb_wdata <= ipb_in.ipb_wdata;
+		ipb_to_slaves(i).ipb_strobe <= qstrobe when sel_i = i else '0';
+		ipb_to_slaves(i).ipb_write <= ipb_in.ipb_write;
+		ored_ack(i) <= ored_ack(i+1) or ipb_from_slaves(i).ipb_ack;
+		ored_err(i) <= ored_err(i+1) or ipb_from_slaves(i).ipb_err;		
+
+	end generate;
+
+  ipb_out.ipb_rdata <= ipb_from_slaves(sel_i).ipb_rdata when sel_i /= NSLV else (others => '0');
+  ipb_out.ipb_ack <= ored_ack(0);
+  ipb_out.ipb_err <= ored_err(0);
+  
+end rtl;
diff --git a/legacy/EUDETdummy/hdl/ipbus_slaves.vhd b/legacy/EUDETdummy/hdl/ipbus_slaves.vhd
new file mode 100644
index 00000000..e0ee08ff
--- /dev/null
+++ b/legacy/EUDETdummy/hdl/ipbus_slaves.vhd
@@ -0,0 +1,170 @@
+-- ipbus_example
+--
+-- selection of different IPBus slaves without actual function,
+-- just for performance evaluation of the IPbus/uhal system
+--
+-- Kristian Harder, March 2014
+-- based on code by Dave Newbold, February 2011
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+use work.ipbus.all;
+use work.ipbus_reg_types.all;
+use work.ipbus_decode_ipbus_example.all;
+
+entity ipbus_slaves is
+	port(
+		ipb_clk: in std_logic;
+		ipb_rst: in std_logic;
+		ipb_in: in ipb_wbus;
+		ipb_out: out ipb_rbus;
+		nuke: out std_logic;
+		soft_rst: out std_logic;
+		--i2c_scl_b: INOUT  std_logic;
+        --i2c_sda_b: INOUT  std_logic;
+        
+        --i2c_sda_i: IN std_logic;
+        --i2c_scl_i: IN std_logic;
+        --i2c_scl_enb_o: OUT std_logic;
+        --i2c_sda_enb_o: OUT std_logic;
+                
+        i2c_sda_i: IN std_logic_vector(N_I2C_CORES - 1 downto 0);
+        i2c_scl_i: IN std_logic_vector(N_I2C_CORES - 1 downto 0);
+        i2c_scl_enb_o: OUT std_logic_vector(N_I2C_CORES - 1 downto 0);
+        i2c_sda_enb_o: OUT std_logic_vector(N_I2C_CORES - 1 downto 0);
+        userled: out std_logic
+	);
+
+end ipbus_slaves;
+
+architecture rtl of ipbus_slaves is
+
+	signal ipbw: ipb_wbus_array(N_SLAVES - 1 downto 0);
+	signal ipbr: ipb_rbus_array(N_SLAVES - 1 downto 0);
+	signal ctrl, stat: ipb_reg_v(0 downto 0);
+    --SIGNAL s_i2c_scl_enb         : std_logic;
+    --SIGNAL s_i2c_sda_enb         : std_logic;
+           
+    -->P
+    COMPONENT i2c_master
+    PORT (
+       i2c_scl_i     : IN     std_logic;
+       i2c_sda_i     : IN     std_logic;
+       ipbus_clk_i   : IN     std_logic;
+       ipbus_i       : IN     ipb_wbus;
+       ipbus_reset_i : IN     std_logic;
+       i2c_scl_enb_o : OUT    std_logic;
+       i2c_sda_enb_o : OUT    std_logic;
+       ipbus_o       : OUT    ipb_rbus
+    );
+    END COMPONENT i2c_master;
+    FOR ALL : i2c_master USE ENTITY work.i2c_master;--<P
+begin
+
+-- ipbus address decode
+    --i2c_scl_b <= '0' when (s_i2c_scl_enb = '0') else 'Z';
+    --i2c_sda_b <= '0' when (s_i2c_sda_enb = '0') else 'Z';
+		
+	fabric: entity work.ipbus_fabric_sel
+    generic map(
+    	NSLV => N_SLAVES,
+    	SEL_WIDTH => IPBUS_SEL_WIDTH)
+    port map(
+      ipb_in => ipb_in,
+      ipb_out => ipb_out,
+      sel => ipbus_sel_ipbus_example(ipb_in.ipb_addr),
+      ipb_to_slaves => ipbw,
+      ipb_from_slaves => ipbr
+    );
+
+-- Slave 0: id / rst reg
+
+	slave0: entity work.ipbus_ctrlreg_v
+		port map(
+			clk => ipb_clk,
+			reset => ipb_rst,
+			ipbus_in => ipbw(N_SLV_CTRL_REG),
+			ipbus_out => ipbr(N_SLV_CTRL_REG),
+			d => stat,
+			q => ctrl
+		);
+		stat(0) <= X"abcdfedc";
+		soft_rst <= ctrl(0)(0);
+		nuke <= ctrl(0)(1);
+
+-- Slave 1: register
+	slave1: entity work.ipbus_reg_v
+		port map(
+			clk => ipb_clk,
+			reset => ipb_rst,
+			ipbus_in => ipbw(N_SLV_REG),
+			ipbus_out => ipbr(N_SLV_REG),
+			q => open
+		);
+
+-- Slave 2: 1kword RAM
+--	slave4: entity work.ipbus_ram
+--		generic map(ADDR_WIDTH => 10)
+--		port map(
+--			clk => ipb_clk,
+--			reset => ipb_rst,
+--			ipbus_in => ipbw(N_SLV_RAM),
+--			ipbus_out => ipbr(N_SLV_RAM)
+--		);
+	
+-- Slave 3: peephole RAM
+--	slave5: entity work.ipbus_peephole_ram
+--		generic map(ADDR_WIDTH => 10)
+--		port map(
+--			clk => ipb_clk,
+--			reset => ipb_rst,
+--			ipbus_in => ipbw(N_SLV_PRAM),
+--			ipbus_out => ipbr(N_SLV_PRAM)
+--		);
+--    slave6 : i2c_master
+--    PORT MAP (
+--         i2c_scl_i     => i2c_scl_b,
+--         i2c_sda_i     => i2c_sda_b,
+--         ipbus_clk_i   => ipb_clk,
+--         ipbus_i       => ipbw(N_SLV_I2C),
+--         ipbus_reset_i => ipb_rst,
+--         i2c_scl_enb_o => s_i2c_scl_enb,
+--         i2c_sda_enb_o => s_i2c_sda_enb,
+--         ipbus_o       => ipbr(N_SLV_I2C)
+--    );
+
+    -- Instantiate a I2C core for the EEPROM
+    slave6 : i2c_master
+    PORT MAP (
+         i2c_scl_i     => i2c_scl_i(0),
+         i2c_sda_i     => i2c_sda_i(0),
+         ipbus_clk_i   => ipb_clk,
+         ipbus_i       => ipbw(N_SLV_I2C_0),
+         ipbus_reset_i => ipb_rst,
+         i2c_scl_enb_o => i2c_scl_enb_o(0),
+         i2c_sda_enb_o => i2c_sda_enb_o(0),
+         ipbus_o       => ipbr(N_SLV_I2C_0)
+    );
+    slave7 : i2c_master
+    PORT MAP (
+         i2c_scl_i     => i2c_scl_i(1),
+         i2c_sda_i     => i2c_sda_i(1),
+         ipbus_clk_i   => ipb_clk,
+         ipbus_i       => ipbw(N_SLV_I2C_1),
+         ipbus_reset_i => ipb_rst,
+         i2c_scl_enb_o => i2c_scl_enb_o(1),
+         i2c_sda_enb_o => i2c_sda_enb_o(1),
+         ipbus_o       => ipbr(N_SLV_I2C_1)
+    );
+    slave8 : i2c_master
+    PORT MAP (
+         i2c_scl_i     => i2c_scl_i(2),
+         i2c_sda_i     => i2c_sda_i(2),
+         ipbus_clk_i   => ipb_clk,
+         ipbus_i       => ipbw(N_SLV_I2C_2),
+         ipbus_reset_i => ipb_rst,
+         i2c_scl_enb_o => i2c_scl_enb_o(2),
+         i2c_sda_enb_o => i2c_sda_enb_o(2),
+         ipbus_o       => ipbr(N_SLV_I2C_2)
+    );
+end rtl;
diff --git a/legacy/EUDETdummy/hdl/ipbus_ver.vhd b/legacy/EUDETdummy/hdl/ipbus_ver.vhd
new file mode 100644
index 00000000..068f126f
--- /dev/null
+++ b/legacy/EUDETdummy/hdl/ipbus_ver.vhd
@@ -0,0 +1,46 @@
+--=============================================================================
+--! @file  ipbus_ver.vhd
+--=============================================================================
+
+-- Version register, returns a fixed value
+--
+-- To be replaced by a more coherent versioning mechanism later
+--
+-- Dave Newbold, August 2011
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+use work.ipbus.all;
+
+--! @brief IPBus fixed register returning Firmware version number
+entity ipbus_ver is
+	port(
+		ipbus_in: in ipb_wbus;
+		ipbus_out: out ipb_rbus
+	);
+	
+end ipbus_ver;
+
+architecture rtl of ipbus_ver is
+
+begin
+
+  ipbus_out.ipb_rdata <= X"a622" & X"1008"; -- Lower 16b are ipbus firmware build ID (temporary arrangement).
+  ipbus_out.ipb_ack <= ipbus_in.ipb_strobe;
+  ipbus_out.ipb_err <= '0';
+
+end rtl;
+
+-- Build log
+--
+-- build 0x1000 : 22/08/11 : Starting build ID
+-- build 0x1001 : 29/08/11 : Version for SPI testing
+-- build 0x1002 : 27/09/11 : Bug fixes, new transactor code; v1.3 candidate
+-- build 0x1003 : buggy
+-- build 0x1004 : 18/10/11 : New mini-t top level, bug fixes, 1.3 codebase
+-- build 0x1005 : 20/10/11 : ipbus address config testing in mini-t
+-- build 0x1006 : 26/10/11 : trying with jumbo frames
+-- build 0x1007 : 27/10/11 : new slaves / address map + rhino frames
+-- build 0x1008 : 31/10/11 : rhino frames + multibus demo
+
+
diff --git a/legacy/EUDETdummy/hdl/led_stretcher.vhd b/legacy/EUDETdummy/hdl/led_stretcher.vhd
new file mode 100644
index 00000000..c8af6c68
--- /dev/null
+++ b/legacy/EUDETdummy/hdl/led_stretcher.vhd
@@ -0,0 +1,74 @@
+-- stretcher
+--
+-- Stretches a single clock pulse so it's visible on an LED
+--
+-- Dave Newbold, January 2013
+--
+-- $Id$
+
+library ieee;
+use ieee.std_logic_1164.all;
+use ieee.numeric_std.all;
+
+entity led_stretcher is
+	generic(
+		WIDTH: positive := 1
+	);
+	port(
+		clk: in std_logic; -- Assumed to be 125MHz ipbus clock
+		d: in std_logic_vector(WIDTH - 1 downto 0); -- Input (edge detected)
+		q: out std_logic_vector(WIDTH - 1 downto 0) -- LED output, ~250ms pulse
+	);
+
+end led_stretcher;
+
+architecture rtl of led_stretcher is
+
+	signal d17, d17_d: std_logic;
+	
+begin
+	
+	clkdiv: entity work.ipbus_clock_div
+		port map(
+			clk => clk,
+			d17 => d17
+		);
+
+	process(clk)
+	begin
+		if rising_edge(clk) then
+			d17_d <= d17;
+		end if;
+	end process;
+	
+	lgen: for i in WIDTH - 1 downto 0 generate
+	
+		signal s, sd, e, e_d, sl: std_logic;
+		signal scnt: unsigned(6 downto 0);
+	
+	begin
+	
+		process(clk)
+		begin
+			if rising_edge(clk) then
+				s <= d(i); -- Possible clock domain crossing from slower clock (sync not important)
+				sd <= s;
+				e <= (e or (s and not sd)) and not e_d;
+				if d17 = '1' and d17_d = '0' then
+					e_d <= e;
+					if e = '1' then
+						scnt <= "0000001";
+					elsif sl = '0' then
+						scnt <= scnt + 1;
+					end if;					
+				end if;
+			end if;
+		end process;
+
+		sl <= '1' when scnt = "0000000" else '0';
+		
+		q(i) <= not sl;
+		
+	end generate;
+	
+end rtl;
diff --git a/legacy/EUDETdummy/hdl/logic_clocks_rtl.vhd b/legacy/EUDETdummy/hdl/logic_clocks_rtl.vhd
new file mode 100644
index 00000000..631007a5
--- /dev/null
+++ b/legacy/EUDETdummy/hdl/logic_clocks_rtl.vhd
@@ -0,0 +1,344 @@
+--=============================================================================
+--! @file logic_clocks_rtl.vhd
+--=============================================================================
+--
+-------------------------------------------------------------------------------
+-- --
+-- University of Bristol, High Energy Physics Group.
+-- --
+------------------------------------------------------------------------------- --
+-- VHDL Architecture fmc_mTLU_lib.logic_clocks.rtl
+--
+--------------------------------------------------------------------------------
+-- 
+-- Created using using Mentor Graphics HDL Designer(TM) 2010.3 (Build 21)
+--
+-- Based on output of Xilinx Coregen and Alvro Dosil TLU code.
+------------------------------------------------------------------------------
+-- "Output    Output      Phase     Duty      Pk-to-Pk        Phase"
+-- "Clock    Freq (MHz) (degrees) Cycle (%) Jitter (ps)  Error (ps)"
+------------------------------------------------------------------------------
+-- CLK_OUT1___640.000______0.000______50.0______175.916____213.982
+-- CLK_OUT2___160.000______0.000______50.0______223.480____213.982
+-- CLK_OUT3____40.000______0.000______50.0______306.416____213.982
+--
+------------------------------------------------------------------------------
+-- "Input Clock   Freq (MHz)    Input Jitter (UI)"
+------------------------------------------------------------------------------
+-- __primary__________40.000____________0.010
+
+LIBRARY ieee;
+USE ieee.std_logic_1164.all;
+USE ieee.numeric_std.all;
+
+USE work.ipbus.all;
+
+library unisim;
+use unisim.vcomponents.all;
+
+--! @brief Generates 160MHz , 640MHz clocks from an incoming 40MHz clock.
+--! Can switch between clock generated from on-board Xtal ( clk_logic_xtal ) and external clock.
+--! Can also output clock to external clock pins.
+--!
+--! @author David Cussans , David.Cussans@bristol.ac.uk
+--
+--! @date 14:20:26 11/14/12
+--
+--! @version v0.1
+--
+--! @details
+--! \br <b> IPBus Address map:</b>
+--! \br (decode 2 bits)
+--! \li 0x00000000 - control/status register:
+--! \li             bit-0 - PLL locked ( 1 = locked )
+--! \li              bit-1 - buff-PLL locked ( 1 = locked )
+--! \li             bit-2 - use xtal for logic ( 1 = xtal , 0= external)
+--! \li             bit-3 - clock connector is an input ( 1=input , 0 = output)
+--! \li 0x00000001 - reset logic. Write to bit-zero to send reset.
+--!
+--!
+ENTITY logic_clocks IS
+    GENERIC( 
+        g_USE_EXTERNAL_CLK : integer := 1
+    );
+    PORT( 
+        ipbus_clk_i           : IN     std_logic;
+        ipbus_i               : IN     ipb_wbus;
+        ipbus_reset_i         : IN     std_logic;
+        Reset_i               : IN     std_logic;
+        clk_logic_xtal_i      : IN     std_logic;   --! 40MHz clock derived from onboard xtal
+        clk_8x_logic_o       : OUT    std_logic;   --! 640MHz clock
+        clk_4x_logic_o        : OUT    std_logic;   --! 160MHz clock
+        ipbus_o               : OUT    ipb_rbus;
+        strobe_8x_logic_o    : OUT    std_logic;   --! strobes once every 4 cycles of clk_16x
+        strobe_4x_logic_o     : OUT    std_logic;   --! one pulse every 4 cycles of clk_4x
+        DUT_clk_o             : OUT    std_logic;   --! 40MHz to DUTs
+        logic_clocks_locked_o : OUT    std_logic;   --! Goes high if clocks locked.
+        logic_reset_o         : OUT    std_logic    --! Goes high to reset counters etc. Sync with clk_4x_logic
+    );
+
+-- Declarations
+END ENTITY logic_clocks ;
+
+--
+ARCHITECTURE rtl OF logic_clocks IS
+    signal s_clk40 , s_clk40_internal : std_logic;
+    signal s_clk160 ,s_clk160_internal : std_logic;
+    signal ryanclock : std_logic;
+    signal s_clk320 , s_clk320_internal : std_logic;
+    signal s_clk40_out : std_logic;       -- Clock generated by DDR register to feed out of chip.
+    signal s_clk_is_xtal, s_clk_is_ext_buf : std_logic := '0'; -- default to
+                                                             -- input from ext
+    --  signal s_logic_clk_rst : std_logic := '0';
+    signal s_locked_pll, s_locked_bufpll : std_logic;
+    
+    signal s_clk : std_logic;
+    signal s_DUT_Clk, s_DUT_Clk_o, s_DUT_ClkG : std_logic;
+    signal s_extclk, s_extclkG : std_logic;
+    -- signal s_clk_d1 , s_strobe_4x_p1 , s_strobe_4x_logic  : std_logic;
+    signal s_clkfbout_buf , s_clkfbout : std_logic;
+    
+    signal s_strobe_generator  : std_logic_vector(3 downto 0) := "1000";  -- ! Store state of ring buffer to generate strobe
+    signal s_logic_clk_generator : std_logic_vector(3 downto 0) := "1100";  --! Stores state of 40MHz "clock"
+    --signal s_strobe_generator  : std_logic_vector(15 downto 0) := "1111000000000000";  -- ! Store state of ring buffer to generate strobe
+    --signal s_logic_clk_generator : std_logic_vector(15 downto 0) := "1111111100000000";  --! Stores state of 40MHz "clock"
+    signal s_strobe160 :std_logic_vector(15 downto 0) := "1000000000000000"; -- 160 strobe ring
+    signal s_strobe_fb : std_logic := '0';
+    
+    signal s_logic_reset_ipb, s_logic_reset_ipb_d1 : std_logic := '0';  
+                                        -- ! Reset signal in IPBus clock domain
+    signal s_logic_reset , s_logic_reset_d1 , s_logic_reset_d2 , s_logic_reset_d3 , s_logic_reset_d4 : std_logic := '0';  
+                                        -- ! reset signal clocked onto logic-clock domain.
+    attribute SHREG_EXTRACT: string;
+    attribute SHREG_EXTRACT of s_logic_reset_d1: signal is "no"; -- Synchroniser not to be optimised into shre
+    attribute SHREG_EXTRACT of s_logic_reset_d2: signal is "no"; -- Synchroniser not to be optimised into shreg
+    attribute SHREG_EXTRACT of s_logic_reset_d3: signal is "no"; -- Synchroniser not to be optimised into shreg
+    attribute SHREG_EXTRACT of s_logic_reset_d4: signal is "no"; -- Synchroniser not to be optimised into shreg
+    signal s_ipbus_ack : std_logic := '0';
+    signal s_reset_pll : std_logic := '0';
+    
+    
+    -- ! Global Reset signal
+    signal  s_extclk_internal  : std_logic := '0';
+    signal s_clock_status_ipb : std_logic_vector( ipbus_o.ipb_rdata'range );   --! Hold status of clocks
+  
+BEGIN
+    -----------------------------------------------------------------------------
+    -- IPBus write
+    -----------------------------------------------------------------------------
+    ipbus_write: process (ipbus_clk_i)
+    begin  -- process ipb_clk_i
+    if rising_edge(ipbus_clk_i) then
+        s_logic_reset_ipb <= '0';
+        if (ipbus_i.ipb_strobe = '1' and ipbus_i.ipb_write = '1') then
+            case ipbus_i.ipb_addr(1 downto 0) is
+            when "00" =>
+             s_clk_is_xtal <= ipbus_i.ipb_wdata(2) ; -- select clock source
+             
+            when "01" =>
+             s_logic_reset_ipb <= ipbus_i.ipb_wdata(0) ; -- write to reset
+            when others => null;
+            end case;
+       end if;
+
+        -- register reset signal to aid timing.
+        s_logic_reset_ipb_d1 <= s_logic_reset_ipb;
+        s_ipbus_ack <= ipbus_i.ipb_strobe and not s_ipbus_ack;
+        -- register the clock status signals onto IPBus domain.
+        --s_clock_status_ipb <=  x"0000000" & '0' & s_clk_is_xtal & s_locked_bufpll & s_locked_pll;
+        s_clock_status_ipb <=  x"0000000" & '0' & '0' & '0' & s_locked_pll; -- The only useful bit is not the PLL lock status. 
+    end if;
+    end process ipbus_write;
+
+    ipbus_o.ipb_ack <= s_ipbus_ack;
+    ipbus_o.ipb_err <= '0';
+
+    -----------------------------------------------------------------------------
+    -- IPBUS read
+    -----------------------------------------------------------------------------
+    with ipbus_i.ipb_addr(1 downto 0) select
+    ipbus_o.ipb_rdata <=
+        s_clock_status_ipb  when "00",
+        (others => '1')      when others;
+
+
+    -----------------------------------------------------------------------------
+    -- Generate reset signal on logic-clock domain
+    -- This relies on the IPBus clock being much slower than the 4x logic clock.
+    -----------------------------------------------------------------------------
+    p_reset: process (s_clk160_internal)
+    begin  -- process p_reset
+    if rising_edge(s_clk160_internal) then
+        s_logic_reset_d1 <= s_logic_reset_ipb_d1;
+        s_logic_reset_d2 <= s_logic_reset_d1;
+        s_logic_reset_d3 <= s_logic_reset_d2;
+        s_logic_reset_d4 <= s_logic_reset_d2 and ( not s_logic_reset_d3); 
+        s_logic_reset <= s_logic_reset_d4;
+    end if;
+    end process p_reset;
+    
+    logic_reset_o <= s_logic_reset;
+    logic_clocks_locked_o <= s_locked_bufpll and s_locked_pll;
+
+
+    -- Use Generate, since can't figure out how BUFGMUX works    
+    --  gen_extclk_input: if ( g_USE_EXTERNAL_CLK = 1) generate
+    --    s_DUT_Clk <= s_extclkG; -- Hard wire for now.    
+    --  end generate gen_extclk_input;
+    --  gen_intclk_input: if ( g_USE_EXTERNAL_CLK = 0) generate
+    s_DUT_Clk <= clk_logic_xtal_i; 
+    --  end generate gen_intclk_input;  
+  
+
+  
+    --! Clocking primitive
+    -------------------------------------
+    --! Instantiation of the PLL primitive
+    pll_base_inst : PLL_BASE
+    generic map
+       (BANDWIDTH            => "OPTIMIZED",
+        --CLK_FEEDBACK         => "CLKOUT0", --"CLKFBOUT",
+        CLK_FEEDBACK         => "CLKFBOUT",
+        COMPENSATION         => "SYSTEM_SYNCHRONOUS",
+        DIVCLK_DIVIDE        => 1,
+        CLKFBOUT_MULT        => 16,
+        CLKFBOUT_PHASE       => 0.000,
+        CLKOUT0_DIVIDE       => 2, -- 1-->2 move from 640 to 320
+        CLKOUT0_PHASE        => 0.000,
+        CLKOUT0_DUTY_CYCLE   => 0.500,
+        CLKOUT1_DIVIDE       => 4, -- 4-->8 move from 160 to 80
+        CLKOUT1_PHASE        => 0.000,
+        CLKOUT1_DUTY_CYCLE   => 0.500,
+        CLKOUT2_DIVIDE       => 16, -- 16--> 32 move from 40 to 20
+        CLKOUT2_PHASE        => 0.000,
+        CLKOUT2_DUTY_CYCLE   => 0.500,
+        CLKIN_PERIOD         => 25.000,
+        REF_JITTER           => 0.010)
+    port map(
+        -- Output clocks
+        CLKFBOUT            => s_clkfbout,
+        CLKOUT0             => s_clk320,
+        CLKOUT1             => s_clk160,
+        CLKOUT2             => s_clk40,
+        CLKOUT3             => open,
+        CLKOUT4             => open,
+        CLKOUT5             => open,
+        -- Status and control signals
+        LOCKED              => s_locked_pll,
+        --    RST                 => s_logic_clk_rst,
+        RST                 => s_reset_pll,
+        -- Input clock control
+        --    CLKFBIN             => s_clkfbout_buf,
+        CLKFBIN             => s_clkfbout,
+        CLKIN               => s_DUT_clk);
+        --      CLKIN               => clk_logic_xtal_i);
+
+    s_reset_pll <= Reset_i or s_logic_reset; 
+
+-----------------------------------------------
+--BUFPLL not supported by 7 Series. We need to replace it with BUFIO+BUFR 
+  -- Buffer the 16x clock and generate the ISERDES strobe signal
+--   BUFPLL_inst : BUFPLL
+--   generic map (
+--      DIVIDE => 4)
+--   port map (
+--      IOCLK  => s_clk640_internal,          -- 1-bit output: Output I/O clock
+--      LOCK   => s_locked_bufpll,            -- 1-bit output: Synchronized LOCK output
+--      SERDESSTROBE => strobe_16x_logic_O,   -- 1-bit output: Output SERDES strobe (connect to ISERDES2/OSERDES2)
+--      GCLK   => s_clk160_internal,          -- 1-bit input: BUFG clock input
+--      LOCKED => s_locked_pll,               -- 1-bit input: LOCKED input from PLL
+--      PLLIN  => s_clk640                    -- 1-bit input: Clock input from PLL
+--   );
+
+    BUFG_inst: BUFG
+    port map (
+        I => s_clk320,
+        O => s_clk320_internal    
+    );
+    
+--    BUFR_inst: BUFR
+--    generic map (
+--        BUFR_DIVIDE => "4"
+--    )
+--    port map (
+--        I   => s_clk160_internal,
+--        CE  => '1',
+--        CLR => '0',
+--        O   => ryanclock
+--    );
+    
+--    BUFG_inst2: BUFG
+--    port map (
+--        I => ryanclock,
+--        O => strobe_16x_logic_O    -- Not sure this is actually a strobe... Check
+--    );
+-----------------------------------------------
+
+	clk_8x_logic_o <= s_clk320_internal;
+	DUT_clk_o <= s_DUT_clk;
+
+
+  
+  -- Generate a strobe signal every 4 clocks. 
+  -- Can't use a clock signal as a combinatorial signal. Hence the baroque
+  -- method of generating a strobe. Add a mechanism to restart if the '1' gets
+  -- lost ....
+    
+    ------------------
+    generate_4x_strobe: process (s_clk160_internal)-- , s_clk40_out)
+    begin  -- process generate_4x_strobe
+    if rising_edge(s_clk160_internal) then
+        if s_logic_reset = '1' then
+            s_strobe_generator <= "1000";
+            s_logic_clk_generator <= "1100";
+            --s_strobe160 <= "1000000000000000";
+        elsif (s_locked_pll ='1') then
+            s_strobe_generator <= s_strobe_generator(2 downto 0) & s_strobe_generator(3); -- <- bit shift left      
+            s_logic_clk_generator <= s_logic_clk_generator(2 downto 0) & s_logic_clk_generator(3); -- <- bit shift left 
+            --s_strobe160 <= s_strobe160(14 downto 0) & s_strobe160(15);
+        end if;
+    end if;
+    end process generate_4x_strobe;
+    strobe_4x_logic_o <=  s_strobe_generator(3); -- Every 4 clocks this gets to 1 for one pulse
+    s_clk40_out <= s_logic_clk_generator(3); -- Every 4 clocks this gets to 1 for two pulses (so half F of the original clock? But then it is a clk80 not clk40.) Not used it seems.
+    ---------------
+    
+    generate_8x_strobe: process (s_clk320_internal)
+    begin
+    if rising_edge(s_clk320_internal) then
+        if s_logic_reset = '1' then
+            s_strobe160 <= "1000000000000000"; 
+            --s_strobe_generator <= "1111000000000000";--
+            --s_logic_clk_generator <= "1111111100000000";--
+        elsif (s_locked_pll ='1') then
+            s_strobe160 <= s_strobe160(14 downto 0) & s_strobe160(15);
+            --s_strobe_generator <= s_strobe_generator(14 downto 0) & s_strobe_generator(15); --       
+            --s_logic_clk_generator <= s_logic_clk_generator(14 downto 0) & s_logic_clk_generator(15); -- <- bit shift left
+        end if;
+    end if;
+    end process generate_8x_strobe;
+    strobe_8x_logic_O <= s_strobe160(15);
+    --strobe_4x_logic_o <=  s_strobe_generator(15); -- 
+    --s_clk40_out <= s_logic_clk_generator(15); -- 
+        
+
+  -- buffer 160MHz (4x) clock
+  --------------------------------------
+    clk160_o_buf : BUFG
+    port map(
+        O   => s_clk160_internal,
+        I   => s_clk160);
+    
+    clk_4x_logic_o <= s_clk160_internal;
+ 
+--   -- buffer 40MHz (1x) clock
+--  --------------------------------------
+--  clk40_o_buf : BUFG
+--  port map(
+--    O   => s_clk40_internal,
+--    I   => s_clk40);
+
+--  clk_logic_o <= s_clk40_out;
+
+END ARCHITECTURE rtl;
+
diff --git a/legacy/EUDETdummy/hdl/top_EUDET_dummy.vhd b/legacy/EUDETdummy/hdl/top_EUDET_dummy.vhd
new file mode 100644
index 00000000..3d57cdca
--- /dev/null
+++ b/legacy/EUDETdummy/hdl/top_EUDET_dummy.vhd
@@ -0,0 +1,783 @@
+-- Top-level design for TLU v1E
+--
+-- This version is for Enclustra AX3 module, using the RGMII PHY on the PM3 baseboard
+--
+-- You must edit this file to set the IP and MAC addresses
+--
+-- Dave Newbold, 4/10/16--
+
+library IEEE;
+library UNISIM;
+use IEEE.STD_LOGIC_1164.ALL;
+use ieee.numeric_std.all;
+use work.fmcTLU.all;
+use work.ipbus_decode_tlu.all;
+use work.ipbus.all;
+use work.ipbus_reg_types.all;
+use UNISIM.vcomponents.all;
+
+--Library UNISIM;
+--use UNISIM.vcomponents.all;
+
+use work.ipbus.ALL;
+
+entity top_EUDET_dummy is
+    generic(
+    constant FW_VERSION : unsigned(31 downto 0):= X"ffff0001"; -- Firmware revision. Remember to change this as needed.
+    g_NUM_DUTS  : positive := 4; -- <- was 3
+    g_NUM_TRIG_INPUTS   :positive := 6;-- <- was 4
+    g_NUM_EDGE_INPUTS   :positive := 6;--  <-- was 4
+    g_NUM_EXT_SLAVES    :positive :=8;--  <-- ??
+    g_EVENT_DATA_WIDTH  :positive := 64;--  <-- ??
+    g_IPBUS_WIDTH   :positive := 32;--  <-- was 32 
+    g_SPILL_COUNTER_WIDTH   :positive := 12;--  <-- ??
+    g_BUILD_SIMULATED_MAC   :integer := 0
+    );
+    port(
+    --Clock
+        --sysclk: in std_logic; --50 MHz clock input from FPGA
+        clk_enclustra: in std_logic; --Enclustra onboard oscillator 40 MHz. Used for the IPBus block
+        sysclk_50_o_p : out std_logic; --50 MHz clock output to FMC pins
+        sysclk_50_o_n : out std_logic; --50 MHz clock output to FMC pins
+        sysclk_40_i_p: in std_logic;
+        sysclk_40_i_n: in std_logic;
+    --Misc
+        leds: out std_logic_vector(3 downto 0); -- status LEDs
+        dip_sw: in std_logic_vector(3 downto 0); -- switches
+        gpio: out std_logic; -- gpio pin on J1 (eventually make it inout)
+    --RGMII interface signals
+        rgmii_txd: out std_logic_vector(3 downto 0);
+        rgmii_tx_ctl: out std_logic;
+        rgmii_txc: out std_logic;
+        rgmii_rxd: in std_logic_vector(3 downto 0);
+        rgmii_rx_ctl: in std_logic;
+        rgmii_rxc: in std_logic;
+        phy_rstn: out std_logic; 
+    --I2C bus
+        i2c_scl_b: inout std_logic;
+        i2c_sda_b: inout std_logic;
+        i2c_reset: out std_logic; --Reset line for the expander serial lines
+    --Clock generator controls
+        clk_gen_rst: out std_logic; --Reset line for the Si5345 clock generator (active low)
+        --clk_gen_lol: in std_logic; --LOL signal. Do not use for now as it is connected to CONT_FROM_FPGA<0>
+    --TLU signals for DUTs
+        busy_i: in std_logic_vector(g_NUM_DUTS-1 downto 0);-- Busy lines from DUTs (active high) (busy to FPGA)
+        busy_o: out std_logic_vector(g_NUM_DUTS-1 downto 0);-- Busy lines to DUTs (active high) (busy from FPGA)
+        cont_i: in std_logic_vector(g_NUM_DUTS-1 downto 0); --Control lines from DUTs
+        cont_o: out std_logic_vector(g_NUM_DUTS-1 downto 0); --Control lines to DUTs
+        spare_i: in std_logic_vector(g_NUM_DUTS-1 downto 0); --Spare lines from DUTs
+        spare_o: out std_logic_vector(g_NUM_DUTS-1 downto 0); --Spare lines to DUTs
+        triggers_i: in std_logic_vector(g_NUM_DUTS-1 downto 0); --Trigger lines from DUTs
+        triggers_o: out std_logic_vector(g_NUM_DUTS-1 downto 0); --Trigger lines to DUTs
+        dut_clk_i: in std_logic_vector(g_NUM_DUTS-1 downto 0); --Clock from DUTs
+        dut_clk_o: out std_logic_vector(g_NUM_DUTS-1 downto 0) --Clock to DUTs
+        
+        --reset_or_clk_n_o: out std_logic_vector(g_NUM_DUTS-1 downto 0); --T0 synchronization signal
+        --reset_or_clk_p_o: out std_logic_vector(g_NUM_DUTS-1 downto 0);
+        --shutter_to_dut_n_o: out std_logic_vector(g_NUM_DUTS-1 downto 0); --Shutter output
+        --shutter_to_dut_p_o: out std_logic_vector(g_NUM_DUTS-1 downto 0);
+                
+     --TLU trigger inputs   
+        --threshold_discr_n_i: in std_logic_vector(g_NUM_TRIG_INPUTS-1 downto 0);
+        --threshold_discr_p_i: in std_logic_vector(g_NUM_TRIG_INPUTS-1 downto 0)
+        --gpio_hdr: out std_logic_vector(3 downto 0);
+        --extclk_n_b: inout std_logic; --External clock in or clock output
+        --extclk_p_b: inout std_logic
+    );
+
+end top_EUDET_dummy;
+
+architecture rtl of top_EUDET_dummy is
+
+	signal clk_ipb, rst_ipb, nuke, soft_rst, phy_rst_e, clk_200, sysclk_40, clk_encl_buf, userled: std_logic;
+	signal mac_addr: std_logic_vector(47 downto 0);
+	signal ip_addr: std_logic_vector(31 downto 0);
+	signal ipb_out: ipb_wbus;
+	signal ipb_in: ipb_rbus;
+	signal inf_leds: std_logic_vector(1 downto 0);
+	signal s_i2c_scl_enb         : std_logic;
+    signal s_i2c_sda_enb         : std_logic;
+    signal encl_clock50: std_logic; -- This is a 50 MHz clock generated from the Enclustra onboard oscillator (rather than the clock input)
+    
+	--signal s_i2c_sda_i : std_logic;
+	--signal s_i2c_scl_i : std_logic;
+	------------------------------------------
+	-- Internal signal declarations
+    SIGNAL T0_o                  : std_logic;
+    SIGNAL buffer_full_o         : std_logic;                                             --! Goes high when event buffer almost full
+    SIGNAL clk_8x_logic         : std_logic;                                             -- 320MHz clock
+    SIGNAL clk_4x_logic          : std_logic;                                             --! normally 160MHz
+    SIGNAL clk_logic_xtal        : std_logic;                                             -- ! 40MHz clock from onboard xtal
+    SIGNAL data_strobe           : std_logic;                                             -- goes high when data ready to load into event buffer
+    SIGNAL dout                  : std_logic;
+    SIGNAL dout1                 : std_logic;
+    SIGNAL event_data            : std_logic_vector(g_EVENT_DATA_WIDTH-1 DOWNTO 0);
+    signal ipbww: ipb_wbus_array(N_SLAVES - 1 downto 0);
+    signal ipbrr: ipb_rbus_array(N_SLAVES - 1 downto 0);
+    SIGNAL logic_clocks_reset    : std_logic;                                             -- Goes high to reset counters etc. Sync with clk_4x_logic
+    SIGNAL logic_reset           : std_logic;
+    SIGNAL overall_trigger       : std_logic;                                             --! goes high to load trigger data
+    SIGNAL overall_veto          : std_logic;                                             --! Halts triggers when high
+    SIGNAL postVetoTrigger_times : t_triggerTimeArray(g_NUM_TRIG_INPUTS-1 DOWNTO 0);      -- ! trigger arrival time ( w.r.t. logic_strobe)
+    SIGNAL postVetotrigger       : std_logic_vector(g_NUM_TRIG_INPUTS-1 DOWNTO 0);        -- ! High when trigger from input connector active and enabled
+    --trigger_count_i   : IN     std_logic_vector (g_IPBUS_WIDTH-1 DOWNTO 0); --! Not used yet.
+    SIGNAL rst_fifo_o            : std_logic;                                             --! rst signal to first level fifos
+    SIGNAL s_edge_fall_times     : t_triggerTimeArray(g_NUM_EDGE_INPUTS-1 DOWNTO 0);      -- Array of edge times ( w.r.t. logic_strobe)
+    SIGNAL s_edge_falling        : std_logic_vector(g_NUM_EDGE_INPUTS-1 DOWNTO 0);        -- ! High when falling edge
+    SIGNAL s_edge_rise_times     : t_triggerTimeArray(g_NUM_EDGE_INPUTS-1 DOWNTO 0);      -- Array of edge times ( w.r.t. logic_strobe)
+    SIGNAL s_edge_rising         : std_logic_vector(g_NUM_EDGE_INPUTS-1 DOWNTO 0);        -- ! High when rising edge
+    --SIGNAL s_i2c_scl_enb         : std_logic;
+    --SIGNAL s_i2c_sda_enb         : std_logic;
+    SIGNAL s_shutter             : std_logic;                                             --! shutter signal from TimePix, retimed onto local clock
+    SIGNAL s_triggerLogic_reset  : std_logic;
+    SIGNAL shutter_cnt_i         : std_logic_vector(g_SPILL_COUNTER_WIDTH-1 DOWNTO 0);
+    SIGNAL shutter_i             : std_logic;
+    SIGNAL spill_cnt_i           : std_logic_vector(g_SPILL_COUNTER_WIDTH-1 DOWNTO 0);
+    SIGNAL spill_i               : std_logic;
+    SIGNAL strobe_8x_logic      : std_logic;                                             --! Pulses one cycle every 4 of 16x clock.
+    SIGNAL strobe_4x_logic       : std_logic;                                             -- one pulse every 4 cycles of clk_4x
+    SIGNAL trigger_count         : std_logic_vector(g_IPBUS_WIDTH-1 DOWNTO 0);
+    SIGNAL trigger_times         : t_triggerTimeArray(g_NUM_TRIG_INPUTS-1 DOWNTO 0);      -- ! trigger arrival time ( w.r.t. logic_strobe)
+    SIGNAL triggers              : std_logic_vector(g_NUM_TRIG_INPUTS-1 DOWNTO 0);
+    SIGNAL veto_o                : std_logic;                                             --! goes high when one or more DUT are busy
+	signal ctrl, stat: ipb_reg_v(0 downto 0);
+	--My signals
+	--SIGNAL busy_toggle_o         : std_logic_vector(g_NUM_DUTS-1 downto 0);
+	
+----------------------------------------------
+----------------------------------------------
+    component DUTInterfaces
+    generic(
+	   g_NUM_DUTS : positive := 4;-- <- was 3
+	   g_IPBUS_WIDTH : positive := 32
+	   );
+    port (
+        clk_4x_logic_i          : IN     std_logic ;
+        strobe_4x_logic_i       : IN     std_logic ;                                  --! goes high every 4th clock cycle
+        trigger_counter_i       : IN     std_logic_vector (g_IPBUS_WIDTH-1 DOWNTO 0); --! Number of trigger events since last reset
+        trigger_i               : IN     std_logic ;                                  --! goes high when trigger logic issues a trigger
+        reset_or_clk_to_dut_i   : IN     std_logic ;                                  --! Synchronization signal. Passed TO DUT pins
+        shutter_to_dut_i        : IN     std_logic ;                                  --! Goes high TO indicate data-taking active. DUTs report busy unless ignoreShutterVeto IPBus flag is set high
+        -- IPBus signals.
+        ipbus_clk_i             : IN     std_logic ;
+        ipbus_i                 : IN     ipb_wbus ;                                   --! Signals from IPBus core TO slave
+        ipbus_reset_i           : IN     std_logic ;
+        ipbus_o                 : OUT    ipb_rbus ;                                   --! signals from slave TO IPBus core
+        -- Signals to/from DUT
+        busy_from_dut       : IN     std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);    --! BUSY input from DUTs
+        busy_to_dut       : OUT     std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);     --! BUSY input to DUTs (single ended)
+        clk_from_dut  : IN std_logic_vector(g_NUM_DUTS-1 DOWNTO 0); --new signal for TLU, replace differential I/O
+        clk_to_dut : OUT std_logic_vector(g_NUM_DUTS-1 DOWNTO 0); --new signal for TLU, replace differential I/O
+        reset_to_dut: OUT    std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);     --! Replaces reset_or_clk_to_dut
+        trigger_to_dut : OUT    std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);     --! Trigger output
+        shutter_to_dut      : OUT    std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);     --! Shutter output
+        veto_o                  : OUT    std_logic   
+    );
+    end component DUTInterfaces;
+----------------------------------------------
+----------------------------------------------
+    component Dummy_DUT 
+    Port ( 
+        CLK : in  STD_LOGIC;         --! this is the USB clock.
+        RST : in STD_LOGIC;          --! Synchronous clock
+        Trigger : in STD_LOGIC;      --! Trigger from TLU
+        Busy : out STD_LOGIC;        --! Busy to TLU
+        DUTClk : out STD_LOGIC;      --! clock from DUT
+        TriggerNumber : out STD_LOGIC_VECTOR(15 downto 0);
+        TriggerNumberStrobe : out STD_LOGIC;
+        FSM_Error : out STD_LOGIC
+        );
+end component;
+----------------------------------------------
+----------------------------------------------
+
+--    COMPONENT T0_Shutter_Iface
+--    PORT (
+--        clk_4x_i      : IN     std_logic;
+--        clk_4x_strobe : IN     std_logic;
+--        ipbus_clk_i   : IN     std_logic;
+--        ipbus_i       : IN     ipb_wbus;
+--        T0_o          : OUT    std_logic;
+--        ipbus_o       : OUT    ipb_rbus;
+--        shutter_o     : OUT    std_logic
+--    );
+--    END COMPONENT T0_Shutter_Iface;
+----------------------------------------------
+----------------------------------------------
+
+--   COMPONENT eventBuffer
+--   GENERIC (
+--        g_EVENT_DATA_WIDTH   : positive := 64;
+--        g_IPBUS_WIDTH        : positive := 32;
+--        g_READ_COUNTER_WIDTH : positive := 16
+--   );
+--   PORT (
+--        clk_4x_logic_i    : IN     std_logic ;
+--        data_strobe_i     : IN     std_logic ;                                     -- Indicates data TO transfer
+--        event_data_i      : IN     std_logic_vector (g_EVENT_DATA_WIDTH-1 DOWNTO 0);
+--        ipbus_clk_i       : IN     std_logic ;
+--        ipbus_i           : IN     ipb_wbus ;
+--        ipbus_reset_i     : IN     std_logic ;
+--        strobe_4x_logic_i : IN     std_logic ;
+--        --trigger_count_i   : IN     std_logic_vector (g_IPBUS_WIDTH-1 DOWNTO 0); --! Not used yet.
+--        rst_fifo_o        : OUT    std_logic ;                                     --! rst signal TO first level fifos
+--        buffer_full_o     : OUT    std_logic ;                                     --! Goes high when event buffer almost full
+--        ipbus_o           : OUT    ipb_rbus ;
+--        logic_reset_i     : IN     std_logic                                       -- reset buffers when high. Synch withclk_4x_logic
+--   );
+--   END COMPONENT eventBuffer;
+----------------------------------------------
+----------------------------------------------
+--    COMPONENT eventFormatter
+--    GENERIC (
+--        g_EVENT_DATA_WIDTH   : positive := 64;
+--        g_IPBUS_WIDTH        : positive := 32;
+--        g_COUNTER_TRIG_WIDTH : positive := 32;
+--        g_COUNTER_WIDTH      : positive := 12;
+--        g_EVTTYPE_WIDTH      : positive := 4;      --! Width of the event type word
+--        --g_NUM_INPUT_TYPES     : positive := 4;               -- Number of different input types (trigger, shutter, edge...)
+--        g_NUM_EDGE_INPUTS    : positive := 4;      --! Number of edge inputs
+--        g_NUM_TRIG_INPUTS    : positive := 6       --! Number of trigger inputs (POSSIBLY WRONG!)
+--    );
+--    PORT (
+--        clk_4x_logic_i         : IN     std_logic ;                                         --! Rising edge active
+--        ipbus_clk_i            : IN     std_logic ;
+--        logic_strobe_i         : IN     std_logic ;                                         --! Pulses high once every 4 cycles of clk_4x_logic
+--        logic_reset_i          : IN     std_logic ;                                         --! goes high TO reset counters. Synchronous with clk_4x_logic
+--        rst_fifo_i             : IN     std_logic ;                                         --! Goes high TO reset FIFOs
+--        buffer_full_i          : IN     std_logic ;                                         --! Goes high when output fifo full
+--        trigger_i              : IN     std_logic ;                                         --! goes high TO load trigger data. One cycle of clk_4x_logic
+--        trigger_times_i        : IN     t_triggerTimeArray (g_NUM_TRIG_INPUTS-1 DOWNTO 0);  --! Array of trigger times ( w.r.t. logic_strobe)
+--        trigger_inputs_fired_i : IN     std_logic_vector (g_NUM_TRIG_INPUTS-1 DOWNTO 0);    --! high for each input that "fired"
+--        trigger_cnt_i          : IN     std_logic_vector (g_COUNTER_TRIG_WIDTH-1 DOWNTO 0); --! Trigger count
+--        shutter_i              : IN     std_logic ;
+--        shutter_cnt_i          : IN     std_logic_vector (g_COUNTER_WIDTH-1 DOWNTO 0);
+--        spill_i                : IN     std_logic ;
+--        spill_cnt_i            : IN     std_logic_vector (g_COUNTER_WIDTH-1 DOWNTO 0);
+--        edge_rise_i            : IN     std_logic_vector (g_NUM_EDGE_INPUTS-1 DOWNTO 0);    --! High when rising edge
+--        edge_fall_i            : IN     std_logic_vector (g_NUM_EDGE_INPUTS-1 DOWNTO 0);    --! High when falling edge
+--        edge_rise_time_i       : IN     t_triggerTimeArray (g_NUM_EDGE_INPUTS-1 DOWNTO 0);  --! Array of edge times ( w.r.t. logic_strobe)
+--        edge_fall_time_i       : IN     t_triggerTimeArray (g_NUM_EDGE_INPUTS-1 DOWNTO 0);  --! Array of edge times ( w.r.t. logic_strobe)
+--        ipbus_i                : IN     ipb_wbus ;
+--        ipbus_o                : OUT    ipb_rbus ;
+--        data_strobe_o          : OUT    std_logic ;                                         --! goes high when data ready TO load into event buffer
+--        event_data_o           : OUT    std_logic_vector (g_EVENT_DATA_WIDTH-1 DOWNTO 0);
+--        reset_timestamp_i      : IN     std_logic ;                                         --! Taking high causes timestamp TO be reset. Combined with internal timestmap reset and written to reset_timestamp_o
+--        reset_timestamp_o      : OUT    std_logic                                           --! Goes high for one clock cycle of clk_4x_logic when timestamp reset
+--    );
+--    END COMPONENT eventFormatter;   
+----------------------------------------------
+----------------------------------------------
+    COMPONENT logic_clocks
+    GENERIC (
+        g_USE_EXTERNAL_CLK : integer := 1
+    );
+    PORT (
+        ipbus_clk_i           : IN     std_logic ;
+        ipbus_i               : IN     ipb_wbus ;
+        ipbus_reset_i         : IN     std_logic ;
+        Reset_i               : IN     std_logic ;
+        clk_logic_xtal_i      : IN     std_logic ; -- ! 40MHz clock from onboard xtal
+        clk_8x_logic_o       : OUT    std_logic ; -- 640MHz clock
+        clk_4x_logic_o        : OUT    std_logic ; -- 160MHz clock
+        ipbus_o               : OUT    ipb_rbus ;
+        strobe_8x_logic_o    : OUT    std_logic ; -- strobes once every 4 cycles of clk_16x
+        strobe_4x_logic_o     : OUT    std_logic ; -- one pulse every 4 cycles of clk_4x
+        --extclk_p_b            : INOUT  std_logic ; -- either external clock in, or a clock being driven out
+        --extclk_n_b            : INOUT  std_logic ;
+        DUT_clk_o             : OUT    std_logic ;
+        logic_clocks_locked_o : OUT    std_logic ;
+        logic_reset_o         : OUT    std_logic   -- Goes high TO reset counters etc. Sync with clk_4x_logic
+    );
+    END COMPONENT logic_clocks;
+----------------------------------------------
+----------------------------------------------
+--    COMPONENT triggerInputs_newTLU
+--    GENERIC (
+--        g_NUM_INPUTS  : natural  := 1;
+--        g_IPBUS_WIDTH : positive := 32
+--    );
+--    PORT (
+--        --cfd_discr_p_i        : IN     std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);        --! Inputs from constant-fraction discriminators
+--        --cfd_discr_n_i        : IN     std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);        --! Input from CFD
+--        clk_4x_logic         : IN     std_logic ;                                        --! Rising edge active. By default = 4*40MHz = 160MHz
+--        clk_200_i : IN     std_logic ;
+--        strobe_4x_logic_i    : IN     std_logic ;                                        --! Pulses high once every 4 cycles of clk_4x_logic
+--        threshold_discr_p_i  : IN     std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);        --! inputs from threshold comparators
+--        threshold_discr_n_i  : IN     std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);        --! inputs from threshold comparators
+--        reset_i              : IN     std_logic ;
+--        trigger_times_o      : OUT    t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);      --! trigger arrival time ( w.r.t. logic_strobe)
+--        trigger_o            : OUT    std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);        --!  Goes high on leading edge of trigger, in sync with clk_4x_logic_i
+--        --trigger_debug_o      : OUT    std_logic_vector ( ((2*g_NUM_INPUTS)-1) DOWNTO 0); --! Copy of input trigger level. High bits CFD, Low threshold
+--        edge_rising_times_o  : OUT    t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);      --! edge arrival time ( w.r.t. logic_strobe)
+--        edge_falling_times_o : OUT    t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);      --! edge arrival time ( w.r.t. logic_strobe)
+--        edge_rising_o        : OUT    std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);        --! High when rising edge. Syncronous with clk_4x_logic_i
+--        edge_falling_o       : OUT    std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);        --! High when falling edge
+--        ipbus_clk_i          : IN     std_logic ;
+--        ipbus_reset_i        : IN     std_logic ;
+--        ipbus_i              : IN     ipb_wbus ;                                         --! Signals from IPBus core TO slave
+--        ipbus_o              : OUT    ipb_rbus ;                                         --! signals from slave TO IPBus core
+--        clk_8x_logic_i      : IN     std_logic ;                                        --! 640MHz clock ( 16x 40MHz )
+--        strobe_8x_logic_i   : IN     std_logic                                          --! Pulses one cycle every 4 of 8x clock.
+--    );
+--    END COMPONENT triggerInputs_newTLU;
+----------------------------------------------
+----------------------------------------------
+--    COMPONENT triggerLogic
+--    GENERIC (
+--        g_NUM_INPUTS  : positive := 4;
+--        g_IPBUS_WIDTH : positive := 32
+--    );
+--    PORT (
+--        clk_4x_logic_i      : IN     std_logic ;                                   -- ! Rising edge active
+--        ipbus_clk_i         : IN     std_logic ;
+--        ipbus_i             : IN     ipb_wbus ;                                    -- Signals from IPBus core TO slave
+--        ipbus_reset_i       : IN     std_logic ;
+--        logic_reset_i       : IN     std_logic ;                                   -- active high. Synchronous with clk_4x_logic
+--        logic_strobe_i      : IN     std_logic ;                                   -- ! Pulses high once every 4 cycles of clk_4x_logic
+--        trigger_i           : IN     std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);   -- ! High when trigger from input connector active
+--        trigger_times_i     : IN     t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0); --! trigger arrival time
+--        veto_i              : IN     std_logic ;                                   -- ! Halts triggers when high
+--        trigger_o           : OUT    std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);   -- ! High when trigger from input connector active and enabled
+--        trigger_times_o     : OUT    t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0); --! trigger arrival time
+--        event_number_o      : OUT    std_logic_vector (g_IPBUS_WIDTH-1 DOWNTO 0);  -- starts at one. Increments for each post_veto_trigger
+--        ipbus_o             : OUT    ipb_rbus ;                                    -- signals from slave TO IPBus core
+--        post_veto_trigger_o : OUT    std_logic ;                                   -- ! goes high when trigger passes
+--        pre_veto_trigger_o  : OUT    std_logic ;
+--        trigger_active_o    : OUT    std_logic                                     --! Goes high when triggers are active ( ie. not veoted)
+--    );
+--    END COMPONENT triggerLogic;
+    
+    COMPONENT i2c_master
+        PORT (
+           i2c_scl_i     : IN     std_logic;
+           i2c_sda_i     : IN     std_logic;
+           ipbus_clk_i   : IN     std_logic;
+           ipbus_i       : IN     ipb_wbus;
+           ipbus_reset_i : IN     std_logic;
+           i2c_scl_enb_o : OUT    std_logic;
+           i2c_sda_enb_o : OUT    std_logic;
+           ipbus_o       : OUT    ipb_rbus
+    );
+    END COMPONENT i2c_master;
+    
+--    component clk_wiz_0
+--    port
+--     (-- Clock in ports
+--      clk_in1           : in     std_logic;
+--      -- Clock out ports
+--      clk_out1          : out    std_logic;
+--      -- Status and control signals
+--      reset             : in     std_logic;
+--      locked            : out    std_logic
+--     );
+--    end component;
+    
+
+    -- Optional embedded configurations
+    -- pragma synthesis_off
+    FOR ALL : DUTInterfaces USE ENTITY work.DUTInterfaces;
+    --FOR ALL : IPBusInterface USE ENTITY work.IPBusInterface;
+    FOR ALL : T0_Shutter_Iface USE ENTITY work.T0_Shutter_Iface;
+    FOR ALL : eventBuffer USE ENTITY work.eventBuffer;
+    FOR ALL : eventFormatter USE ENTITY work.eventFormatter;
+    FOR ALL : i2c_master USE ENTITY work.i2c_master;--<P
+    FOR ALL : logic_clocks USE ENTITY work.logic_clocks;
+    FOR ALL : triggerInputs_newTLU USE ENTITY work.triggerInputs_newTLU;
+    FOR ALL : triggerLogic USE ENTITY work.triggerLogic;
+    -- pragma synthesis_on 
+      	
+begin
+    
+--led_iic_test <= iic_test;
+
+--Implicit instantiation of output tristate buffers.
+    i2c_scl_b <= '0' when (s_i2c_scl_enb = '0') else 'Z';
+    i2c_sda_b <= '0' when (s_i2c_sda_enb = '0') else 'Z';
+
+    
+    
+    -- Infrastructure
+    -- ModuleWare code(v1.12) for instance 'I9' of 'gnd'
+    logic_clocks_reset <= '0';
+    -- ModuleWare code(v1.12) for instance 'I11' of 'gnd'
+    spill_i <= '0';
+    -- ModuleWare code(v1.12) for instance 'I12' of 'gnd'
+    spill_cnt_i <= (OTHERS => '0');
+    -- ModuleWare code(v1.12) for instance 'I13' of 'gnd'
+    shutter_i <= '0';
+    -- ModuleWare code(v1.12) for instance 'I14' of 'gnd'
+    shutter_cnt_i <= (OTHERS => '0');
+    -- ModuleWare code(v1.12) for instance 'I17' of 'gnd'
+    dout1 <= '0';
+    -- ModuleWare code(v1.12) for instance 'I18' of 'gnd'
+    dout <= '0';
+    -- ModuleWare code(v1.12) for instance 'I19' of 'merge'
+    --gpio_hdr <= dout1 & dout & s_shutter & T0_o;
+    -- ModuleWare code(v1.12) for instance 'I8' of 'sor'
+    overall_veto <= buffer_full_o OR veto_o;
+    -- ModuleWare code(v1.12) for instance 'I16' of 'sor'
+    s_triggerLogic_reset <= logic_reset OR T0_o;
+
+    i2c_reset <= '1';
+    clk_gen_rst <= '1';
+    gpio <= strobe_8x_logic;
+    sysclk_50_o_p <= '0';
+    sysclk_50_o_n <= '0';
+    --busy_o <= std_logic_vector(to_unsigned(0,    busy_o'length));
+    --busy_o <= '000000';
+    --sysclk_40_o_p <= sysclk;
+
+------------------------------------------
+	infra: entity work.enclustra_ax3_pm3_infra
+		port map(
+			sysclk => clk_encl_buf,
+			clk_ipb_o => clk_ipb,
+			rst_ipb_o => rst_ipb,
+			rst_125_o => phy_rst_e,
+			clk_200_o => clk_200,
+			nuke => nuke,
+			soft_rst => soft_rst,
+			leds => inf_leds,
+			rgmii_txd => rgmii_txd,
+			rgmii_tx_ctl => rgmii_tx_ctl,
+			rgmii_txc => rgmii_txc,
+			rgmii_rxd => rgmii_rxd,
+			rgmii_rx_ctl => rgmii_rx_ctl,
+			rgmii_rxc => rgmii_rxc,
+			mac_addr => mac_addr,
+			ip_addr => ip_addr,
+			ipb_in => ipb_in,
+			ipb_out => ipb_out
+		);
+		
+	--leds <= not ('0' & userled & inf_leds); -- Check this.
+	phy_rstn <= not phy_rst_e;
+		
+--	mac_addr <= X"020ddba1151" & dip_sw; -- Careful here, arbitrary addresses do not always work
+--	ip_addr <= X"c0a8c81" & dip_sw; -- 192.168.200.16+n
+	mac_addr <= X"020ddba1151d"; -- Careful here, arbitrary addresses do not always work
+	ip_addr <= X"c0a8c81d"; -- 192.168.200.29
+
+------------------------------------------
+    I1 : entity work.ipbus_ctrlreg_v
+    port map(
+        clk => clk_ipb,
+        reset => rst_ipb,
+        ipbus_in => ipbww(N_SLV_CTRL_REG),
+        ipbus_out => ipbrr(N_SLV_CTRL_REG),
+        d => stat,
+        q => ctrl
+    );
+    stat(0) <= std_logic_vector(FW_VERSION);-- <-Let's use this as firmware revision number
+    soft_rst <= ctrl(0)(0);
+    nuke <= ctrl(0)(1);
+    
+------------------------------------------
+	I2 : entity work.ipbus_fabric_sel
+    generic map(
+    	NSLV => N_SLAVES,
+    	SEL_WIDTH => IPBUS_SEL_WIDTH)
+    port map(
+      ipb_in => ipb_out,
+      ipb_out => ipb_in,
+      sel => ipbus_sel_ipbus_example(ipb_out.ipb_addr),
+      ipb_to_slaves => ipbww,
+      ipb_from_slaves => ipbrr
+    );
+
+------------------------------------------
+    I3 : i2c_master
+    PORT MAP (
+        i2c_scl_i     => i2c_scl_b,
+        i2c_sda_i     => i2c_sda_b,
+        ipbus_clk_i   => clk_ipb,
+        ipbus_i       => ipbww(N_SLV_I2C_0),
+        ipbus_reset_i => rst_ipb,
+        i2c_scl_enb_o => s_i2c_scl_enb,
+        i2c_sda_enb_o => s_i2c_sda_enb,
+        ipbus_o       => ipbrr(N_SLV_I2C_0)
+    );
+    
+----------------------------------------------
+    I4 : logic_clocks
+    GENERIC MAP (
+        g_USE_EXTERNAL_CLK => 0
+    )
+    PORT MAP (
+        ipbus_clk_i           => clk_ipb,
+        ipbus_i               => ipbww(N_SLV_LGCCLK),
+        ipbus_reset_i         => rst_ipb,
+        Reset_i               => logic_clocks_reset,
+        clk_logic_xtal_i      => sysclk_40, -- Not sure this is correct
+        clk_8x_logic_o       => clk_8x_logic,
+        clk_4x_logic_o        => clk_4x_logic,
+        ipbus_o               => ipbrr(N_SLV_LGCCLK),
+        strobe_8x_logic_o    => strobe_8x_logic,
+        strobe_4x_logic_o     => strobe_4x_logic,
+        DUT_clk_o             => open,
+        logic_clocks_locked_o => leds(3),
+        logic_reset_o         => logic_reset
+    );    
+
+----------------------------------------------
+--    I5 : triggerInputs_newTLU 
+--    GENERIC MAP (
+--        g_NUM_INPUTS  => g_NUM_TRIG_INPUTS,
+--        g_IPBUS_WIDTH => 32
+--    )
+--    PORT MAP (
+--        clk_4x_logic         => clk_4x_logic,
+--        clk_200_i => clk_200,
+--        strobe_4x_logic_i    => strobe_4x_logic,
+--        threshold_discr_p_i  => threshold_discr_p_i,
+--        threshold_discr_n_i  => threshold_discr_n_i,
+--        reset_i              => logic_reset,
+--        trigger_times_o      => trigger_times,
+--        trigger_o            => triggers,
+--        --trigger_debug_o      => OPEN,
+--        edge_rising_times_o  => s_edge_rise_times,
+--        edge_falling_times_o => s_edge_fall_times,
+--        edge_rising_o        => s_edge_rising,
+--        edge_falling_o       => s_edge_falling,
+--        ipbus_clk_i          => clk_ipb,
+--        ipbus_reset_i        => rst_ipb,
+--        ipbus_i              => ipbww(N_SLV_TRGIN),
+--        ipbus_o              => ipbrr(N_SLV_TRGIN),
+--        clk_8x_logic_i      => clk_8x_logic,
+--        strobe_8x_logic_i   => strobe_8x_logic
+--    );
+
+------------------------------------------      
+--    I6 : eventFormatter
+--    GENERIC MAP (
+--        g_EVENT_DATA_WIDTH   => g_EVENT_DATA_WIDTH,
+--        g_IPBUS_WIDTH        => g_IPBUS_WIDTH,
+--        g_COUNTER_TRIG_WIDTH => g_IPBUS_WIDTH,
+--        g_COUNTER_WIDTH      => 12,
+--        g_EVTTYPE_WIDTH      => 4,                         --! Width of the event type word
+--        --g_NUM_INPUT_TYPES     : positive := 4;               -- Number of different input types (trigger, shutter, edge...)
+--        g_NUM_EDGE_INPUTS    => g_NUM_EDGE_INPUTS,         --! Number of edge inputs
+--        g_NUM_TRIG_INPUTS    => g_NUM_TRIG_INPUTS          --! Number of trigger inputs
+--    )
+--    PORT MAP (
+--        clk_4x_logic_i         => clk_4x_logic,
+--        ipbus_clk_i            => clk_ipb,
+--        logic_strobe_i         => strobe_4x_logic,
+--        logic_reset_i          => logic_reset,
+--        rst_fifo_i             => rst_fifo_o,
+--        buffer_full_i          => buffer_full_o,
+--        trigger_i              => overall_trigger,
+--        trigger_times_i        => postVetoTrigger_times,
+--        trigger_inputs_fired_i => postVetotrigger,
+--        trigger_cnt_i          => trigger_count,
+--        shutter_i              => shutter_i,
+--        shutter_cnt_i          => shutter_cnt_i,
+--        spill_i                => spill_i,
+--        spill_cnt_i            => spill_cnt_i,
+--        edge_rise_i            => s_edge_rising,
+--        edge_fall_i            => s_edge_falling,
+--        edge_rise_time_i       => s_edge_rise_times,
+--        edge_fall_time_i       => s_edge_fall_times,
+--        ipbus_i                => ipbww(N_SLV_EVFMT),
+--        ipbus_o                => ipbrr(N_SLV_EVFMT),
+--        data_strobe_o          => data_strobe,
+--        event_data_o           => event_data,
+--        reset_timestamp_i      => T0_o,
+--        reset_timestamp_o      => OPEN
+--    );
+
+------------------------------------------
+--    I7 : eventBuffer
+--    GENERIC MAP (
+--        g_EVENT_DATA_WIDTH   => g_EVENT_DATA_WIDTH,
+--        g_IPBUS_WIDTH        => g_IPBUS_WIDTH,
+--        g_READ_COUNTER_WIDTH => 14
+        
+--    )
+--    PORT MAP (
+--        clk_4x_logic_i    => clk_4x_logic,
+--        data_strobe_i     => data_strobe,
+--        event_data_i      => event_data,
+--        ipbus_clk_i       => clk_ipb,
+--        ipbus_i           => ipbww(N_SLV_EVBUF),
+--        ipbus_reset_i     => rst_ipb,
+--        strobe_4x_logic_i => strobe_4x_logic,
+--        rst_fifo_o        => rst_fifo_o,
+--        buffer_full_o     => buffer_full_o,
+--        ipbus_o           => ipbrr(N_SLV_EVBUF),
+--        logic_reset_i     => logic_reset
+--    );
+    
+--------------------------------------------
+--    I8 : T0_Shutter_Iface
+--    PORT MAP (
+--        clk_4x_i      => clk_4x_logic,
+--        clk_4x_strobe => strobe_4x_logic,
+--        T0_o          => T0_o,
+--        shutter_o     => s_shutter,
+--        ipbus_clk_i   => clk_ipb,
+--        ipbus_i       => ipbww(N_SLV_SHUT),
+--        ipbus_o       => ipbrr(N_SLV_SHUT)
+--    );
+
+------------------------------------------
+--    I9 : DUTInterfaces
+--    GENERIC MAP (
+--        g_NUM_DUTS    => g_NUM_DUTS,
+--        g_IPBUS_WIDTH => g_IPBUS_WIDTH
+--    )
+--    PORT MAP (
+--         clk_4x_logic_i          => clk_4x_logic,
+--         strobe_4x_logic_i       => strobe_4x_logic,
+--         trigger_counter_i       => trigger_count,
+--         trigger_i               => overall_trigger,
+--         reset_or_clk_to_dut_i   => T0_o,
+--         shutter_to_dut_i        => s_shutter,
+--         ipbus_clk_i             => clk_ipb,
+--         ipbus_i                 => ipbww(N_SLV_DUT),
+--         ipbus_reset_i           => rst_ipb,
+--         ipbus_o                 => ipbrr(N_SLV_DUT),
+--         busy_from_dut       => busy_i,
+--         busy_to_dut        => open,
+--         clk_from_dut => dut_clk_i,
+--         clk_to_dut => dut_clk_o,
+--         --reset_or_clk_to_dut_n_o => reset_or_clk_n_o,
+--         --reset_or_clk_to_dut_p_o => reset_or_clk_p_o,
+--         reset_to_dut => spare_o,
+--         trigger_to_dut => triggers_o,
+--         --shutter_to_dut_n_o      => shutter_to_dut_n_o,
+--         --shutter_to_dut_p_o      => shutter_to_dut_p_o,
+--         shutter_to_dut  => cont_o,
+--         veto_o                  => veto_o
+--    );
+    
+------------------------------------------ 
+--        I10 : triggerLogic
+--        GENERIC MAP (
+--            g_NUM_INPUTS  => g_NUM_TRIG_INPUTS,
+--            g_IPBUS_WIDTH => g_IPBUS_WIDTH
+--        )
+--        PORT MAP (
+--            clk_4x_logic_i      => clk_4x_logic,
+--            ipbus_clk_i         => clk_ipb,
+--            ipbus_i             => ipbww(N_SLV_TRGLGC),
+--            ipbus_reset_i       => rst_ipb,
+--            logic_reset_i       => s_triggerLogic_reset,
+--            logic_strobe_i      => strobe_4x_logic,
+--            trigger_i           => triggers,
+--            trigger_times_i     => trigger_times,
+--            veto_i              => overall_veto,
+--            trigger_o           => postVetotrigger,
+--            trigger_times_o     => postVetoTrigger_times,
+--            event_number_o      => trigger_count,
+--            ipbus_o             => ipbrr(N_SLV_TRGLGC),
+--            post_veto_trigger_o => overall_trigger,
+--            pre_veto_trigger_o  => OPEN,
+--            trigger_active_o    => leds(2)
+--        );     
+         
+-------------TEST AREA------------    
+--    test0: entity work.test_inToOut
+--    port map(
+--        clk_in => clk_200,
+--        busy_in=> busy_i,
+--        control_in=> cont_i,
+--        trig_in=> triggers_i,
+--        clkDut_in=> dut_clk_i,
+--        spare_in=> spare_i,
+--        busy_out=> busy_o,
+--        control_out=> cont_o,
+--        trig_out=> triggers_o,
+--        clkDut_out=> dut_clk_o,
+--        spare_out=> spare_o
+--    );
+
+--    dutout0: entity work.DUTs_outputs
+--    port map(
+--        clk_in => encl_clock50, 
+--        d_clk_o => dut_clk_o,
+--        d_trg_o => triggers_o,
+--        d_busy_o => busy_o,
+--        d_cont_o => cont_o,
+--        d_spare_o => spare_o
+--    );
+   
+--    clk50_o_fromEnclustra : clk_wiz_0
+--       port map ( 
+--       -- Clock in ports
+--       clk_in1 => clk_encl_buf, --sysclk_40,
+--      -- Clock out ports  
+--       clk_out1 => encl_clock50,
+--      -- Status and control signals                
+--       reset => '0',
+--       locked =>  open          
+--     );
+
+    
+----------------------------------------------
+    OutBlocks:
+    for iDUT in 0 to g_NUM_DUTS-1 generate
+    begin
+
+
+--     generate an instance of the Dummy DUT behind connector 0
+    DUT_Instance: Dummy_DUT 
+      Port map ( 
+           --CLK => clk_4x_logic,--160 Mhz clock
+           CLK => sysclk_40,
+           RST => cont_i(iDUT),-- coming from HDMI pin
+           Trigger => triggers_i(iDUT), --coming from HDMI pin
+           Busy => busy_o(iDUT), --going out on HDMI pin
+           DUTClk => dut_clk_o(iDUT), --going out on HDMI pin
+           --TriggerNumber => TriggerNumber(DUT),
+           --TriggerNumberStrobe => TriggerNumberStrobe(DUT),
+           FSM_Error => open
+           );
+
+
+
+    end generate;
+
+
+    
+
+------------------------------------------      
+
+
+------------------------------------------
+    IBUFGDS_inst: IBUFGDS
+    generic map (
+        IBUF_LOW_PWR=> false
+    )
+    port map (
+        O => sysclk_40,
+        I => sysclk_40_i_p,
+        IB => sysclk_40_i_n
+    );
+    
+------------------------------------------
+    IBUFG_inst: IBUFG
+    port map (
+        O => clk_encl_buf,
+        I => clk_enclustra--sysclk
+    );    
+
+------------------------------------------
+-- Do not use this: we need differential 3.3 V, not available.
+--    OBUFDS_inst : OBUFDS
+--    generic map (
+--        SLEW => "FAST") -- Specify the output slew rate
+--    port map (
+--        O => sysclk_50_o_p, -- Diff_p output (connect directly to top-level port)
+--        OB => sysclk_50_o_n, -- Diff_n output (connect directly to top-level port)
+--        I => encl_clock50 -- Buffer input
+--    );
+    -- This might not work: these are just two single ended. If we remove R coupling maybe?
+    --sysclk_50_o_p <= encl_clock50;
+    --sysclk_50_o_n <= not encl_clock50;
+
+      
+
+
+end rtl;
diff --git a/legacy/EUDETdummy/scripts/EUDETdummy.py b/legacy/EUDETdummy/scripts/EUDETdummy.py
new file mode 100644
index 00000000..60f03abf
--- /dev/null
+++ b/legacy/EUDETdummy/scripts/EUDETdummy.py
@@ -0,0 +1,587 @@
+# -*- coding: utf-8 -*-
+import uhal;
+import pprint;
+from FmcTluI2c import *
+from I2CuHal import I2CCore
+from si5345 import si5345 # Library for clock chip
+from AD5665R import AD5665R # Library for DAC
+from PCA9539PW import PCA9539PW # Library for serial line expander
+
+class EUDETdummy:
+    """docstring for TLU"""
+    def __init__(self, dev_name, man_file):
+        self.dev_name = dev_name
+        self.manager= uhal.ConnectionManager(man_file)
+        self.hw = self.manager.getDevice(self.dev_name)
+        self.nDUTs= 4 #Number of DUT connectors
+        self.nChannels= 6 #Number of trigger inputs
+        self.VrefInt= 2.5 #Internal DAC voltage reference
+        self.VrefExt= 1.3 #External DAC voltage reference
+        self.intRefOn= False #Internal reference is OFF by default
+
+        self.fwVersion = self.hw.getNode("version").read()
+        self.hw.dispatch()
+        print "EUDUMMY FIRMWARE VERSION= " , hex(self.fwVersion)
+
+        # Instantiate a I2C core to configure components
+        self.TLU_I2C= I2CCore(self.hw, 10, 5, "i2c_master", None)
+        #self.TLU_I2C.state()
+
+        enableCore= True #Only need to run this once, after power-up
+        self.enableCore()
+
+        # Instantiate clock chip
+        self.zeClock=si5345(self.TLU_I2C, 0x68)
+        res= self.zeClock.getDeviceVersion()
+        self.zeClock.checkDesignID()
+
+        # Instantiate DACs and configure them to use reference based on TLU setting
+        self.zeDAC1=AD5665R(self.TLU_I2C, 0x13)
+        self.zeDAC2=AD5665R(self.TLU_I2C, 0x1F)
+        self.zeDAC1.setIntRef(self.intRefOn)
+        self.zeDAC2.setIntRef(self.intRefOn)
+
+        # Instantiate the serial line expanders and configure them to default values
+        self.IC6=PCA9539PW(self.TLU_I2C, 0x74)
+        self.IC6.setInvertReg(0, 0x00)# 0= normal, 1= inverted
+        self.IC6.setIOReg(0, 0x00)# 0= output, 1= input
+        self.IC6.setOutputs(0, 0xAA)# If output, set to XX
+
+        self.IC6.setInvertReg(1, 0x00)# 0= normal, 1= inverted
+        self.IC6.setIOReg(1, 0x00)# 0= output, 1= input
+        self.IC6.setOutputs(1, 0xAA)# If output, set to XX
+
+        self.IC7=PCA9539PW(self.TLU_I2C, 0x75)
+        self.IC7.setInvertReg(0, 0x00)# 0= normal, 1= inverted
+        self.IC7.setIOReg(0, 0x00)# 0= output, 1= input
+        self.IC7.setOutputs(0, 0x0F)# If output, set to XX
+
+        self.IC7.setInvertReg(1, 0x00)# 0= normal, 1= inverted
+        self.IC7.setIOReg(1, 0x00)# 0= output, 1= input
+        self.IC7.setOutputs(1, 0x50)# If output, set to XX
+
+
+##################################################################################################################################
+##################################################################################################################################
+    def DUTOutputs(self, dutN, enable=False, verbose=False):
+        ## Set the status of the transceivers for a specific HDMI connector. When enable= False the transceivers are disabled and the
+        ## connector cannot send signals from FPGA to the outside world. When enable= True then signals from the FPGA will be sent out to the HDMI.
+        ## NOTE: the other direction is always enabled, i.e. signals from the DUTs are always sent to the FPGA.
+        ## NOTE: CLK direction must be defined separately using DUTClkSrc
+
+        if (dutN < 0) | (dutN> (self.nDUTs-1)):
+            print "\tERROR: DUTOutputs. The DUT number must be comprised between 0 and ", self.nDUTs-1
+            return -1
+        bank= dutN//2 # DUT0 and DUT1 are on bank 0. DUT2 and DUT3 on bank 1
+        nibble= dutN%2 # DUT0 and DUT2 are on nibble 0. DUT1 and DUT3 are on nibble 1
+        print "  Setting DUT:", dutN, "to", enable
+        if verbose:
+            print "\tBank", bank, "Nibble", nibble
+        res= self.IC6.getIOReg(bank)
+        oldStatus= res[0]
+        mask= 0xF << 4*nibble
+        newStatus= oldStatus & (~mask)
+        if (not enable): # we want to write 0 to activate the outputs so check opposite of "enable"
+            newStatus |= mask
+        if verbose:
+            print "\tOldStatus= ", "{0:#0{1}x}".format(oldStatus,4), "Mask=" , hex(mask), "newStatus=", "{0:#0{1}x}".format(newStatus,4)
+        self.IC6.setIOReg(bank, newStatus)
+        return newStatus
+
+    def DUTClkSrc(self, dutN, clkSrc=0, verbose= False):
+        ## Allows to choose the source of the clock signal sent to the DUTs over HDMI
+        ## clkSrc= 0: clock disabled
+        ## clkSrc= 1: clock from Si5345
+        ## clkSrc=2: clock from FPGA
+        if (dutN < 0) | (dutN> (self.nDUTs-1)):
+            print "\tERROR: DUTClkSrc. The DUT number must be comprised between 0 and ", self.nDUTs-1
+            return -1
+        if (clkSrc < 0) | (clkSrc> 2):
+            print "\tERROR: DUTClkSrc. clkSrc can only be 0 (disabled), 1 (Si5345) or 2 (FPGA)"
+            return -1
+        bank=0
+        maskLow= 1 << (1* dutN) #CLK FROM FPGA
+        maskHigh= 1<< (1* dutN +4) #CLK FROM Si5345
+        mask= maskLow | maskHigh
+        res= self.IC7.getIOReg(bank)
+        oldStatus= res[0]
+        newStatus= oldStatus & ~mask #set both bits to zero
+        outStat= ""
+        if clkSrc==0:
+            newStatus = newStatus | mask
+            outStat= "disabled"
+        elif clkSrc==1:
+            newStatus = newStatus | maskLow
+            outStat= "Si5435"
+        elif clkSrc==2:
+            newStatus= newStatus | maskHigh
+            outStat= "FPGA"
+        print "  Setting DUT:", dutN, "clock source to", outStat
+        if verbose:
+            print "\tOldStatus= ", "{0:#0{1}x}".format(oldStatus,4), "Mask=" , hex(mask), "newStatus=", "{0:#0{1}x}".format(newStatus,4)
+        self.IC7.setIOReg(bank, newStatus)
+        return newStatus
+
+    def enableClkLEMO(self, enable= False, verbose= False):
+        ## Enable or disable the output clock to the differential LEMO output
+        bank=1
+        mask= 0x10
+        res= self.IC7.getIOReg(bank)
+        oldStatus= res[0]
+        newStatus= oldStatus & ~mask
+        outStat= "enabled"
+        if (not enable): #A 0 activates the output. A 1 disables it.
+            newStatus= newStatus | mask
+            outStat= "disabled"
+        print "  Clk LEMO", outStat
+        if verbose:
+            print "\tOldStatus= ", "{0:#0{1}x}".format(oldStatus,4), "Mask=" , hex(mask), "newStatus=", "{0:#0{1}x}".format(newStatus,4)
+        self.IC7.setIOReg(bank, newStatus)
+        return newStatus
+
+    def enableCore(self):
+        ## At power up the Enclustra I2C lines are disabled (tristate buffer is off).
+        ## This function enables the lines. It is only required once.
+        mystop=True
+        print "  Enabling I2C bus (expect 127):"
+        myslave= 0x21
+        mycmd= [0x01, 0x7F]
+        nwords= 1
+        self.TLU_I2C.write(myslave, mycmd, mystop)
+
+        mystop=False
+        mycmd= [0x01]
+        self.TLU_I2C.write(myslave, mycmd, mystop)
+        res= self.TLU_I2C.read( myslave, nwords)
+        print "\tPost RegDir: ", res
+
+    def getAllChannelsCounts(self):
+        chCounts=[]
+        for ch in range (0,self.nChannels):
+            chCounts.append(int(self.getChCount(ch)))
+        return chCounts
+
+    def getChStatus(self):
+        inputStatus= self.hw.getNode("triggerInputs.SerdesRstR").read()
+        self.hw.dispatch()
+        print "\tInput status= " , hex(inputStatus)
+        return inputStatus
+
+    def getChCount(self, channel):
+        regString= "triggerInputs.ThrCount"+ str(channel)+"R"
+        count = self.hw.getNode(regString).read()
+        self.hw.dispatch()
+        print "\tCh", channel, "Count:" , count
+        return count
+
+    def getClockStatus(self):
+        clockStatus = self.hw.getNode("logic_clocks.LogicClocksCSR").read()
+        self.hw.dispatch()
+        print "  CLOCK STATUS [expected 1]"
+        print "\t", hex(clockStatus)
+        if ( clockStatus == 0 ):
+            "ERROR: Clocks in EUDUMMY FPGA are not locked."
+        return clockStatus
+
+    def getDUTmask(self):
+        DUTMaskR = self.hw.getNode("DUTInterfaces.DutMaskR").read()
+        self.hw.dispatch()
+        print "\tDUTMask read back as:" , hex(DUTMaskR)
+        return DUTMaskR
+
+    def getExternalVeto(self):
+        extVeto= self.hw.getNode("triggerLogic.ExternalTriggerVetoR").read()
+        self.hw.dispatch()
+        print "\tEXTERNAL Veto read back as:", hex(extVeto)
+        return extVeto
+
+    def getFifoData(self, nWords):
+    	#fifoData= self.hw.getNode("eventBuffer.EventFifoData").read()
+    	fifoData= self.hw.getNode("eventBuffer.EventFifoData").readBlock (nWords);
+    	self.hw.dispatch()
+    	#print "\tFIFO Data:", hex(fifoData)
+    	return fifoData
+
+    def getFifoLevel(self):
+        FifoFill= self.hw.getNode("eventBuffer.EventFifoFillLevel").read()
+        self.hw.dispatch()
+        print "\tFIFO level read back as:", hex(FifoFill)
+        return FifoFill
+
+    def getFifoCSR(self):
+        FifoCSR= self.hw.getNode("eventBuffer.EventFifoCSR").read()
+        self.hw.dispatch()
+        print "\tFIFO CSR read back as:", hex(FifoCSR)
+        return FifoCSR
+
+    def getInternalTrg(self):
+        trigIntervalR = self.hw.getNode("triggerLogic.InternalTriggerIntervalR").read()
+        self.hw.dispatch()
+        print "\tTrigger frequency read back as:", trigIntervalR, "Hz"
+        return trigIntervalR
+
+    def getMode(self):
+        DUTInterfaceModeR = self.hw.getNode("DUTInterfaces.DUTInterfaceModeR").read()
+        self.hw.dispatch()
+        print "\tDUT mode read back as:" , hex(DUTInterfaceModeR)
+        return DUTInterfaceModeR
+
+    def getModeModifier(self):
+        DUTInterfaceModeModifierR = self.hw.getNode("DUTInterfaces.DUTInterfaceModeModifierR").read()
+        self.hw.dispatch()
+        print "\tDUT mode modifier read back as:" , hex(DUTInterfaceModeModifierR)
+        return DUTInterfaceModeModifierR
+
+    def getSN(self):
+        epromcontent=self.readEEPROM(0xfa, 6)
+        print "  EUDET dummy serial number (EEPROM):"
+        result="\t"
+        for iaddr in epromcontent:
+            result+="%02x "%(iaddr)
+        print result
+        return epromcontent
+
+    def getPostVetoTrg(self):
+        triggerN = self.hw.getNode("triggerLogic.PostVetoTriggersR").read()
+        self.hw.dispatch()
+        print "\tPOST VETO TRIGGER NUMBER:", (triggerN)
+        return triggerN
+
+    def getPulseDelay(self):
+        pulseDelayR = self.hw.getNode("triggerLogic.PulseDelayR").read()
+        self.hw.dispatch()
+        print "\tPulse delay read back as:", hex(pulseDelayR)
+        return pulseDelayR
+
+    def getPulseStretch(self):
+        pulseStretchR = self.hw.getNode("triggerLogic.PulseStretchR").read()
+        self.hw.dispatch()
+        print "\tPulse stretch read back as:", hex(pulseStretchR)
+        return pulseStretchR
+
+    def getRecordDataStatus(self):
+        RecordStatus= self.hw.getNode("Event_Formatter.Enable_Record_Data").read()
+        self.hw.dispatch()
+        print "\tData recording:", RecordStatus
+        return RecordStatus
+
+    def getTriggerVetoStatus(self):
+        trgVetoStatus= self.hw.getNode("triggerLogic.TriggerVetoR").read()
+        self.hw.dispatch()
+        print "\tTrigger veto status read back as:", trgVetoStatus
+        return trgVetoStatus
+
+    def getTrgPattern(self):
+        triggerPattern_low = self.hw.getNode("triggerLogic.TriggerPattern_lowR").read()
+        triggerPattern_high = self.hw.getNode("triggerLogic.TriggerPattern_highR").read()
+        self.hw.dispatch()
+        print "\tTrigger pattern read back as: 0x%08X 0x%08X" %(triggerPattern_high, triggerPattern_low)
+        return triggerPattern_low, triggerPattern_high
+
+    def getVetoDUT(self):
+        IgnoreDUTBusyR = self.hw.getNode("DUTInterfaces.IgnoreDUTBusyR").read()
+        self.hw.dispatch()
+        print "\tIgnoreDUTBusy read back as:" , hex(IgnoreDUTBusyR)
+        return IgnoreDUTBusyR
+
+    def getVetoShutters(self):
+        IgnoreShutterVeto = self.hw.getNode("DUTInterfaces.IgnoreShutterVetoR").read()
+        self.hw.dispatch()
+        print "\tIgnoreShutterVeto read back as:" , IgnoreShutterVeto
+        return IgnoreShutterVeto
+
+    def pulseT0(self):
+        cmd = int("0x1",16)
+        self.hw.getNode("Shutter.PulseT0").write(cmd)
+        self.hw.dispatch()
+        print "\tPulsing T0"
+
+    def readEEPROM(self, startadd, bytes):
+        mystop= 1
+        time.sleep(0.1)
+        myaddr= [startadd]#0xfa
+        self.TLU_I2C.write( 0x50, [startadd], mystop)
+        res= self.TLU_I2C.read( 0x50, bytes)
+        return res
+
+    def resetClock(self):
+        # Set the RST pin from the PLL to 1
+        print "  Clocks reset"
+        cmd = int("0x1",16)
+        self.hw.getNode("logic_clocks.LogicRst").write(cmd)
+        self.hw.dispatch()
+
+    def resetClocks(self):
+        #Reset clock PLL
+        self.resetClock()
+        #Get clock status after reset
+        self.getClockStatus()
+        #Restore clock PLL
+        self.restoreClock()
+        #Get clock status after restore
+        self.getClockStatus()
+        #Get serdes status
+        self.getChStatus()
+
+    def resetCounters(self):
+    	cmd = int("0x2", 16) #write 0x2 to reset
+    	self.hw.getNode("triggerInputs.SerdesRstW").write(cmd)
+    	restatus= self.hw.getNode("triggerInputs.SerdesRstR").read()
+    	self.hw.dispatch()
+    	cmd = int("0x0", 16) #write 0x2 to reset
+    	self.hw.getNode("triggerInputs.SerdesRstW").write(cmd)
+    	restatus= self.hw.getNode("triggerInputs.SerdesRstR").read()
+    	self.hw.dispatch()
+    	#print "Trigger Reset: 0x%X" % restatus
+    	print "\tTrigger counters reset"
+
+    def resetSerdes(self):
+        cmd = int("0x3",16)
+        self.setChStatus(cmd)
+        inputStatus= self.getChStatus()
+        print "\t  Input status during reset = " , hex(inputStatus)
+
+        cmd = int("0x0",16)
+        self.setChStatus(cmd)
+        inputStatus= self.getChStatus()
+        print "\t  Input status after reset = " , hex(inputStatus)
+
+        cmd = int("0x4",16)
+        self.setChStatus(cmd)
+        inputStatus= self.getChStatus()
+        print "\t  Input status during calibration = " , hex(inputStatus)
+
+        cmd = int("0x0",16)
+        self.setChStatus(cmd)
+        inputStatus= self.getChStatus()
+        print "\t  Input status after calibration = " , hex(inputStatus)
+
+    def restoreClock(self):
+        # Set the RST pin from the PLL to 0
+        print "  Clocks restore"
+        cmd = int("0x0",16)
+        self.hw.getNode("logic_clocks.LogicRst").write(cmd)
+        self.hw.dispatch()
+
+    def setChStatus(self, cmd):
+        self.hw.getNode("triggerInputs.SerdesRstW").write(cmd)
+        inputStatus= self.hw.getNode("triggerInputs.SerdesRstR").read()
+        self.hw.dispatch()
+        print "  INPUT STATUS SET TO= " , hex(inputStatus)
+
+    def setClockStatus(self, cmd):
+        # Only use this for testing. The clock source is actually selected in the Si5345.
+        self.hw.getNode("logic_clocks.LogicClocksCSR").write(cmd)
+        self.hw.dispatch()
+
+    def setDUTmask(self, DUTMask):
+        print "  DUT MASK ENABLING: Mask= " , hex(DUTMask)
+        self.hw.getNode("DUTInterfaces.DutMaskW").write(DUTMask)
+        self.hw.dispatch()
+        self.getDUTmask()
+
+    def setFifoCSR(self, cmd):
+        self.hw.getNode("eventBuffer.EventFifoCSR").write(cmd)
+        self.hw.dispatch()
+        self.getFifoCSR()
+
+    def setInternalTrg(self, triggerInterval):
+        print "  TRIGGERS INTERNAL:"
+        if triggerInterval == 0:
+            internalTriggerFreq = 0
+            print "\tdisabled"
+        else:
+            internalTriggerFreq = 160000.0/triggerInterval
+            print "\t  Setting:", internalTriggerFreq, "Hz"
+        self.hw.getNode("triggerLogic.InternalTriggerIntervalW").write(int(internalTriggerFreq))
+        self.hw.dispatch()
+        self.getInternalTrg()
+
+    def setMode(self, mode):
+        print "  DUT MODE SET TO: ", hex(mode)
+        self.hw.getNode("DUTInterfaces.DUTInterfaceModeW").write(mode)
+        self.hw.dispatch()
+        self.getMode()
+
+    def setModeModifier(self, modifier):
+        print "  DUT MODE MODIFIER:", hex(modifier)
+        self.hw.getNode("DUTInterfaces.DUTInterfaceModeModifierW").write(modifier)
+        self.hw.dispatch()
+        self.getModeModifier()
+
+    def setPulseDelay(self, pulseDelay):
+        print "  TRIGGER DELAY SET TO", hex(pulseDelay), "[Units= 160MHz clock, 5-bit values (one per input) packed in to 32-bit word]"
+        self.hw.getNode("triggerLogic.PulseDelayW").write(pulseDelay)
+        self.hw.dispatch()
+        self.getPulseDelay()
+
+    def setPulseStretch(self, pulseStretch):
+        print "  INPUT COINCIDENCE WINDOW SET TO", hex(pulseStretch) ,"[Units= 160MHz clock cycles, 5-bit values (one per input) packed in to 32-bit word]"
+        self.hw.getNode("triggerLogic.PulseStretchW").write(pulseStretch)
+        self.hw.dispatch()
+        self.getPulseStretch()
+
+    def setRecordDataStatus(self, status=False):
+        print "  Data recording set:"
+        self.hw.getNode("Event_Formatter.Enable_Record_Data").write(status)
+        self.hw.dispatch()
+        self.getRecordDataStatus()
+
+    def setTriggerVetoStatus(self, status=False):
+        self.hw.getNode("triggerLogic.TriggerVetoW").write(status)
+        self.hw.dispatch()
+        self.getTriggerVetoStatus()
+
+    def setTrgPattern(self, triggerPatternH, triggerPatternL):
+        triggerPatternL &= 0xffffffff
+        triggerPatternH &= 0xffffffff
+        print "  TRIGGER PATTERN (for external triggers) SET TO 0x%08X 0x%08X. Two 32-bit words." %(triggerPatternH, triggerPatternL)
+        self.hw.getNode("triggerLogic.TriggerPattern_lowW").write(triggerPatternL)
+        self.hw.getNode("triggerLogic.TriggerPattern_highW").write(triggerPatternH)
+        self.hw.dispatch()
+        self.getTrgPattern()
+
+    def setVetoDUT(self, ignoreDUTBusy):
+        print "  VETO IGNORE BY DUT BUSY MASK SET TO" , hex(ignoreDUTBusy)
+        self.hw.getNode("DUTInterfaces.IgnoreDUTBusyW").write(ignoreDUTBusy)
+        self.hw.dispatch()
+        self.getVetoDUT()
+
+    def setVetoShutters(self, newState):
+        if newState:
+            print "  IgnoreShutterVetoW SET TO LISTEN FOR VETO FROM SHUTTER"
+            cmd= int("0x0",16)
+        else:
+            print "  IgnoreShutterVetoW SET TO IGNORE VETO FROM SHUTTER"
+            cmd= int("0x1",16)
+        self.hw.getNode("DUTInterfaces.IgnoreShutterVetoW").write(cmd)
+        self.hw.dispatch()
+        self.getVetoShutters()
+
+    def writeThreshold(self, DACtarget, Vtarget, channel):
+        #Writes the threshold. The DAC voltage differs from the threshold voltage because
+        #the range is shifted to be symmetrical around 0V.
+
+        #Check if the DACs are using the internal reference
+        if (self.intRefOn):
+            Vref= self.VrefInt
+        else:
+            Vref= self.VrefExt
+
+        #Calculate offset voltage (because of the following shifter)
+        Vdac= ( Vtarget + Vref ) / 2
+        print"  THRESHOLD setting:"
+        if channel==7:
+            print "\tCH: ALL"
+        else:
+            print "\tCH:", channel
+        print "\tTarget V:", Vtarget
+        dacValue = 0xFFFF * (Vdac / Vref)
+        DACtarget.writeDAC(int(dacValue), channel, True)
+
+    def parseFifoData(self, fifoData, nEvents, verbose):
+        #for index in range(0, len(fifoData)-1, 6):
+        outList= []
+        for index in range(0, (nEvents)*6, 6):
+            word0= (fifoData[index] << 32) + fifoData[index + 1]
+            word1= (fifoData[index + 2] << 32) + fifoData[index + 3]
+            word2= (fifoData[index + 4] << 32) + fifoData[index + 5]
+            evType= (fifoData[index] & 0xF0000000) >> 28
+            inTrig= (fifoData[index] & 0x0FFF0000) >> 16
+            tStamp= ((fifoData[index] & 0x0000FFFF) << 32) + fifoData[index + 1]
+            fineTs= fifoData[index + 2]
+            evNum= fifoData[index + 3]
+            fineTsList=[-1]*12
+            fineTsList[3]= (fineTs & 0x000000FF)
+            fineTsList[2]= (fineTs & 0x0000FF00) >> 8
+            fineTsList[1]= (fineTs & 0x00FF0000) >> 16
+            fineTsList[0]= (fineTs & 0xFF000000) >> 24
+            fineTsList[7]= (fifoData[index + 4] & 0x000000FF)
+            fineTsList[6]= (fifoData[index + 4] & 0x0000FF00) >> 8
+            fineTsList[5]= (fifoData[index + 4] & 0x00FF0000) >> 16
+            fineTsList[4]= (fifoData[index + 4] & 0xFF000000) >> 24
+            fineTsList[11]= (fifoData[index + 5] & 0x000000FF)
+            fineTsList[10]= (fifoData[index + 5] & 0x0000FF00) >> 8
+            fineTsList[9]= (fifoData[index + 5] & 0x00FF0000) >> 16
+            fineTsList[8]= (fifoData[index + 5] & 0xFF000000) >> 24
+            if verbose:
+                print "====== EVENT", evNum, "================================================="
+                print "[", hex(word0), "]", "\t TYPE", hex(evType), "\t TRIGGER", hex(inTrig), "\t TIMESTAMP", (tStamp)
+                print "[",hex(word1), "]", "\tEV NUM", evNum, "\tFINETS[0,3]", hex(fineTs)
+                print "[",hex(word2), "]", "\tFINETS[4,11]", hex(word2)
+                print fineTsList
+            fineTsList.insert(0, tStamp)
+            fineTsList.insert(0, evNum)
+            #print fineTsList
+            outList.insert(len(outList), fineTsList)
+        printdata= False
+        if (printdata):
+            print "=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-="
+            print "EN#\tCOARSE_TS\tFINE_TS0...FINE_TS11"
+            pprint.pprint(outList)
+        return outList
+
+
+
+
+##################################################################################################################################
+##################################################################################################################################
+
+    def initialize(self):
+        print "\nEUDUMMY INITIALIZING..."
+
+        # We need to pass it listenForTelescopeShutter , pulseDelay , pulseStretch , triggerPattern , DUTMask , ignoreDUTBusy , triggerInterval , thresholdVoltage
+
+        #READ CONTENT OF EPROM VIA I2C
+        self.getSN()
+
+
+        #
+        # #SET DACs
+        targetV= -0.12
+        DACchannel= 7
+        self.writeThreshold(self.zeDAC1, targetV, DACchannel, )
+        self.writeThreshold(self.zeDAC2, targetV, DACchannel, )
+
+        #
+        # #ENABLE/DISABLE HDMI OUTPUTS
+        #self.DUTOutputs(0, True, False)
+        #self.DUTOutputs(1, True, False)
+        #self.DUTOutputs(2, True, False)
+        #self.DUTOutputs(3, True, False)
+
+        ## ENABLE/DISABLE LEMO CLOCK OUTPUT
+        #self.enableClkLEMO(True, False)
+
+        #
+        # #Check clock status
+        self.getClockStatus()
+
+        resetClocks = 0
+        resetSerdes = 0
+        resetCounters= 0
+        if resetClocks:
+            self.resetClocks()
+            self.getClockStatus()
+        if resetSerdes:
+            self.resetSerdes()
+        if resetCounters:
+	    self.resetCounters()
+
+
+
+        print "EUDUMMY INITIALIZED"
+
+##################################################################################################################################
+##################################################################################################################################
+    def start(self, logtimestamps=False):
+        print "EUDUMMY STARTING..."
+
+        print "  EUDUMMY RUNNING"
+
+##################################################################################################################################
+##################################################################################################################################
+    def stop(self):
+        print "EUDUMMY STOPPING..."
+
+        print "  EUDUMMY STOPPED"
diff --git a/legacy/EUDETdummy/scripts/EUDETdummyaddrmap.xml b/legacy/EUDETdummy/scripts/EUDETdummyaddrmap.xml
new file mode 100644
index 00000000..5d9ab7b3
--- /dev/null
+++ b/legacy/EUDETdummy/scripts/EUDETdummyaddrmap.xml
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<node id="eudummy">
+
+<!-- Registers for the DUTs. These should be correct -->
+<!--
+<node id="DUTInterfaces" address="0x1000" description="DUT Interfaces control registers">
+  <node id="DutMaskW"           address="0x0" permission="w" description="" />
+  <node id="IgnoreDUTBusyW"     address="0x1" permission="w" description="" />
+  <node id="IgnoreShutterVetoW" address="0x2" permission="w" description="" />
+  <node id="DUTInterfaceModeW"  address="0x3" permission="w" description="" />
+  <node id="DUTInterfaceModeModifierW"  address="0x4" permission="w" description="" />
+  <node id="DUTInterfaceModeR"  address="0xB" permission="r" description="" />
+  <node id="DUTInterfaceModeModifierR"  address="0xC" permission="r" description="" />
+  <node id="DutMaskR"           address="0x8" permission="r" description="" />
+  <node id="IgnoreDUTBusyR"     address="0x9" permission="r" description="" />
+  <node id="IgnoreShutterVetoR" address="0xA" permission="r" description="" />
+</node>
+-->
+<!--
+<node id="Shutter"    address="0x2000" description="Shutter/T0 control">
+  <node id="ShutterStateW" address="0x0" permission="w" description=""/>
+  <node id="PulseT0"  address="0x1" permission="w" description=""/>
+</node>
+-->
+<!-- I2C registers. Tested ok.-->
+<node id="i2c_master"      address="0x3000" description="I2C Master interface">
+  <node id="i2c_pre_lo"    address="0x0" mask="0x000000ff" permission="rw" description="" />
+  <node id="i2c_pre_hi"    address="0x1" mask="0x000000ff" permission="rw" description="" />
+  <node id="i2c_ctrl"      address="0x2" mask="0x000000ff" permission="rw" description="" />
+  <node id="i2c_rxtx"      address="0x3" mask="0x000000ff" permission="rw" description="" />
+  <node id="i2c_cmdstatus" address="0x4" mask="0x000000ff" permission="rw" description="" />
+</node>
+<!-- Not sure about the FillLevelFlags register -->
+<!--
+<node id="eventBuffer" address="0x4000" description="Event buffer">
+  <node id="EventFifoData" address="0x0" mode="non-incremental" size="32000" permission="r" description="" />
+  <node id="EventFifoFillLevel" address="0x1" permission="r" description="" />
+  <node id="EventFifoCSR" address="0x2" permission="rw" description="" />
+  <node id="EventFifoFillLevelFlags" address="0x3" permission="r" description="" />
+</node>
+-->
+<!-- Event formatter registers. Should be ok -->
+<!--
+<node id="Event_Formatter"      address="0x5000" description="Event formatter configuration">
+  <node id="Enable_Record_Data" address="0x0" permission="rw" description="" />
+  <node id="ResetTimestampW"    address="0x1" permission="w" description="" />
+  <node id="CurrentTimestampLR" address="0x2" permission="r" description="" />
+  <node id="CurrentTimestampHR" address="0x3" permission="r" description="" />
+</node>
+-->
+<!-- This needs checking. The counters work, not sure about the reset -->
+<!--
+<node id="triggerInputs" address="0x6000" description="Inputs configuration">
+  <node id="SerdesRstW" address="0x0" permission="w" description="" />
+  <node id="SerdesRstR" address="0x8" permission="r" description="" />
+  <node id="ThrCount0R" address="0x9" permission="r" description="" />
+  <node id="ThrCount1R" address="0xa" permission="r" description="" />
+  <node id="ThrCount2R" address="0xb" permission="r" description="" />
+  <node id="ThrCount3R" address="0xc" permission="r" description="" />
+  <node id="ThrCount4R" address="0xd" permission="r" description="" />
+  <node id="ThrCount5R" address="0xe" permission="r" description="" />
+</node>
+-->
+<!-- Checked. Seems ok now, except for the TriggerVeto that do nothing.-->
+<!--
+<node id="triggerLogic" address="0x7000" description="Trigger logic configuration">
+  <node id="PostVetoTriggersR" address="0x10" permission="r" description="" />
+  <node id="PreVetoTriggersR" address="0x11" permission="r" description="" />
+  <node id="InternalTriggerIntervalW" address="0x2" permission="w" description="" />
+  <node id="InternalTriggerIntervalR" address="0x12" permission="r" description="" />
+  <node id="TriggerVetoW" address="0x4" permission="w" description="" />
+  <node id="TriggerVetoR" address="0x14" permission="r" description="" />
+  <node id="ExternalTriggerVetoR" address="0x15" permission="r" description="" />
+  <node id="PulseStretchW" address="0x6" permission="w" description="" />
+  <node id="PulseStretchR" address="0x16" permission="r" description="" />
+  <node id="PulseDelayW" address="0x7" permission="w" description="" />
+  <node id="PulseDelayR" address="0x17" permission="r" description="" />
+  <node id="TriggerHoldOffW" address="0x8" permission="W" description="" />
+  <node id="TriggerHoldOffR" address="0x18" permission="r" description="" />
+  <node id="AuxTriggerCountR" address="0x19" permission="r" description="" />
+  <node id="TriggerPattern_lowW" address="0xA" permission="w" description="" />
+  <node id="TriggerPattern_lowR" address="0x1A" permission="r" description="" />
+  <node id="TriggerPattern_highW" address="0xB" permission="w" description="" />
+  <node id="TriggerPattern_highR" address="0x1B" permission="r" description="" />
+</node>
+-->
+<node id="logic_clocks" address="0x8000" description="Clocks configuration">
+  <node id="LogicClocksCSR" address="0x0" permission="rw" description="" />
+  <node id="LogicRst" address="0x1" permission="w" description="" />
+</node>
+
+<node id="version" address="0x1" description="firmware version" permission="r">
+</node>
+
+</node>
diff --git a/legacy/EUDETdummy/scripts/EUDETdummyconnection.xml b/legacy/EUDETdummy/scripts/EUDETdummyconnection.xml
new file mode 100644
index 00000000..6084306e
--- /dev/null
+++ b/legacy/EUDETdummy/scripts/EUDETdummyconnection.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<connections>
+  <connection id="eudummy" uri="ipbusudp-2.0://192.168.200.29:50001"
+   address_table="file://./EUDETdummyaddrmap.xml" />
+</connections>
diff --git a/legacy/EUDETdummy/scripts/EUDummy_testscript.py b/legacy/EUDETdummy/scripts/EUDummy_testscript.py
new file mode 100644
index 00000000..3e780ea9
--- /dev/null
+++ b/legacy/EUDETdummy/scripts/EUDummy_testscript.py
@@ -0,0 +1,155 @@
+# -*- coding: utf-8 -*-
+import uhal
+from I2CuHal import I2CCore
+import time
+#import miniTLU
+from si5345 import si5345
+from AD5665R import AD5665R
+from PCA9539PW import PCA9539PW
+from E24AA025E48T import E24AA025E48T
+
+manager = uhal.ConnectionManager("file://./EUDETdummyconnection.xml")
+hw = manager.getDevice("eudummy")
+
+# hw.getNode("A").write(255)
+reg = hw.getNode("version").read()
+hw.dispatch()
+print "CHECK REG= ", hex(reg)
+
+
+# #First I2C core
+print ("Instantiating master I2C core:")
+master_I2C= I2CCore(hw, 10, 5, "i2c_master", None)
+master_I2C.state()
+
+
+
+
+#
+# #######################################
+enableCore= True #Only need to run this once, after power-up
+if (enableCore):
+   mystop=True
+   print "  Write RegDir to set I/O[7] to output:"
+   myslave= 0x21
+   mycmd= [0x01, 0x7F]
+   nwords= 1
+   master_I2C.write(myslave, mycmd, mystop)
+
+
+   mystop=False
+   mycmd= [0x01]
+   master_I2C.write(myslave, mycmd, mystop)
+   res= master_I2C.read( myslave, nwords)
+   print "\tPost RegDir: ", res
+# #######################################
+#
+# time.sleep(0.1)
+# #Read the EPROM
+# mystop=False
+# nwords=6
+# myslave= 0x53 #DUNE EPROM 0x53 (Possibly)
+# myaddr= [0xfa]#0xfa
+# master_I2C.write( myslave, myaddr, mystop)
+# #res= master_I2C.read( 0x50, 6)
+# res= master_I2C.read( myslave, nwords)
+# print "  PCB EPROM: "
+# result="\t  "
+# for iaddr in res:
+#    result+="%02x "%(iaddr)
+# print result
+# #######################################
+
+
+#CLOCK CONFIGURATION BEGIN
+zeClock=si5345(master_I2C, 0x68)
+res= zeClock.getDeviceVersion()
+zeClock.checkDesignID()
+#zeClock.setPage(0, True)
+#zeClock.getPage(True)
+clkRegList= zeClock.parse_clk("./../../bitFiles/TLU_CLK_Config.txt")
+#zeClock.writeConfiguration(clkRegList)######
+zeClock.writeRegister(0x0536, [0x0B]) #Configures manual switch of inputs
+zeClock.writeRegister(0x0949, [0x0F]) #Enable all inputs
+zeClock.writeRegister(0x052A, [0x05]) #Configures source of input
+iopower= zeClock.readRegister(0x0949, 1)
+print "  Clock IO power: 0x%X" % iopower[0]
+lol= zeClock.readRegister(0x000E, 1)
+print "  Clock LOL: 0x%X" % lol[0]
+los= zeClock.readRegister(0x000D, 1)
+print "  Clock LOS: 0x%X" % los[0]
+#CLOCK CONFIGURATION END
+
+#DAC CONFIGURATION BEGIN
+zeDAC1=AD5665R(master_I2C, 0x13)
+zeDAC1.setIntRef(intRef= False, verbose= True)
+zeDAC1.writeDAC(0x0, 7, verbose= True)#7626
+
+zeDAC2=AD5665R(master_I2C, 0x1F)
+zeDAC2.setIntRef(intRef= False, verbose= True)
+zeDAC2.writeDAC(0x2fff, 3, verbose= True)
+#DAC CONFIGURATION END
+
+#EEPROM BEGIN
+zeEEPROM= E24AA025E48T(master_I2C, 0x50)
+res=zeEEPROM.readEEPROM(0xfa, 6)
+result="  EEPROM ID:\n\t"
+for iaddr in res:
+    result+="%02x "%(iaddr)
+print result
+#EEPROM END
+
+# #I2C EXPANDER CONFIGURATION BEGIN
+IC6=PCA9539PW(master_I2C, 0x74)
+#BANK 0
+IC6.setInvertReg(0, 0x00)# 0= normal
+IC6.setIOReg(0, 0xF7)# 0= output <<<<<<<<<<<<<<<<<<<
+IC6.setOutputs(0, 0xFF)
+res= IC6.getInputs(0)
+print "IC6 read back bank 0: 0x%X" % res[0]
+#
+#BANK 1
+IC6.setInvertReg(1, 0x00)# 0= normal
+IC6.setIOReg(1, 0xFF)# 0= output <<<<<<<<<<<<<<<<<<<
+IC6.setOutputs(1, 0xFF)
+res= IC6.getInputs(1)
+print "IC6 read back bank 1: 0x%X" % res[0]
+
+# # #
+IC7=PCA9539PW(master_I2C, 0x75)
+#BANK 0
+IC7.setInvertReg(0, 0xFF)# 0= normal
+IC7.setIOReg(0, 0xFA)# 0= output <<<<<<<<<<<<<<<<<<<
+IC7.setOutputs(0, 0xFF)
+res= IC7.getInputs(0)
+print "IC7 read back bank 0: 0x%X" % res[0]
+#
+#BANK 1
+IC7.setInvertReg(1, 0x00)# 0= normal
+IC7.setIOReg(1, 0x0F)# 0= output <<<<<<<<<<<<<<<<<<<
+IC7.setOutputs(1, 0xFF)
+res= IC7.getInputs(1)
+print "IC7 read back bank 1: 0x%X" % res[0]
+# #I2C EXPANDER CONFIGURATION END
+
+
+# #Reset counters
+#cmd = int("0x0", 16) #write 0x2 to reset
+#hw.getNode("triggerInputs.SerdesRstW").write(cmd)
+#restatus= hw.getNode("triggerInputs.SerdesRstR").read()
+#hw.dispatch()
+#print "Trigger Reset: 0x%X" % restatus
+## #Read trigger inputs
+#myreg= [-1, -1, -1, -1, -1, -1]
+#for inputN in range(0, 6):
+#  regString= "triggerInputs.ThrCount%dR" % inputN
+#  myreg[inputN]= hw.getNode(regString).read()
+#  hw.dispatch()
+#  print regString, myreg[inputN]
+
+## Read ev formatter
+#cmd = int("0x0", 16) #
+##hw.getNode("Event_Formatter.Enable_Record_Data").write(cmd)
+#efstatus= hw.getNode("Event_Formatter.CurrentTimestampLR").read()
+#hw.dispatch()
+#print "Event Formatter Record: 0x%X" % efstatus
diff --git a/legacy/EUDETdummy/scripts/initTLU.py b/legacy/EUDETdummy/scripts/initTLU.py
new file mode 100644
index 00000000..eb1ae650
--- /dev/null
+++ b/legacy/EUDETdummy/scripts/initTLU.py
@@ -0,0 +1,184 @@
+#
+# Function to initialize TLU
+#
+# David Cussans, October 2015
+#
+# Nasty hack - use both PyChips and uHAL ( for block read ... )
+
+from PyChipsUser import *
+from FmcTluI2c import *
+
+import uhal
+
+import sys
+import time
+
+def startTLU( uhalDevice , pychipsBoard , writeTimestamps):
+
+    print "RESETTING FIFO"
+    pychipsBoard.write("EventFifoCSR",0x2)
+    eventFifoFillLevel = pychipsBoard.read("EventFifoFillLevel")
+    print "FIFO FILL LEVEL AFTER RESET= " , eventFifoFillLevel
+
+
+    if writeTimestamps:
+        print "ENABLING DATA RECORDING"
+        pychipsBoard.write("Enable_Record_Data",1)
+    else:
+        print "Disabling data recording"
+        pychipsBoard.write("Enable_Record_Data",0)
+
+    print "Pulsing T0"
+    pychipsBoard.write("PulseT0",1)
+
+    print "Turning off software trigger veto"
+    pychipsBoard.write("TriggerVetoW",0)
+
+    print "TLU is running"
+
+
+def stopTLU( uhalDevice , pychipsBoard ):
+
+    print "Turning on software trigger veto"
+    pychipsBoard.write("TriggerVetoW",1)
+
+    print "TLU triggers are stopped"
+
+def initTLU( uhalDevice , pychipsBoard , listenForTelescopeShutter , pulseDelay , pulseStretch , triggerPattern , DUTMask , ignoreDUTBusy , triggerInterval , thresholdVoltage ):
+
+    print "SETTING UP AIDA TLU"
+
+    fwVersion = uhalDevice.getNode("version").read()
+    uhalDevice.dispatch()
+    print "\tVersion (uHAL)= " , hex(fwVersion)
+
+    print "\tTurning on software trigger veto"
+    pychipsBoard.write("TriggerVetoW",1)
+
+    # Check the bus for I2C devices
+    pychipsBoardi2c = FmcTluI2c(pychipsBoard)
+
+    print "\tScanning I2C bus:"
+    scanResults = pychipsBoardi2c.i2c_scan()
+    #print scanResults
+    print '\t', ', '.join(scanResults), '\n'
+
+    boardId = pychipsBoardi2c.get_serial_number()
+    print "\tFMC-TLU serial number= " , boardId
+
+    resetClocks = 0
+    resetSerdes = 0
+
+# set DACs to -200mV
+    print "\tSETTING ALL DAC THRESHOLDS TO" , thresholdVoltage , "V"
+    pychipsBoardi2c.set_threshold_voltage(7, thresholdVoltage)
+
+    clockStatus = pychipsBoard.read("LogicClocksCSR")
+    print "\tCLOCK STATUS (should be 3 if all clocks locked)= " , hex(clockStatus)
+    assert ( clockStatus == 3 ) , "Clocks in TLU FPGA are not locked. No point in continuing. Re-prgramme or power cycle board"
+
+    if resetClocks:
+        print "Resetting clocks"
+        pychipsBoard.write("LogicRst", 1 )
+
+        clockStatus = pychipsBoard.read("LogicClocksCSR")
+        print "Clock status after reset = " , hex(clockStatus)
+
+        inputStatus = pychipsBoard.read("SerdesRstR")
+        print "Input status = " , hex(inputStatus)
+
+    if resetSerdes:
+        pychipsBoard.write("SerdesRstW", 0x00000003 )
+        inputStatus = pychipsBoard.read("SerdesRstR")
+        print "Input status during reset = " , hex(inputStatus)
+
+        pychipsBoard.write("SerdesRstW", 0x00000000 )
+        inputStatus = pychipsBoard.read("SerdesRstR")
+        print "Input status after reset = " , hex(inputStatus)
+
+        pychipsBoard.write("SerdesRstW", 0x00000004 )
+        inputStatus = pychipsBoard.read("SerdesRstR")
+        print "Input status during calibration = " , hex(inputStatus)
+
+        pychipsBoard.write("SerdesRstW", 0x00000000 )
+        inputStatus = pychipsBoard.read("SerdesRstR")
+        print "Input status after calibration = " , hex(inputStatus)
+
+
+    inputStatus = pychipsBoard.read("SerdesRstR")
+    print "\tINPUT STATUS= " , hex(inputStatus)
+
+    count0 = pychipsBoard.read("ThrCount0R")
+    print "\t  Count 0= " , count0
+
+    count1 = pychipsBoard.read("ThrCount1R")
+    print "\t  Count 1= " , count1
+
+    count2 = pychipsBoard.read("ThrCount2R")
+    print "\t  Count 2= " , count2
+
+    count3 = pychipsBoard.read("ThrCount3R")
+    print "\t  Count 3= " , count3
+
+# Stop internal triggers until setup complete
+    pychipsBoard.write("InternalTriggerIntervalW",0)
+
+    print "\tSETTING INPUT COINCIDENCE WINDOW TO",pulseStretch,"[Units= 160MHz clock cycles, Four 5-bit values (one per input) packed in to 32-bit word]"
+    pychipsBoard.write("PulseStretchW",int(pulseStretch))
+    pulseStretchR = pychipsBoard.read("PulseStretchR")
+    print "\t  Pulse stretch read back as:", hex(pulseStretchR)
+ #   assert (int(pulseStretch) == pulseStretchR) , "Pulse stretch read-back doesn't equal written value"
+
+    print "\tSETTING INPUT TRIGGER DELAY TO",pulseDelay , "[Units= 160MHz clock cycles, Four 5-bit values (one per input) packed in to 32-bit word]"
+    pychipsBoard.write("PulseDelayW",int(pulseDelay))
+    pulseDelayR = pychipsBoard.read("PulseDelayR")
+    print "\t  Pulse delay read back as:", hex(pulseDelayR)
+
+    print "\tSETTING TRIGGER PATTERN (for external triggers) TO 0x%08X. Two 16-bit patterns packed into 32 bit word  " %(triggerPattern)
+    pychipsBoard.write("TriggerPatternW",int(triggerPattern))
+    triggerPatternR = pychipsBoard.read("TriggerPatternR")
+    print "\t  Trigger pattern read back as: 0x%08X " % (triggerPatternR)
+
+    print "\tENABLING DUT(s): Mask= " , hex(DUTMask)
+    pychipsBoard.write("DUTMaskW",int(DUTMask))
+    DUTMaskR = pychipsBoard.read("DUTMaskR")
+    print "\t  DUTMask read back as:" , hex(DUTMaskR)
+
+    print "\tSETTING ALL DUTs IN AIDA MODE"
+    pychipsBoard.write("DUTInterfaceModeW", 0xFF)
+    DUTInterfaceModeR = pychipsBoard.read("DUTInterfaceModeR")
+    print "\t  DUT mode read back as:" , DUTInterfaceModeR
+
+    print "\tSET DUT MODE MODIFIER"
+    pychipsBoard.write("DUTInterfaceModeModifierW", 0xFF)
+    DUTInterfaceModeModifierR = pychipsBoard.read("DUTInterfaceModeModifierR")
+    print "\t  DUT mode modifier read back as:" , DUTInterfaceModeModifierR
+
+    if listenForTelescopeShutter:
+        print "\tSET IgnoreShutterVetoW TO LISTEN FOR VETO FROM SHUTTER"
+        pychipsBoard.write("IgnoreShutterVetoW",0)
+    else:
+        print "\tSET IgnoreShutterVetoW TO IGNORE VETO FROM SHUTTER"
+        pychipsBoard.write("IgnoreShutterVetoW",1)
+    IgnoreShutterVeto = pychipsBoard.read("IgnoreShutterVetoR")
+    print "\t  IgnoreShutterVeto read back as:" , IgnoreShutterVeto
+
+    print "\tSETTING IGNORE VETO BY DUT BUSY MASK TO" , hex(ignoreDUTBusy)
+    pychipsBoard.write("IgnoreDUTBusyW",int(ignoreDUTBusy))
+    IgnoreDUTBusy = pychipsBoard.read("IgnoreDUTBusyR")
+    print "\t  IgnoreDUTBusy read back as:" , hex(IgnoreDUTBusy)
+
+#print "Enabling handshake: No-handshake"
+#board.write("HandshakeTypeW",1)
+
+
+    print "\tSETTING INTERNAL TRIGGER INTERVAL TO" , triggerInterval , "(zero= no internal triggers)"
+    if triggerInterval == 0:
+        internalTriggerFreq = 0
+    else:
+        internalTriggerFreq = 160000.0/triggerInterval
+    print "\tINTERNAL TRIGGER FREQUENCY= " , internalTriggerFreq , " kHz"
+    pychipsBoard.write("InternalTriggerIntervalW",triggerInterval)  #0->Internal pulse generator disabled. Any other value will generate pulses with a frequency of n*6.25ns
+    trigIntervalR = pychipsBoard.read("InternalTriggerIntervalR")
+    print "\t  Trigger interval read back as:", trigIntervalR
+    print "AIDA TLU SETUP COMPLETED"
diff --git a/legacy/EUDETdummy/scripts/startDUMMY.sh b/legacy/EUDETdummy/scripts/startDUMMY.sh
new file mode 100644
index 00000000..03f6c55f
--- /dev/null
+++ b/legacy/EUDETdummy/scripts/startDUMMY.sh
@@ -0,0 +1,24 @@
+#!/bin/bash
+
+echo "=========================="
+CURRENT_DIR=${0%/*}
+echo "CURRENT DIRECTORY: " $CURRENT_DIR
+
+echo "============"
+echo "SETTING PATHS"
+export PYTHONPATH=$CURRENT_DIR/../../../../Python_Scripts/PyChips_1_5_0_pre2A/src:$PYTHONPATH
+export PYTHONPATH=~/Python_Scripts/PyChips_1_5_0_preexport PYTHONPATH=../../packages:$PYTHONPATH2A/src:$PYTHONPATH
+echo "PYTHON PATH= " $PYTHONPATH
+export LD_LIBRARY_PATH=/opt/cactus/lib:$LD_LIBRARY_PATH
+echo "LD_LIBRARY_PATH= " $LD_LIBRARY_PATH
+export PATH=/usr/bin/:/opt/cactus/bin:$PATH
+echo "PATH= " $PATH
+
+cd $CURRENT_DIR
+
+echo "============"
+echo "STARTING PYTHON SCRIPT FOR TLU"
+#python $CURRENT_DIR/startTLU_v8.py $@
+
+python startEUDETdummy.py $@
+#python testTLU_script.py
diff --git a/legacy/EUDETdummy/scripts/startEUDETdummy.py b/legacy/EUDETdummy/scripts/startEUDETdummy.py
new file mode 100644
index 00000000..2efbf71b
--- /dev/null
+++ b/legacy/EUDETdummy/scripts/startEUDETdummy.py
@@ -0,0 +1,72 @@
+# -*- coding: utf-8 -*-
+# miniTLU test script
+
+#from PyChipsUser import *
+from FmcTluI2c import *
+import uhal
+import sys
+import time
+# from ROOT import TFile, TTree
+# from ROOT import gROOT
+from datetime import datetime
+
+from EUDETdummy import EUDETdummy
+# Use to have interactive shell
+import cmd
+
+class MyPrompt(cmd.Cmd):
+
+
+    def do_startRun(self, args):
+	"""Starts the TLU run"""
+	print "COMMAND RECEIVED: STARTING TLU RUN"
+	startTLU( uhalDevice = self.hw, pychipsBoard = self.board,  writeTimestamps = ( options.writeTimestamps == "True" ) )
+	#print self.hw
+
+    def do_stopRun(self, args):
+	"""Stops the TLU run"""
+	print "COMMAND RECEIVED: STOP TLU RUN"
+	#stopTLU( uhalDevice = hw, pychipsBoard = board )
+
+    def do_quit(self, args):
+        """Quits the program."""
+        print "COMMAND RECEIVED: QUITTING SCRIPT."
+        #raise SystemExit
+	return True
+
+# # Override methods in Cmd object ##
+#     def preloop(self):
+#         """Initialization before prompting user for commands.
+#            Despite the claims in the Cmd documentaion, Cmd.preloop() is not a stub.
+#         """
+#         cmd.Cmd.preloop(self)  # # sets up command completion
+#         self._hist = []  # # No history yet
+#         self._locals = {}  # # Initialize execution namespace for user
+#         self._globals = {}
+#         print "\nINITIALIZING"
+#         now = datetime.now().strftime('%Y-%m-%dT%H_%M_%S')
+#         default_filename = './rootfiles/tluData_' + now + '.root'
+#         print "SETTING UP AIDA TLU TO SUPPLY CLOCK AND TRIGGER TO TORCH READOUT\n"
+#         self.manager = uhal.ConnectionManager("file://./connection.xml")
+#         self.hw = self.manager.getDevice("minitlu")
+#         self.device_id = self.hw.id()
+#
+#         # Point to TLU in Pychips
+#         self.bAddrTab = AddressTable("./aida_mini_tlu_addr_map.txt")
+#
+#         # Assume DIP-switch controlled address. Switches at 2
+#         self.board = ChipsBusUdp(self.bAddrTab,"192.168.200.32",50001)
+
+
+#################################################
+if __name__ == "__main__":
+    EUDummy= EUDETdummy("eudummy", "file://./EUDETdummyconnection.xml")
+    EUDummy.initialize()
+
+    logdata= True
+    EUDummy.start(logdata)
+    time.sleep(0.2)
+    EUDummy.stop()
+    # prompt = MyPrompt()
+    # prompt.prompt = '>> '
+    # prompt.cmdloop("Welcome to miniTLU test console.\nType HELP for a list of commands.")
diff --git a/legacy/EUDETdummy/scripts/testTLU_script.py b/legacy/EUDETdummy/scripts/testTLU_script.py
new file mode 100644
index 00000000..9d8b334b
--- /dev/null
+++ b/legacy/EUDETdummy/scripts/testTLU_script.py
@@ -0,0 +1,79 @@
+# miniTLU test script
+
+from FmcTluI2c import *
+import uhal
+import sys
+import time
+from I2CuHal import I2CCore
+from miniTLU import MiniTLU
+from datetime import datetime
+
+if __name__ == "__main__":
+    print "\tTEST TLU SCRIPT"
+    miniTLU= MiniTLU("minitlu", "file://./connection.xml")
+    #(self, target, wclk, i2cclk, name="i2c", delay=None)
+    TLU_I2C= I2CCore(miniTLU.hw, 10, 5, "i2c_master", None)
+    TLU_I2C.state()
+
+
+    #READ CONTENT OF EEPROM ON 24AA02E48 (0xFA - 0XFF)
+    mystop= 1
+    time.sleep(0.1)
+    myaddr= [0xfa]
+    TLU_I2C.write( 0x50, myaddr, mystop)
+    res=TLU_I2C.read( 0x50, 6)
+    print "Checkin EEPROM:"
+    result="\t"
+    for iaddr in res:
+        result+="%02x "%(iaddr)
+    print result
+
+    #SCAN I2C ADDRESSES
+    #WRITE PROM
+    #WRITE DAC
+
+
+    #Convert required threshold voltage to DAC code
+    #def convert_voltage_to_dac(self, desiredVoltage, Vref=1.300):
+    print("Writing DAC setting:")
+    Vref= 1.300
+    desiredVoltage= 3.3
+    channel= 0
+    i2cSlaveAddrDac = 0x1F
+    vrefOn= 0
+    Vdaq = ( desiredVoltage + Vref ) / 2
+    dacCode = 0xFFFF * Vdaq / Vref
+    dacCode= 0x391d
+    print "\tVreq:", desiredVoltage
+    print "\tDAC code:"  , dacCode
+    print "\tCH:", channel
+    print "\tIntRef:", vrefOn
+
+    #Set DAC value
+    #def set_dac(self,channel,value , vrefOn = 0 , i2cSlaveAddrDac = 0x1F):
+    if channel<0 or channel>7:
+        print "set_dac ERROR: channel",channel,"not in range 0-7 (bit mask)"
+        ##return -1
+    if dacCode<0 or dacCode>0xFFFF:
+        print "set_dac ERROR: value",dacCode ,"not in range 0-0xFFFF"
+        ##return -1
+    # AD5665R chip with A0,A1 tied to ground
+    #i2cSlaveAddrDac = 0x1F   # seven bit address, binary 00011111
+
+    # print "I2C address of DAC = " , hex(i2cSlaveAddrDac)
+    # dac = RawI2cAccess(self.i2cBusProps, i2cSlaveAddrDac)
+    # # if we want to enable internal voltage reference:
+
+    if vrefOn:
+        # enter vref-on mode:
+        print "\tTurning internal reference ON"
+        #dac.write([0x38,0x00,0x01])
+        TLU_I2C.write( i2cSlaveAddrDac, [0x38,0x00,0x01], 0)
+    else:
+        print "\tTurning internal reference OFF"
+        #dac.write([0x38,0x00,0x00])
+        TLU_I2C.write( i2cSlaveAddrDac, [0x38,0x00,0x00], 0)
+    # Now set the actual value
+    sequence=[( 0x18 + ( channel &0x7 ) ) , int(dacCode/256)&0xff , int(dacCode)&0xff]
+    print "\tWriting byte sequence:", sequence
+    TLU_I2C.write( i2cSlaveAddrDac, sequence, 0)
diff --git a/legacy/TLU_v1c/common/DUTInterface_AIDA_rtl.vhd b/legacy/TLU_v1c/common/DUTInterface_AIDA_rtl.vhd
new file mode 100644
index 00000000..243913c7
--- /dev/null
+++ b/legacy/TLU_v1c/common/DUTInterface_AIDA_rtl.vhd
@@ -0,0 +1,149 @@
+--=============================================================================
+--! @file DUTInterface_AIDA_rtl.vhd
+--=============================================================================
+--
+-------------------------------------------------------------------------------
+-- --
+-- University of Bristol, High Energy Physics Group.
+-- --
+------------------------------------------------------------------------------- --
+-- VHDL Architecture fmc_mTLU_lib.DUTInterface_AIDA.rtl
+--
+--------------------------------------------------------------------------------
+--
+LIBRARY ieee;
+USE ieee.std_logic_1164.all;
+
+--! @brief "AIDA Style" Interface to a Device Under Test (DUT) connector.
+--! factorized from original DUTInterfaces_rtl.vhd firmware.
+--!
+--! @author David Cussans , David.Cussans@bristol.ac.uk
+--!
+--! @date 1/Sept/2015
+--!
+--! @version v0.1
+--!
+--! @details
+--
+
+ENTITY DUTInterface_AIDA IS
+   GENERIC( 
+      g_IPBUS_WIDTH : positive := 32
+   );
+   PORT( 
+      clk_4x_logic_i          : IN     std_logic;
+      strobe_4x_logic_i       : IN     std_logic;      --! goes high every 4th clock cycle
+      trigger_counter_i       : IN     std_logic_vector (g_IPBUS_WIDTH-1 DOWNTO 0);  --! Number of trigger events since last reset
+      trigger_i               : IN     std_logic;      --! goes high when trigger logic issues a trigger
+      reset_or_clk_to_dut_i   : IN     std_logic;      --! Synchronization signal. Passed to DUT pins
+      shutter_to_dut_i        : IN     std_logic;      --! Goes high to indicate data-taking active. DUTs report busy unless ignore_shutter_veto  flag is set high
+      ignore_shutter_veto_i   : in     std_logic;
+      ignore_dut_busy_i       : in     std_logic;
+      dut_mask_i              : in     std_logic;      --! Set high if DUT is active.
+      busy_o                  : OUT    std_logic;      --! goes high when DUT is busy or vetoed by shutter
+      
+      -- Signals to/from DUT
+      dut_busy_i       : IN     std_logic;     --! BUSY input from DUTs
+      dut_clk_o        : OUT    std_logic;     --! clocks trigger data when in EUDET mode
+      dut_reset_or_clk_o : OUT    std_logic;     --! Either reset line or trigger
+      dut_shutter_o      : OUT    std_logic;     --! Shutter output. Output 0 (RJ45) has no shutter signal
+      dut_trigger_o      : OUT    std_logic     --! Trigger output
+
+   );
+
+-- Declarations
+
+END ENTITY DUTInterface_AIDA ;
+
+--
+ARCHITECTURE rtl OF DUTInterface_AIDA IS
+
+  signal s_strobe_4x_logic_d1 : std_logic;
+  signal s_dut_clk : std_logic := '0';  -- Clock to be sent to DUT connectors ( before final register )
+  signal s_dut_clk_sr : std_logic_vector(2 downto 0) := "001"; --! Gets shifted out by clk_4x logic. Loaded by strobe_4x_logic
+  signal s_stretch_trig_in : std_logic := '0';  -- ! stretched version of trigger_i 
+  signal s_stretch_trig_in_sr : std_logic_vector(2 downto 0) := "111"; --! Gets shifted out by clk_4x logic. Loaded by trigger_i
+  signal s_trigger_out : std_logic := '0';  -- ! trigger shifted to start on strobe_4x_logic
+
+  -- Set length of output trigger here ( output length = length of this vector + 1 ) 
+  signal s_trigger_out_sr : std_logic_vector(2 downto 0) := ( others => '1'); --! Gets shifted out by clk_4x logic. Loaded by strobe_4x_logic.
+  
+                                                               
+BEGIN
+
+     
+  -- Copy reset/clk signal straight through
+  dut_reset_or_clk_o <= reset_or_clk_to_dut_i;
+
+  dut_shutter_o <= shutter_to_dut_i;
+      
+  -- purpose: generates a clock from 4x clock and strobe ( high once every 4 cycles )
+  -- should produce 11001100... etc. ie. 40MHz clock from 160MHz clock
+  -- type   : combinational
+  -- inputs : clk_4x_logic_i , strobe_4x_i
+  -- outputs: s_dut_clk
+  p_dut_clk_gen: process (clk_4x_logic_i , strobe_4x_logic_i) is
+  begin  -- process p_dut_clk_gen
+    if rising_edge(clk_4x_logic_i) then
+      if (strobe_4x_logic_i = '1') then
+        s_dut_clk <= '1';
+        s_dut_clk_sr <= "001";
+      else
+        s_dut_clk <= s_dut_clk_sr(0);
+        s_dut_clk_sr <= '0' & s_dut_clk_sr(s_dut_clk_sr'left downto 1);          
+      end if;
+    end if;
+  end process p_dut_clk_gen;
+
+  -- purpose: re-times a single cycle pulse on trigger on clk_4x_logic onto clk_logic 
+  -- type   : combinational
+  -- inputs : clk_4x_logic_i , strobe_4x_logic_i , trigger_i
+  -- outputs: s_premask_trigger_to_dut
+  p_dut_trig_retime: process (clk_4x_logic_i , strobe_4x_logic_i , trigger_i) is
+  begin  -- process p_dut_trig_retime
+    if rising_edge(clk_4x_logic_i)  then
+
+      -- Stretch trigger_i pulse to 4 clock cycles on clk4x
+      if trigger_i = '1' then
+        s_stretch_trig_in <= '1';
+        s_stretch_trig_in_sr <= ( others => '1' );
+      else
+        s_stretch_trig_in <= s_stretch_trig_in_sr(0);
+        s_stretch_trig_in_sr <= '0' & s_stretch_trig_in_sr(s_stretch_trig_in_sr'left downto 1);
+      end if;
+
+      -- 
+      if (strobe_4x_logic_i  = '1') and ( s_stretch_trig_in = '1' ) then
+        s_trigger_out <= '1';
+        s_trigger_out_sr <= ( others => '1' );
+      else
+        s_trigger_out <= s_trigger_out_sr(0);
+        s_trigger_out_sr <= '0' & s_trigger_out_sr(s_trigger_out_sr'left downto 1);
+      end if;
+      
+    end if;
+  end process p_dut_trig_retime;
+
+    
+  -- purpose: register for internal signals and output signals
+  -- type   : combinational
+  -- inputs : clk_4x_logic_i , strobe_4x_logic_i , s_veto
+  -- outputs: busy_o
+  register_signals: process (clk_4x_logic_i)-- , strobe_4x_logic_i , s_veto)
+  begin  -- process register_signals
+    if rising_edge(clk_4x_logic_i) then
+
+      s_strobe_4x_logic_d1 <= strobe_4x_logic_i;
+
+      busy_o <= ((not ignore_shutter_veto_i ) and (not shutter_to_dut_i)) or
+                ((dut_busy_i and DUT_mask_i ) and (not ignore_dut_busy_i) );
+
+      dut_clk_o <= s_dut_clk ;
+      dut_trigger_o <= DUT_mask_i and s_trigger_out;
+      
+    end if;
+  end process register_signals;
+
+  
+END ARCHITECTURE rtl;
+
diff --git a/legacy/TLU_v1c/common/DUTInterface_EUDET_rtl.vhd b/legacy/TLU_v1c/common/DUTInterface_EUDET_rtl.vhd
new file mode 100644
index 00000000..33b10128
--- /dev/null
+++ b/legacy/TLU_v1c/common/DUTInterface_EUDET_rtl.vhd
@@ -0,0 +1,275 @@
+--! @file
+-------------------------------------------------------------------------------
+--
+--
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+
+--! @brief "EUDET style" interfaces to a DUT connection. Outputs TRIGGER and receives DUT_CLK and BUSY
+--! lines. Adapted from Trigger_Signal_Controller from EUDET TLU firmware.
+--!
+--! @author David.Cussans@bristol.ac.uk
+--! @date 1/Sept/2015
+------------------------------------------------------------------------------------
+entity DUTInterface_EUDET is
+  GENERIC( 
+    g_TRIGGER_DATA_WIDTH : positive := 32 -- was32
+   );
+  port (
+    rst_i : in std_logic;                --! asynchronous reset. Active high
+    busy_o : out std_logic;             --! low if FSM is in IDLE state, high otherwise
+    fsm_state_value_o : out std_logic_vector(3 downto 0);  --! detailed status of FSM.
+    trigger_i : in std_logic;        --! Trigger retimed onto system clock.active high. 
+    trigger_counter_i : in std_logic_vector(g_TRIGGER_DATA_WIDTH-1 downto 0);  --! event number
+    system_clk_i : in std_logic;          --! rising edge active clock from TLU
+    reset_or_clk_to_dut_i   : IN     std_logic;  --! Synchronization signal. Passed to DUT pins
+    shutter_to_dut_i        : IN     std_logic;  --! Goes high to indicate data-taking active. DUTs report busy unless ignoreShutterVeto flag set high
+    ignore_shutter_veto_i        : in     std_logic;
+    enable_dut_veto_i : in std_logic;      --! If high: if DUT raises dut_busy_i, then  busy_o is raised
+    -- Connections to DUT:
+    dut_clk_i : in std_logic;             --! rising edge active clock from DUT
+    dut_busy_i : in std_logic;            --! from DUT
+    dut_shutter_o      : OUT    std_logic;     --! Shutter output.
+    dut_trigger_o : out std_logic    --! trigger to DUT
+    );
+end DUTInterface_EUDET;
+
+architecture rtl of DUTInterface_EUDET is
+
+-----------------------------------------------------------------------------
+-- Declarations for state machine
+  type state_type is (IDLE , WAIT_FOR_BUSY_HIGH , TRIGGER_DEGLITCH_DELAY1 ,
+                      TRIGGER_DEGLITCH_DELAY2 , WAIT_FOR_BUSY_LOW 
+                     , DUT_INITIATED_VETO );
+--                      );
+  signal state , next_state : state_type;
+
+  -- Xilinx Voodoo for state machine
+  attribute SAFE_IMPLEMENTATION : string;
+  attribute SAFE_IMPLEMENTATION of state : signal is "yes";
+  -- End of Xilinx Voodoo
+
+-----------------------------------------------------------------------------
+
+--  signal internal_clk : std_logic;
+  signal serial_trig_data : std_logic;
+  signal trig_shift_reg : std_logic_vector(g_TRIGGER_DATA_WIDTH-1 downto 0);  
+                                        -- shift register storing parallel trigger data
+--  signal d1_output  :  std_logic;
+--  signal d2_output  :  std_logic;
+  signal dut_rising_edge  :  std_logic;
+  signal shift_reg_ce  :  std_logic;
+
+  signal dut_busy_r1 , dut_busy_r2 , dut_clk_r1 , dut_clk_r2 : std_logic;  -- ! registered values
+  
+begin  -- rtl
+
+
+  dut_shutter_o <= shutter_to_dut_i ; -- for now just pass through.
+  
+  -- purpose: suppress meta-stability by registering input signals.
+  -- type   : combinational
+  -- inputs : dut_busy_r1 , dut_busy_r2 , dut_clk_r1 , dut_clk_r2
+  -- outputs: dut_busy_r2 , dut_clk_r2
+  register_signals: process ( dut_busy_r1 , dut_clk_r1 , system_clk_i )
+  begin  -- process register_signals
+    if rising_edge(system_clk_i) then
+
+      dut_busy_r2 <= dut_busy_r1 ;
+      dut_clk_r2 <= dut_clk_r1;
+      dut_busy_r1 <= dut_busy_i ;
+      dut_clk_r1 <= dut_clk_i;
+      
+    end if;
+  end process register_signals;
+
+
+  
+  rising_edge_pulse: entity work.single_pulse
+    port map (
+      level => dut_clk_i,
+      clk   => system_clk_i,
+      pulse => dut_rising_edge);
+
+  
+-- look for the rising edge of DUT clock and enable CE for one cycle.
+  -- I have a nasty suspicion that meta-stability issues may make this
+  -- go horribly wrong .
+-- Need to add timing constraint that shift_reg_ce must arrive before clock at trig_data_driver
+-- also WAIT_FOR_BUSY_LOW must not mess things up.
+  clk_enable_select: process (state, dut_rising_edge)
+begin  -- process
+  if (state=WAIT_FOR_BUSY_LOW) then
+    shift_reg_ce <= dut_rising_edge;
+  else
+    shift_reg_ce <= '0';
+  end if;
+end process;
+
+  
+   
+  
+  -- purpose: controls the serial_trig_data line
+  -- type   : combinational
+  -- inputs : system_clk_i , trigger_counter_i
+  -- outputs: serial_trig_data
+  trig_data_driver: process (system_clk_i , trigger_counter_i , shift_reg_ce , trig_shift_reg , state)
+  begin
+    
+    if rising_edge( system_clk_i ) then
+
+      -- if busy is high in response to a trigger shift data out of
+      -- register on rising edge of DUT clock . This is done by having a slow
+      -- DUT clock and setting shift_reg_ce for one cycle of system_clk_i when
+      -- the DUT clock rising edge comes by.
+      if (shift_reg_ce ='1' ) then
+        trig_shift_reg <= '0' & trig_shift_reg(g_TRIGGER_DATA_WIDTH-1 downto 1);
+        serial_trig_data <= trig_shift_reg(0);
+
+      -- otherwise load shift register if we have just had a trigger.
+      elsif (state = WAIT_FOR_BUSY_HIGH ) then        
+	-- only clock out bottom 15 bits of data. 
+        -- (replace fixed width with a mask at some stage ?)
+	trig_shift_reg <=  "00000000000000000" & trigger_counter_i(14 downto 0);
+        serial_trig_data <= '0';
+      end if;
+
+    end if;
+    
+  end process trig_data_driver;
+
+
+  -- purpose: Determine the next state
+  -- type   : combinational
+  -- inputs : state,Dut_Busy_r2, trigger_i
+  state_logic: process (state,  trigger_i ,  enable_dut_veto_i , dut_clk_r2, dut_busy_r2 )
+  begin  -- process state_logic
+    case state is
+	 
+      when IDLE =>
+        if ( trigger_i = '1') then  -- respond to trigger going high
+          next_state <= WAIT_FOR_BUSY_HIGH;  -- wait for DUT to respond to busy
+
+        elsif ( (dut_clk_r2 = '1') and (enable_dut_veto_i = '1') ) then      -- If DUT asserts DUT_CLK_I then veto triggers
+          next_state <= DUT_INITIATED_VETO;          
+
+        else          
+          next_state <= IDLE;
+        end if;
+
+      when WAIT_FOR_BUSY_HIGH =>
+        if (DUT_Busy_r2 = '1') then
+          next_state <= TRIGGER_DEGLITCH_DELAY1;
+        else
+          next_state <= WAIT_FOR_BUSY_HIGH;
+        end if;
+
+        -- put in a pause to supress glitch in output trigger
+        -- this is an inelegant (to say the least ) way of doing it.
+      when TRIGGER_DEGLITCH_DELAY1 =>
+          next_state <= TRIGGER_DEGLITCH_DELAY2;
+
+      -- delay for two clock cycles.
+      when TRIGGER_DEGLITCH_DELAY2 =>
+        next_state <= WAIT_FOR_BUSY_LOW;
+
+
+
+      when WAIT_FOR_BUSY_LOW =>
+        if (DUT_Busy_r2 = '1')  then
+          next_state <= WAIT_FOR_BUSY_LOW;
+        else
+          next_state <= IDLE;
+        end if;        
+
+      when DUT_INITIATED_VETO =>
+        if (( dut_clk_r2 = '0' ) or ( enable_dut_veto_i = '0')) then
+          next_state <= IDLE;
+        else
+          next_state <= DUT_INITIATED_VETO;
+        end if;
+        
+    end case;
+  end process state_logic;
+
+  -- determine clock select and trigger_mux from FSM state
+
+  
+  -- purpose: Determines the state of the dut_trigger_o output based on the state of the FSM
+  -- type   : combinational
+  -- inputs : state
+  -- outputs: dut_trigger_o
+  output_logic: process (state,serial_trig_data)
+  begin  -- process output_logic
+    if ( state = IDLE ) then
+      -- waiting for external trigger to arrive...
+      dut_trigger_o <= '0';
+    elsif ((state = WAIT_FOR_BUSY_HIGH) or ( state=TRIGGER_DEGLITCH_DELAY1) or (state=TRIGGER_DEGLITCH_DELAY2) ) then
+      -- wait until the BUSY line goes high, then continue to hold TRIGGER high for two clock cycles.
+      dut_trigger_o <= '1';
+    elsif (state = WAIT_FOR_BUSY_LOW) then
+      -- if BUSY is high then connect TRIGGER to serial trigger number register.
+      dut_trigger_o <= serial_trig_data;
+    else
+      dut_trigger_o <= '0';
+    end if;
+  end process output_logic;
+
+    -- purpose: Register that holds the current state of the FSM
+  -- type   : combinational
+  -- inputs : system_clk_i , rst_i
+  -- outputs: state
+  state_register: process (system_clk_i , rst_i)
+  begin  -- process state_register
+    if (rst_i = '1') then
+      state <= IDLE;
+    elsif rising_edge(system_clk_i) then
+      state <= next_state;
+    end if;
+  end process state_register;
+
+
+  -- purpose: sets the value of clock_select based on FSM state
+  -- type   : combinational
+  -- inputs : state
+  -- outputs: clock_select , trigger_muxsel , fsm_state
+  set_busy: process (system_clk_i , state)
+  begin  -- process set_muxsel
+    if rising_edge(system_clk_i) then
+          if (state = IDLE) then
+            busy_o <= '0';
+          else
+            busy_o <= '1';
+          end if;
+    end if;
+ end process set_busy;
+  
+  -- purpose: Sets the fsm_state_value_o vector to a number representing the current state
+  -- type   : combinational
+  -- inputs : system_clk_i , state
+  -- outputs: fsm_state_value_o
+  store_state: process (system_clk_i , state)
+  begin  -- process store_state
+    case state is
+      when IDLE =>
+        fsm_state_value_o <= "0000";
+      when WAIT_FOR_BUSY_HIGH =>
+        fsm_state_value_o <= "0001";
+      when TRIGGER_DEGLITCH_DELAY1 =>
+        fsm_state_value_o <= "0010";
+      when TRIGGER_DEGLITCH_DELAY2 =>
+        fsm_state_value_o <= "0011";
+      when WAIT_FOR_BUSY_LOW =>
+        fsm_state_value_o <= "0100";
+      when DUT_INITIATED_VETO =>
+        fsm_state_value_o <= "0101";
+      when others =>
+        fsm_state_value_o <= "1111";
+    end case;
+  end process store_state;
+
+
+
+  end rtl;
+
diff --git a/legacy/TLU_v1c/common/DUTInterfaces_rtl.vhd b/legacy/TLU_v1c/common/DUTInterfaces_rtl.vhd
new file mode 100644
index 00000000..a5e89dae
--- /dev/null
+++ b/legacy/TLU_v1c/common/DUTInterfaces_rtl.vhd
@@ -0,0 +1,353 @@
+--=============================================================================
+--! @file DUTInterfaces_rtl.vhd
+--=============================================================================
+--
+-------------------------------------------------------------------------------
+-- --
+-- University of Bristol, High Energy Physics Group.
+-- --
+------------------------------------------------------------------------------- --
+-- VHDL Architecture fmc_mTLU_lib.DUTInterfaces.rtl
+--
+--------------------------------------------------------------------------------
+-- 
+-- Created using using Mentor Graphics HDL Designer(TM) 2010.3 (Build 21)
+--
+-- hds interface_start
+LIBRARY ieee;
+USE ieee.std_logic_1164.all;
+USE ieee.numeric_std.all;
+
+USE work.ipbus.all;
+use work.ipbus_reg_types.all;
+
+library unisim;
+use unisim.VComponents.all;
+
+--! @brief Interfaces to Device Under Test (DUT) connectors.
+--!
+--! @author David Cussans , David.Cussans@bristol.ac.uk
+--!
+--! @date 15:09:50 11/09/12
+--!
+--! @version v0.1
+--!
+--! @details
+--! \n\n IPBUS Address map:
+--! \n (Decodes 4 bits)
+--! \li 0x00000000 - DUT mask(write). 1 = active , 0 = inactive. Inactive DUT don't contribute to BUSY. One bit per DUT XXXXXXXXXXXXXXXXXXXXXXBA9876543210
+--! \li 0x00000001 - Ignore DUT busy. 1 = ignore BUSY from this connector
+--! \li 0x00000002 - Ignore shutter veto. 0 = raising shutter vetos triggers.
+--! \li 0x00000003 - DUT interface mode, two bits per DUT. Up to 12 inputs  XXXXXXXXBBAA99887766554433221100 mode: 0 = EUDET mode , 1 = synchronous/AIDA ( LHC / Timepix ) , 2,3=reserved
+--! \li 0x00000004 - DUT mode modifier: XXXXXXXXBBAA99887766554433221100 in EUDET mode: 0 = standard trigger/busy mode, 1 = raising BUSY outside handshake vetoes triggers
+--! \li 0x00000008 - DUT mask ( read )
+--! \li 0x0000000D - EUDET interface FSM status. Packed 4 bits per i/face ( read )
+--!
+--!
+--! <b>Modified by:</b>\n
+--! -----------------------------------------------------------------------------
+--! \n\n<b>Last changes:</b>\n
+-------------------------------------------------------------------------------
+-- todo  Indicate if the DUT works under AIDA/EUDET style
+--
+ENTITY DUTInterfaces IS
+   GENERIC( 
+      g_NUM_DUTS    : positive := 3;
+      g_IPBUS_WIDTH : positive := 32
+   );
+   PORT( 
+      clk_4x_logic_i          : IN     std_logic;
+      strobe_4x_logic_i       : IN     std_logic;                                    --! goes high every 4th clock cycle
+      trigger_counter_i       : IN     std_logic_vector (g_IPBUS_WIDTH-1 DOWNTO 0);  --! Number of trigger events since last reset
+      trigger_i               : IN     std_logic;                                    --! goes high when trigger logic issues a trigger
+      reset_or_clk_to_dut_i   : IN     std_logic;                                    --! Synchronization signal. Passed to DUT pins
+      shutter_to_dut_i        : IN     std_logic;                                    --! Goes high to indicate data-taking active. DUTs report busy unless ignoreShutterVeto IPBus flag is set high
+      -- IPBus signals.
+      ipbus_clk_i             : IN     std_logic;
+      ipbus_i                 : IN     ipb_wbus;                                     --! Signals from IPBus core to slave
+      ipbus_reset_i           : IN     std_logic;
+      ipbus_o                 : OUT    ipb_rbus;                                     --! signals from slave to IPBus core
+      -- Signals to/from DUT
+      busy_from_dut       : IN     std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);     --! BUSY input from DUTs (single ended)
+      busy_to_dut       : OUT     std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);     --! BUSY input to DUTs (single ended)
+      clk_from_dut  : IN std_logic_vector(g_NUM_DUTS-1 DOWNTO 0); --new signal for TLU, replace differential I/O
+      clk_to_dut : OUT std_logic_vector(g_NUM_DUTS-1 DOWNTO 0); --new signal for TLU, replace differential I/O
+      trigger_to_dut : OUT    std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);     --! Trigger output
+      
+      --clk_to_dut_n_io         : INOUT  std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);     --! clocks trigger data when in EUDET mode
+      --clk_to_dut_p_io         : INOUT  std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);     --! clocks trigger data when in EUDET mode
+      --reset_or_clk_to_dut_n_o : OUT    std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);     --! Either reset line or trigger
+      --reset_or_clk_to_dut_p_o : OUT    std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);     --! Either reset line or trigger
+      reset_to_dut: OUT    std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);     --! Replaces reset_or_clk_to_dut
+      --trigger_to_dut_n_o      : OUT    std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);     --! Trigger output
+      --trigger_to_dut_p_o      : OUT    std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);     --! Trigger output
+      --shutter_to_dut_n_o      : OUT    std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);     --! Shutter output. Output 0 (RJ45) has no shutter signal
+      --shutter_to_dut_p_o      : OUT    std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);     --! Shutter output
+      shutter_to_dut      : OUT    std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);     --! Shutter output
+      veto_o                  : OUT    std_logic                                     --! goes high when one or more DUT are busy or vetoed by shutter
+   );
+
+-- Declarations
+
+END ENTITY DUTInterfaces ;
+-- hds interface_end
+
+--
+ARCHITECTURE rtl OF DUTInterfaces IS
+
+  signal s_intermediate_busy_or : std_logic_vector(g_NUM_DUTS downto 0);  -- OR tree
+
+
+  signal s_clk_to_DUT , s_busy_from_dut , s_dut_veto , s_reset_or_clk_to_dut , s_trigger_to_dut , s_shutter_to_dut : std_logic_vector(g_NUM_DUTS-1 downto 0) := (others => '0');
+  signal s_clk_from_dut_eudet , s_busy_from_dut_eudet , s_dut_veto_eudet , s_reset_or_clk_to_dut_eudet , s_trigger_to_dut_eudet , s_shutter_to_dut_eudet : std_logic_vector(g_NUM_DUTS-1 downto 0) := (others => '0');
+  signal s_clk_to_DUT_AIDA , s_busy_from_dut_aida , s_dut_veto_aida , s_reset_or_clk_to_dut_aida , s_trigger_to_dut_aida , s_shutter_to_dut_aida : std_logic_vector(g_NUM_DUTS-1 downto 0) := (others => '0');
+  signal s_DUT_mask : std_logic_vector(g_NUM_DUTS-1 downto 0) := (others => '0');   	--! Mask for the DUTs used. 1 = active
+  signal s_dut_clk_is_output : std_logic_vector(g_NUM_DUTS-1 downto 0) := (others => '1');  --! Set low to enable transmission of clock from TLU to DUT
+
+  constant c_NUM_EUDET_FSM_BITS : positive := 4;
+  signal s_dut_fsm_status_eudet : std_logic_vector((c_NUM_EUDET_FSM_BITS*g_NUM_DUTS)-1 downto 0) ; --! Stores status from EUDET interface FSM. Can only support up to 32/4 = 8 DUT interfaces, not 12...
+
+  signal s_DUT_ignore_busy : std_logic_vector(g_NUM_DUTS-1 downto 0) := (others => '0');  --! set bit to 1 for BUSY to be ignored.
+  signal s_DUT_interface_mode : std_logic_vector((2*g_NUM_DUTS)-1 downto 0) := (others => '1'); --! sets AIDA/EUDET/whatever interface.
+  signal s_DUT_aida_eudet_mode : std_logic_vector(g_NUM_DUTS-1 downto 0) := (others => '1');  --! set bit to 1 for AIDA mode, 0 for EUDET
+  signal s_dut_enable_veto_eudet : std_logic_vector(g_NUM_DUTS-1 downto 0) := (others => '1'); --! set bit high to allow asynchronous veto using DUT_CLK when in EUDET mode
+
+  signal s_DUT_interface_mode_modifier : std_logic_vector((2*g_NUM_DUTS)-1 downto 0) := (others => '1');  
+  signal s_IgnoreShutterVeto : std_logic := '0';  -- --! When high the shutter won't veto triggers when low.
+
+  
+  -- Signal for IPBus
+  constant c_N_CTRL : positive := 8;
+  constant c_N_STAT : positive := 8;
+  signal s_status_to_ipbus, s_sync_status_to_ipbus : ipb_reg_v(c_N_STAT-1 downto 0);
+  signal s_control_from_ipbus,s_sync_control_from_ipbus : ipb_reg_v(c_N_CTRL-1 downto 0);
+                                                               
+BEGIN
+
+  
+  -----------------------------------------------------------------------------
+  -- IPBus interface 
+  -----------------------------------------------------------------------------
+  ipbus_registers: entity work.ipbus_ctrlreg_v
+    generic map(
+      N_CTRL => c_N_CTRL,
+      N_STAT => c_N_STAT
+      )
+    port map(
+      clk => ipbus_clk_i,
+      reset=> '0',--ipbus_reset_i ,
+      ipbus_in=>  ipbus_i,
+      ipbus_out=> ipbus_o,
+      d=>  s_sync_status_to_ipbus,
+      q=>  s_control_from_ipbus,
+      stb=>  open
+      );
+
+  -- Synchronize registers from logic clock to ipbus.
+    sync_status: entity work.synchronizeRegisters
+    generic map (
+      g_NUM_REGISTERS => c_N_STAT )
+    port map (
+      clk_input_i => clk_4x_logic_i,
+      data_i      =>  s_status_to_ipbus,
+      data_o      => s_sync_status_to_ipbus,
+      clk_output_i => ipbus_clk_i);
+
+    -- Synchronize registers from logic clock to ipbus.
+    sync_ctrl: entity work.synchronizeRegisters
+    generic map (
+      g_NUM_REGISTERS => c_N_CTRL )
+    port map (
+      clk_input_i => ipbus_clk_i,
+      data_i      =>  s_control_from_ipbus,
+      data_o      => s_sync_control_from_ipbus,
+      clk_output_i => clk_4x_logic_i);
+
+  -- Map the control registers
+  s_DUT_mask                    <= s_sync_control_from_ipbus(0)(g_NUM_DUTS-1 downto 0);
+  s_DUT_ignore_busy             <= s_sync_control_from_ipbus(1)(g_NUM_DUTS-1 downto 0);
+  s_IgnoreShutterVeto           <= s_sync_control_from_ipbus(2)(0);
+  s_DUT_interface_mode          <= s_sync_control_from_ipbus(3)((2*g_NUM_DUTS)-1 downto 0);
+  s_DUT_interface_mode_modifier <= s_sync_control_from_ipbus(4)((2*g_NUM_DUTS)-1 downto 0);
+  
+    -- Map the status registers
+  s_status_to_ipbus(0) <= std_logic_vector(to_unsigned(0,g_IPBUS_WIDTH-g_NUM_DUTS)) & s_DUT_mask;
+  s_status_to_ipbus(1) <= std_logic_vector(to_unsigned(0,g_IPBUS_WIDTH-g_NUM_DUTS)) & s_DUT_ignore_busy;
+  s_status_to_ipbus(2) <= std_logic_vector(to_unsigned(0,g_IPBUS_WIDTH-1)) & s_IgnoreShutterVeto;
+  s_status_to_ipbus(3) <= std_logic_vector(to_unsigned(0,g_IPBUS_WIDTH-(2*g_NUM_DUTS))) & s_DUT_interface_mode;
+  s_status_to_ipbus(4) <= std_logic_vector(to_unsigned(0,g_IPBUS_WIDTH-(2*g_NUM_DUTS))) & s_DUT_interface_mode_modifier;
+  s_status_to_ipbus(5) <= std_logic_vector(to_unsigned(0,g_IPBUS_WIDTH-( c_NUM_EUDET_FSM_BITS*g_NUM_DUTS))) & s_dut_fsm_status_eudet ;
+  
+  
+  ------------------------------------------------------------------------------
+  -- Instantiate BUFIODS  
+  ------------------------------------------------------------------------------
+  
+  -- Loop through *all* DUTs ( including RJ45 )
+  dut_clk_busy_trig_rst_io: for dut in 0 to g_NUM_DUTS-1 generate
+
+------------------------------------------------------------------        
+--    clk_IOBUFDS_inst : IOBUFDS
+--      generic map (
+--        IOSTANDARD => "BLVDS_25")
+--      port map (
+--        O => s_clk_from_dut_eudet(dut), --! Clock *from* DUT
+--        IO => clk_to_dut_p_io(dut),  --! Diff_p dut clock I/O (connect directly to top-level port)
+--        IOB => clk_to_dut_n_io(dut), --! Diff_n dut clock I/O (connect directly to top-level port)
+--        I => s_clk_to_dut_aida(dut), --! Clock generated by TLU to DUT
+--        T => s_dut_clk_is_output(dut) --! Set *low* to enable transmission of clock from TLU to DUT
+--        );
+    
+        clk_to_dut(dut) <= s_clk_to_dut_aida(dut); -- do we need to disable this using T? No, the TLU now has enable signals.
+        s_clk_from_dut_eudet(dut) <= clk_from_dut(dut);
+        
+------------------------------------------------------------------        
+        -- Now the signals are single ended: remove IBUFDS and use IBUF
+--    busy_IBUFDS_inst : IBUFDS
+--      generic map (
+--        DIFF_TERM => TRUE, -- Differential Termination 
+--        IBUF_LOW_PWR => TRUE, -- Low power (TRUE) vs. performance (FALSE) setting for referenced I/O standards
+--        IOSTANDARD => "LVDS_25")
+--      port map (
+--        O => s_busy_from_dut(dut),  -- Buffer output
+--        I => busy_from_dut_p_i(dut),  -- Diff_p buffer input (connect directly to top-level port)
+--        IB => busy_from_dut_n_i(dut) -- Diff_n buffer input (connect directly to top-level port)
+--      );
+
+--    busy_IBUF_inst : IBUF
+--    generic map(
+--        IBUF_LOW_PWR => TRUE,
+--        IOSTANDARD => "DEFAULT"
+--    )
+--    port map(
+--        O => s_busy_from_dut(dut),
+--        I => busy_from_dut(dut)
+--    );
+    s_busy_from_dut(dut) <= busy_from_dut(dut) ;
+------------------------------------------------------------------        
+   
+--    trig_OBUFDS_inst : OBUFDS
+--      generic map (
+--        IOSTANDARD => "LVDS_25")
+--      port map (
+--        O =>  trigger_to_dut_p_o(dut),     						-- Diff_p output (connect directly to top-level port)
+--        OB => trigger_to_dut_n_o(dut),   							-- Diff_n output (connect directly to top-level port)
+--        I =>  s_trigger_to_dut(dut)     -- Buffer input 
+--      );
+
+    trigger_to_dut(dut) <= s_trigger_to_dut(dut);
+------------------------------------------------------------------        
+     
+--    clk_rst_OBUFDS_inst : OBUFDS
+--      generic map (
+--        IOSTANDARD => "LVDS_25")
+--      port map (
+--        O =>  reset_or_clk_to_dut_p_o(dut),    							-- Diff_p output (connect directly to top-level port)
+--        OB => reset_or_clk_to_dut_n_o(dut),   							-- Diff_n output (connect directly to top-level port)
+--        I =>  s_reset_or_clk_to_dut(dut) 	--s_reset_or_clk_to_dut(dut) and s_DUT_mask(dut)     -- Buffer input 
+--      );
+	
+	reset_to_dut(dut) <= s_reset_or_clk_to_dut(dut) and s_DUT_mask(dut); 
+		 
+  end generate dut_clk_busy_trig_rst_io;
+  
+  -- Loop through DUTs 
+  dut_shutter_io: for dut in 0 to g_NUM_DUTS-1 generate
+
+--    shutter_OBUFDS_inst : OBUFDS
+--      generic map (
+--        IOSTANDARD => "LVDS_25")
+--      port map (
+--        O =>  shutter_to_dut_p_o(dut), -- Diff_p output (connect directly to top-level port)
+--        OB => shutter_to_dut_n_o(dut), -- Diff_n output (connect directly to top-level port)
+--        I =>  s_shutter_to_dut(dut) 	
+--        );
+        
+    shutter_to_dut(dut) <= s_shutter_to_dut(dut) ;	  
+  end generate dut_shutter_io;
+
+
+  ------------------------------------------------------------------------------
+  -- Instantiate interfaces to DUTs  
+  ------------------------------------------------------------------------------
+  dut_interfaces: for dut in 0 to g_NUM_DUTS-1 generate
+
+    --! AIDA style interface
+    aida_dut_interface: ENTITY work.DUTInterface_AIDA
+      generic map (
+        g_IPBUS_WIDTH => g_IPBUS_WIDTH
+        )
+      PORT map ( 
+        clk_4x_logic_i          => clk_4x_logic_i ,
+        strobe_4x_logic_i       => strobe_4x_logic_i ,
+        trigger_counter_i       => trigger_counter_i , 
+        trigger_i               => trigger_i , 
+        reset_or_clk_to_dut_i   => reset_or_clk_to_dut_i,
+        shutter_to_dut_i        => shutter_to_dut_i ,
+        ignore_shutter_veto_i   => s_IgnoreShutterVeto ,
+        ignore_dut_busy_i       => s_DUT_ignore_busy(dut),
+        dut_mask_i              => s_DUT_mask(dut),
+        busy_o                  => s_dut_veto_aida(dut),
+      
+        -- Signals to/from DUT
+        dut_busy_i              => s_busy_from_dut(dut),
+        dut_clk_o               => s_clk_to_dut_aida(dut),
+        dut_reset_or_clk_o      => s_reset_or_clk_to_dut_aida(dut), 
+        dut_shutter_o           => s_shutter_to_dut_aida(dut),
+        dut_trigger_o           => s_trigger_to_dut_aida(dut)
+
+        );
+
+    --! EUDET style interface
+    eudet_dut_interface: entity work.DUTInterface_EUDET
+      GENERIC map ( 
+        g_TRIGGER_DATA_WIDTH => g_IPBUS_WIDTH
+        )
+      port map (
+        rst_i                 => ipbus_reset_i, 
+        busy_o                => s_dut_veto_eudet(dut),
+        fsm_state_value_o     => s_dut_fsm_status_eudet( (c_NUM_EUDET_FSM_BITS*(dut+1)-1) downto c_NUM_EUDET_FSM_BITS*(dut) ),
+        trigger_i             => trigger_i , 
+        trigger_counter_i     => trigger_counter_i , 
+        system_clk_i          => clk_4x_logic_i ,
+        reset_or_clk_to_dut_i => reset_or_clk_to_dut_i,
+        shutter_to_dut_i      => shutter_to_dut_i ,
+        ignore_shutter_veto_i => s_IgnoreShutterVeto ,
+        enable_dut_veto_i     => s_dut_enable_veto_eudet(dut),
+        -- Connections to DUT:
+        dut_clk_i             => s_clk_from_dut_eudet(dut),
+        dut_busy_i            => s_busy_from_dut(dut),
+        dut_shutter_o         => s_shutter_to_dut_eudet(dut),
+        dut_trigger_o         => s_trigger_to_dut_eudet(dut)
+        );
+
+    s_DUT_aida_eudet_mode(dut) <= s_DUT_interface_mode(2*dut);
+    s_dut_enable_veto_eudet(dut) <= s_DUT_interface_mode_modifier(2*dut);
+    
+    -- Produce "OR" of veto/busy signals from DUTs
+    s_intermediate_busy_or(dut+1) <= s_intermediate_busy_or(dut) or s_dut_veto(dut);
+    
+  end generate dut_interfaces;
+
+  s_dut_clk_is_output <= not s_DUT_aida_eudet_mode; -- at the moment can hardwire clk_is_output to mode_is_aida
+                                               
+  s_intermediate_busy_or(0) <= '0';
+  veto_o <=  s_intermediate_busy_or(g_NUM_DUTS);
+
+  -- purpose: Multiplexes signals between EUDET and AIDA interfaces
+  -- type   : combinational
+  -- inputs : clk_4x_logic_i 
+  -- outputs: s_trigger_to_dut , s_reset_or_clk_to_dut , s_shutter_to_dut , s_dut_veto
+  p_signal_mux: process (clk_4x_logic_i ) is
+  begin  -- process p_signal_mux
+    if rising_edge(clk_4x_logic_i) then
+      s_trigger_to_dut <= ( s_trigger_to_dut_eudet and (not s_DUT_aida_eudet_mode)) or ( s_trigger_to_dut_aida and  s_DUT_aida_eudet_mode) ;
+      s_dut_veto <= ( s_dut_veto_eudet and (not s_DUT_aida_eudet_mode)) or ( s_dut_veto_aida and  s_DUT_aida_eudet_mode) ;
+      s_shutter_to_dut <= ( s_shutter_to_dut_eudet and (not s_DUT_aida_eudet_mode)) or ( s_shutter_to_dut_aida and  s_DUT_aida_eudet_mode) ; 
+      s_reset_or_clk_to_dut <= ( s_reset_or_clk_to_dut_aida and  s_DUT_aida_eudet_mode) ; --! reset_or_clk line stays low if in EUDET mode
+      
+    end if;
+  end process p_signal_mux;
+  
+END ARCHITECTURE rtl;
+
diff --git a/legacy/TLU_v1c/common/DUTInterfaces_rtl_BKP.vhd b/legacy/TLU_v1c/common/DUTInterfaces_rtl_BKP.vhd
new file mode 100644
index 00000000..6a19837a
--- /dev/null
+++ b/legacy/TLU_v1c/common/DUTInterfaces_rtl_BKP.vhd
@@ -0,0 +1,328 @@
+--=============================================================================
+--! @file DUTInterfaces_rtl.vhd
+--=============================================================================
+--
+-------------------------------------------------------------------------------
+-- --
+-- University of Bristol, High Energy Physics Group.
+-- --
+------------------------------------------------------------------------------- --
+-- VHDL Architecture fmc_mTLU_lib.DUTInterfaces.rtl
+--
+--------------------------------------------------------------------------------
+-- 
+-- Created using using Mentor Graphics HDL Designer(TM) 2010.3 (Build 21)
+--
+-- hds interface_start
+LIBRARY ieee;
+USE ieee.std_logic_1164.all;
+USE ieee.numeric_std.all;
+
+USE work.ipbus.all;
+use work.ipbus_reg_types.all;
+
+library unisim;
+use unisim.VComponents.all;
+
+--! @brief Interfaces to Device Under Test (DUT) connectors.
+--!
+--! @author David Cussans , David.Cussans@bristol.ac.uk
+--!
+--! @date 15:09:50 11/09/12
+--!
+--! @version v0.1
+--!
+--! @details
+--! \n\n IPBUS Address map:
+--! \n (Decodes 4 bits)
+--! \li 0x00000000 - DUT mask(write). 1 = active , 0 = inactive. Inactive DUT don't contribute to BUSY. One bit per DUT XXXXXXXXXXXXXXXXXXXXXXBA9876543210
+--! \li 0x00000001 - Ignore DUT busy. 1 = ignore BUSY from this connector
+--! \li 0x00000002 - Ignore shutter veto. 0 = raising shutter vetos triggers.
+--! \li 0x00000003 - DUT interface mode, two bits per DUT. Up to 12 inputs  XXXXXXXXBBAA99887766554433221100 mode: 0 = EUDET mode , 1 = synchronous/AIDA ( LHC / Timepix ) , 2,3=reserved
+--! \li 0x00000004 - DUT mode modifier: XXXXXXXXBBAA99887766554433221100 in EUDET mode: 0 = standard trigger/busy mode, 1 = raising BUSY outside handshake vetoes triggers
+--! \li 0x00000008 - DUT mask ( read )
+--! \li 0x0000000D - EUDET interface FSM status. Packed 4 bits per i/face ( read )
+--!
+--! DUT(0) = RJ45 ( J3 )\n
+--! DUT(1) = HDMI ( J1 ) , furthest from RJ45\n
+--! DUT(2) = HDMI ( J2) , closest to RJ45\n
+--!
+--! <b>Modified by:</b>\n
+--! -----------------------------------------------------------------------------
+--! \n\n<b>Last changes:</b>\n
+-------------------------------------------------------------------------------
+-- todo  Indicate if the DUT works under AIDA/EUDET style
+--
+ENTITY DUTInterfaces IS
+   GENERIC( 
+      g_NUM_DUTS    : positive := 3;
+      g_IPBUS_WIDTH : positive := 32
+   );
+   PORT( 
+      clk_4x_logic_i          : IN     std_logic;
+      strobe_4x_logic_i       : IN     std_logic;                                    --! goes high every 4th clock cycle
+      trigger_counter_i       : IN     std_logic_vector (g_IPBUS_WIDTH-1 DOWNTO 0);  --! Number of trigger events since last reset
+      trigger_i               : IN     std_logic;                                    --! goes high when trigger logic issues a trigger
+      reset_or_clk_to_dut_i   : IN     std_logic;                                    --! Synchronization signal. Passed to DUT pins
+      shutter_to_dut_i        : IN     std_logic;                                    --! Goes high to indicate data-taking active. DUTs report busy unless ignoreShutterVeto IPBus flag is set high
+      -- IPBus signals.
+      ipbus_clk_i             : IN     std_logic;
+      ipbus_i                 : IN     ipb_wbus;                                     --! Signals from IPBus core to slave
+      ipbus_reset_i           : IN     std_logic;
+      ipbus_o                 : OUT    ipb_rbus;                                     --! signals from slave to IPBus core
+      -- Signals to/from DUT
+      busy_from_dut_n_i       : IN     std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);     --! BUSY input from DUTs
+      busy_from_dut_p_i       : IN     std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);     --! BUSY input from DUTs
+      clk_to_dut_n_io         : INOUT  std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);     --! clocks trigger data when in EUDET mode
+      clk_to_dut_p_io         : INOUT  std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);     --! clocks trigger data when in EUDET mode
+      reset_or_clk_to_dut_n_o : OUT    std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);     --! Either reset line or trigger
+      reset_or_clk_to_dut_p_o : OUT    std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);     --! Either reset line or trigger
+      trigger_to_dut_n_o      : OUT    std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);     --! Trigger output
+      trigger_to_dut_p_o      : OUT    std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);     --! Trigger output
+      shutter_to_dut_n_o      : OUT    std_logic_vector (g_NUM_DUTS-1 DOWNTO 1);     --! Shutter output. Output 0 (RJ45) has no shutter signal
+      shutter_to_dut_p_o      : OUT    std_logic_vector (g_NUM_DUTS-1 DOWNTO 1);     --! Shutter output
+      veto_o                  : OUT    std_logic                                     --! goes high when one or more DUT are busy or vetoed by shutter
+   );
+
+-- Declarations
+
+END ENTITY DUTInterfaces ;
+-- hds interface_end
+
+--
+ARCHITECTURE rtl OF DUTInterfaces IS
+
+  signal s_intermediate_busy_or : std_logic_vector(g_NUM_DUTS downto 0);  -- OR tree
+
+
+  signal s_clk_to_DUT , s_busy_from_dut , s_dut_veto , s_reset_or_clk_to_dut , s_trigger_to_dut , s_shutter_to_dut : std_logic_vector(g_NUM_DUTS-1 downto 0) := (others => '0');
+  signal s_clk_from_dut_eudet , s_busy_from_dut_eudet , s_dut_veto_eudet , s_reset_or_clk_to_dut_eudet , s_trigger_to_dut_eudet , s_shutter_to_dut_eudet : std_logic_vector(g_NUM_DUTS-1 downto 0) := (others => '0');
+  signal s_clk_to_DUT_AIDA , s_busy_from_dut_aida , s_dut_veto_aida , s_reset_or_clk_to_dut_aida , s_trigger_to_dut_aida , s_shutter_to_dut_aida : std_logic_vector(g_NUM_DUTS-1 downto 0) := (others => '0');
+  signal s_DUT_mask : std_logic_vector(g_NUM_DUTS-1 downto 0) := (others => '0');   	--! Mask for the DUTs used. 1 = active
+  signal s_dut_clk_is_output : std_logic_vector(g_NUM_DUTS-1 downto 0) := (others => '1');  --! Set low to enable transmission of clock from TLU to DUT
+
+  constant c_NUM_EUDET_FSM_BITS : positive := 4;
+  signal s_dut_fsm_status_eudet : std_logic_vector((c_NUM_EUDET_FSM_BITS*g_NUM_DUTS)-1 downto 0) ; --! Stores status from EUDET interface FSM. Can only support up to 32/4 = 8 DUT interfaces, not 12...
+
+  signal s_DUT_ignore_busy : std_logic_vector(g_NUM_DUTS-1 downto 0) := (others => '0');  --! set bit to 1 for BUSY to be ignored.
+  signal s_DUT_interface_mode : std_logic_vector((2*g_NUM_DUTS)-1 downto 0) := (others => '1'); --! sets AIDA/EUDET/whatever interface.
+  signal s_DUT_aida_eudet_mode : std_logic_vector(g_NUM_DUTS-1 downto 0) := (others => '1');  --! set bit to 1 for AIDA mode, 0 for EUDET
+  signal s_dut_enable_veto_eudet : std_logic_vector(g_NUM_DUTS-1 downto 0) := (others => '1'); --! set bit high to allow asynchronous veto using DUT_CLK when in EUDET mode
+
+  signal s_DUT_interface_mode_modifier : std_logic_vector((2*g_NUM_DUTS)-1 downto 0) := (others => '1');  
+  signal s_IgnoreShutterVeto : std_logic := '0';  -- --! When high the shutter won't veto triggers when low.
+
+  
+  -- Signal for IPBus
+  constant c_N_CTRL : positive := 8;
+  constant c_N_STAT : positive := 8;
+  signal s_status_to_ipbus, s_sync_status_to_ipbus : ipb_reg_v(c_N_STAT-1 downto 0);
+  signal s_control_from_ipbus,s_sync_control_from_ipbus : ipb_reg_v(c_N_CTRL-1 downto 0);
+                                                               
+BEGIN
+
+  
+  -----------------------------------------------------------------------------
+  -- IPBus interface 
+  -----------------------------------------------------------------------------
+  ipbus_registers: entity work.ipbus_ctrlreg_v
+    generic map(
+      N_CTRL => c_N_CTRL,
+      N_STAT => c_N_STAT
+      )
+    port map(
+      clk => ipbus_clk_i,
+      reset=> '0',--ipbus_reset_i ,
+      ipbus_in=>  ipbus_i,
+      ipbus_out=> ipbus_o,
+      d=>  s_sync_status_to_ipbus,
+      q=>  s_control_from_ipbus,
+      stb=>  open
+      );
+
+  -- Synchronize registers from logic clock to ipbus.
+    sync_status: entity work.synchronizeRegisters
+    generic map (
+      g_NUM_REGISTERS => c_N_STAT )
+    port map (
+      clk_input_i => clk_4x_logic_i,
+      data_i      =>  s_status_to_ipbus,
+      data_o      => s_sync_status_to_ipbus,
+      clk_output_i => ipbus_clk_i);
+
+    -- Synchronize registers from logic clock to ipbus.
+    sync_ctrl: entity work.synchronizeRegisters
+    generic map (
+      g_NUM_REGISTERS => c_N_CTRL )
+    port map (
+      clk_input_i => ipbus_clk_i,
+      data_i      =>  s_control_from_ipbus,
+      data_o      => s_sync_control_from_ipbus,
+      clk_output_i => clk_4x_logic_i);
+
+  -- Map the control registers
+  s_DUT_mask                    <= s_sync_control_from_ipbus(0)(g_NUM_DUTS-1 downto 0);
+  s_DUT_ignore_busy             <= s_sync_control_from_ipbus(1)(g_NUM_DUTS-1 downto 0);
+  s_IgnoreShutterVeto           <= s_sync_control_from_ipbus(2)(0);
+  s_DUT_interface_mode          <= s_sync_control_from_ipbus(3)((2*g_NUM_DUTS)-1 downto 0);
+  s_DUT_interface_mode_modifier <= s_sync_control_from_ipbus(4)((2*g_NUM_DUTS)-1 downto 0);
+  
+    -- Map the status registers
+  s_status_to_ipbus(0) <= std_logic_vector(to_unsigned(0,g_IPBUS_WIDTH-g_NUM_DUTS)) & s_DUT_mask;
+  s_status_to_ipbus(1) <= std_logic_vector(to_unsigned(0,g_IPBUS_WIDTH-g_NUM_DUTS)) & s_DUT_ignore_busy;
+  s_status_to_ipbus(2) <= std_logic_vector(to_unsigned(0,g_IPBUS_WIDTH-1)) & s_IgnoreShutterVeto;
+  s_status_to_ipbus(3) <= std_logic_vector(to_unsigned(0,g_IPBUS_WIDTH-(2*g_NUM_DUTS))) & s_DUT_interface_mode;
+  s_status_to_ipbus(4) <= std_logic_vector(to_unsigned(0,g_IPBUS_WIDTH-(2*g_NUM_DUTS))) & s_DUT_interface_mode_modifier;
+  s_status_to_ipbus(5) <= std_logic_vector(to_unsigned(0,g_IPBUS_WIDTH-( c_NUM_EUDET_FSM_BITS*g_NUM_DUTS))) & s_dut_fsm_status_eudet ;
+  
+  
+  ------------------------------------------------------------------------------
+  -- Instantiate BUFIODS  
+  ------------------------------------------------------------------------------
+  
+  -- Loop through *all* DUTs ( including RJ45 )
+  dut_clk_busy_trig_rst_io: for dut in 0 to g_NUM_DUTS-1 generate
+
+
+    clk_IOBUFDS_inst : IOBUFDS
+      generic map (
+        IOSTANDARD => "BLVDS_25")
+      port map (
+        O => s_clk_from_dut_eudet(dut), --! Clock *from* DUT
+        IO => clk_to_dut_p_io(dut),  --! Diff_p dut clock I/O (connect directly to top-level port)
+        IOB => clk_to_dut_n_io(dut), --! Diff_n dut clock I/O (connect directly to top-level port)
+        I => s_clk_to_dut_aida(dut), --! Clock generated by TLU to DUT
+        T => s_dut_clk_is_output(dut) --! Set *low* to enable transmission of clock from TLU to DUT
+        );
+    
+    busy_IBUFDS_inst : IBUFDS
+      generic map (
+        DIFF_TERM => TRUE, -- Differential Termination 
+        IBUF_LOW_PWR => TRUE, -- Low power (TRUE) vs. performance (FALSE) setting for referenced I/O standards
+        IOSTANDARD => "LVDS_25")
+      port map (
+        O => s_busy_from_dut(dut),  -- Buffer output
+        I => busy_from_dut_p_i(dut),  -- Diff_p buffer input (connect directly to top-level port)
+        IB => busy_from_dut_n_i(dut) -- Diff_n buffer input (connect directly to top-level port)
+      );
+		
+   
+    trig_OBUFDS_inst : OBUFDS
+      generic map (
+        IOSTANDARD => "LVDS_25")
+      port map (
+        O =>  trigger_to_dut_p_o(dut),     						-- Diff_p output (connect directly to top-level port)
+        OB => trigger_to_dut_n_o(dut),   							-- Diff_n output (connect directly to top-level port)
+        I =>  s_trigger_to_dut(dut)     -- Buffer input 
+      );
+     
+    clk_rst_OBUFDS_inst : OBUFDS
+      generic map (
+        IOSTANDARD => "LVDS_25")
+      port map (
+        O =>  reset_or_clk_to_dut_p_o(dut),    							-- Diff_p output (connect directly to top-level port)
+        OB => reset_or_clk_to_dut_n_o(dut),   							-- Diff_n output (connect directly to top-level port)
+        I =>  s_reset_or_clk_to_dut(dut) 	--s_reset_or_clk_to_dut(dut) and s_DUT_mask(dut)     -- Buffer input 
+      );
+		 
+  end generate dut_clk_busy_trig_rst_io;
+  
+  -- Loop through DUTs except RJ45  ( which (output 0) doesn't have a shutter
+  -- signal. )
+  dut_shutter_io: for dut in 1 to g_NUM_DUTS-1 generate
+
+    shutter_OBUFDS_inst : OBUFDS
+      generic map (
+        IOSTANDARD => "LVDS_25")
+      port map (
+        O =>  shutter_to_dut_p_o(dut), -- Diff_p output (connect directly to top-level port)
+        OB => shutter_to_dut_n_o(dut), -- Diff_n output (connect directly to top-level port)
+        I =>  s_shutter_to_dut(dut) 	
+        );
+  end generate dut_shutter_io;
+
+
+  ------------------------------------------------------------------------------
+  -- Instantiate interfaces to DUTs  
+  ------------------------------------------------------------------------------
+  dut_interfaces: for dut in 0 to g_NUM_DUTS-1 generate
+
+    --! AIDA style interface
+    aida_dut_interface: ENTITY work.DUTInterface_AIDA
+      generic map (
+        g_IPBUS_WIDTH => g_IPBUS_WIDTH
+        )
+      PORT map ( 
+        clk_4x_logic_i          => clk_4x_logic_i ,
+        strobe_4x_logic_i       => strobe_4x_logic_i ,
+        trigger_counter_i       => trigger_counter_i , 
+        trigger_i               => trigger_i , 
+        reset_or_clk_to_dut_i   => reset_or_clk_to_dut_i,
+        shutter_to_dut_i        => shutter_to_dut_i ,
+        ignore_shutter_veto_i   => s_IgnoreShutterVeto ,
+        ignore_dut_busy_i       => s_DUT_ignore_busy(dut),
+        dut_mask_i              => s_DUT_mask(dut),
+        busy_o                  => s_dut_veto_aida(dut),
+      
+        -- Signals to/from DUT
+        dut_busy_i              => s_busy_from_dut(dut),
+        dut_clk_o               => s_clk_to_dut_aida(dut),
+        dut_reset_or_clk_o      => s_reset_or_clk_to_dut_aida(dut), 
+        dut_shutter_o           => s_shutter_to_dut_aida(dut),
+        dut_trigger_o           => s_trigger_to_dut_aida(dut)
+
+        );
+
+    --! EUDET style interface
+    eudet_dut_interface: entity work.DUTInterface_EUDET
+      GENERIC map ( 
+        g_TRIGGER_DATA_WIDTH => g_IPBUS_WIDTH
+        )
+      port map (
+        rst_i                 => ipbus_reset_i, 
+        busy_o                => s_dut_veto_eudet(dut),
+        fsm_state_value_o     => s_dut_fsm_status_eudet( (c_NUM_EUDET_FSM_BITS*(dut+1)-1) downto c_NUM_EUDET_FSM_BITS*(dut) ),
+        trigger_i             => trigger_i , 
+        trigger_counter_i     => trigger_counter_i , 
+        system_clk_i          => clk_4x_logic_i ,
+        reset_or_clk_to_dut_i => reset_or_clk_to_dut_i,
+        shutter_to_dut_i      => shutter_to_dut_i ,
+        ignore_shutter_veto_i => s_IgnoreShutterVeto ,
+        enable_dut_veto_i     => s_dut_enable_veto_eudet(dut),
+        -- Connections to DUT:
+        dut_clk_i             => s_clk_from_dut_eudet(dut),
+        dut_busy_i            => s_busy_from_dut(dut),
+        dut_shutter_o         => s_shutter_to_dut_eudet(dut),
+        dut_trigger_o         => s_trigger_to_dut_eudet(dut)
+        );
+
+    s_DUT_aida_eudet_mode(dut) <= s_DUT_interface_mode(2*dut);
+    s_dut_enable_veto_eudet(dut) <= s_DUT_interface_mode_modifier(2*dut);
+    
+    -- Produce "OR" of veto/busy signals from DUTs
+    s_intermediate_busy_or(dut+1) <= s_intermediate_busy_or(dut) or s_dut_veto(dut);
+    
+  end generate dut_interfaces;
+
+  s_dut_clk_is_output <= not s_DUT_aida_eudet_mode; -- at the moment can hardwire clk_is_output to mode_is_aida
+                                               
+  s_intermediate_busy_or(0) <= '0';
+  veto_o <=  s_intermediate_busy_or(g_NUM_DUTS);
+
+  -- purpose: Multiplexes signals between EUDET and AIDA interfaces
+  -- type   : combinational
+  -- inputs : clk_4x_logic_i 
+  -- outputs: s_trigger_to_dut , s_reset_or_clk_to_dut , s_shutter_to_dut , s_dut_veto
+  p_signal_mux: process (clk_4x_logic_i ) is
+  begin  -- process p_signal_mux
+    if rising_edge(clk_4x_logic_i) then
+      s_trigger_to_dut <= ( s_trigger_to_dut_eudet and (not s_DUT_aida_eudet_mode)) or ( s_trigger_to_dut_aida and  s_DUT_aida_eudet_mode) ;
+      s_dut_veto <= ( s_dut_veto_eudet and (not s_DUT_aida_eudet_mode)) or ( s_dut_veto_aida and  s_DUT_aida_eudet_mode) ;
+      s_shutter_to_dut <= ( s_shutter_to_dut_eudet and (not s_DUT_aida_eudet_mode)) or ( s_shutter_to_dut_aida and  s_DUT_aida_eudet_mode) ; 
+      s_reset_or_clk_to_dut <= ( s_reset_or_clk_to_dut_aida and  s_DUT_aida_eudet_mode) ; --! reset_or_clk line stays low if in EUDET mode
+      
+    end if;
+  end process p_signal_mux;
+  
+END ARCHITECTURE rtl;
+
diff --git a/legacy/TLU_v1c/common/DUTs_outputs.vhd b/legacy/TLU_v1c/common/DUTs_outputs.vhd
new file mode 100644
index 00000000..11366cba
--- /dev/null
+++ b/legacy/TLU_v1c/common/DUTs_outputs.vhd
@@ -0,0 +1,62 @@
+----------------------------------------------------------------------------------
+-- Company: 
+-- Engineer: 
+-- 
+-- Create Date: 15.02.2017 13:17:26
+-- Design Name: 
+-- Module Name: DUTs_outputs - Behavioral
+-- Project Name: 
+-- Target Devices: 
+-- Tool Versions: 
+-- Description: 
+-- 
+-- Dependencies: 
+-- 
+-- Revision:
+-- Revision 0.01 - File Created
+-- Additional Comments:
+-- 
+----------------------------------------------------------------------------------
+
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+
+-- Uncomment the following library declaration if using
+-- arithmetic functions with Signed or Unsigned values
+--use IEEE.NUMERIC_STD.ALL;
+
+-- Uncomment the following library declaration if instantiating
+-- any Xilinx leaf cells in this code.
+--library UNISIM;
+--use UNISIM.VComponents.all;
+
+entity DUTs_outputs is
+    Port ( clk_in : in STD_LOGIC;
+           d_clk_o : out STD_LOGIC_VECTOR (3 downto 0);
+           d_trg_o : out STD_LOGIC_VECTOR (3 downto 0);
+           d_busy_o : out STD_LOGIC_VECTOR (3 downto 0);
+           d_cont_o : out STD_LOGIC_VECTOR (3 downto 0);
+           d_spare_o : out STD_LOGIC_VECTOR (3 downto 0));
+end DUTs_outputs;
+
+architecture Behavioral of DUTs_outputs is
+signal toggleme : std_logic := '0'; 
+begin
+    gen_clk : process (clk_in)
+    begin  -- process gen_clk
+        
+        if rising_edge(clk_in) then   -- rising clock edge
+            toggleme <= not toggleme;
+            d_clk_o(1) <= toggleme;
+            d_clk_o(2) <= '0';
+            d_clk_o(3) <= '0';
+            d_trg_o <=  ('0' & '0' & '0' & '0');
+            d_busy_o <= ('0' & '0' & '0' & '0');
+            d_cont_o <= ('0' & '0' & '0' & '0');
+            d_spare_o <=('0' & '0' & '0' & '0');
+        end if;
+        d_clk_o(0) <= clk_in;
+    end process gen_clk;
+
+end Behavioral;
diff --git a/legacy/TLU_v1c/common/GPL_doxygen_header.vhdl b/legacy/TLU_v1c/common/GPL_doxygen_header.vhdl
new file mode 100644
index 00000000..d9fdc487
--- /dev/null
+++ b/legacy/TLU_v1c/common/GPL_doxygen_header.vhdl
@@ -0,0 +1,77 @@
+--! @file dtype_fds.vhdl
+--
+-------------------------------------------------------------------------------
+-- --
+-- (c) University of Bristol, High Energy Physics Group --
+-- --
+-------------------------------------------------------------------------------
+--
+--
+-- This file is part of IPBus.
+--
+--    IPBus is free software: you can redistribute it and/or modify
+--    it under the terms of the GNU General Public License as published by
+--    the Free Software Foundation, either version 3 of the License, or
+--    (at your option) any later version.
+--
+--    IPBus is distributed in the hope that it will be useful,
+--    but WITHOUT ANY WARRANTY; without even the implied warranty of
+--    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+--    GNU General Public License for more details.
+--
+--    You should have received a copy of the GNU General Public License
+--    along with IPBus.  If not, see <http://www.gnu.org/licenses/>.
+--
+--    IPBus is free software: you can redistribute it and/or modify
+--    it under the terms of the GNU General Public License as published by
+--    the Free Software Foundation, either version 3 of the License, or
+--    (at your option) any later version.
+--
+--    IPBus is distributed in the hope that it will be useful,
+--    but WITHOUT ANY WARRANTY; without even the implied warranty of
+--    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+--    GNU General Public License for more details.
+--
+--    You should have received a copy of the GNU General Public License
+--    along with IPBus.  If not, see <http://www.gnu.org/licenses/>.
+--
+--
+--! Standard library
+library IEEE;
+
+-- Standard logic defintions.
+use IEEE.STD_LOGIC_1164.all;
+
+--
+-- unit name: dtype_fds
+--
+--! @brief   Aims to be the same as the Xilinx "FDS" primitive - D-Type flip-flop
+--
+--
+--! @author David.Cussans@bristol.ac.uk
+--
+--! @date 7/May/2011
+--
+--! @version 0.1
+--
+--! @details -- Modified from D-type example in VHDL book.
+--! See Xilinx spartan6_scm.pdf
+--! Output goes high when input goes high ( asyncnronous to system clock).
+--
+--! <b>Dependencies:</b>\n
+--!
+--! <b>References:</b>\n
+--! <reference one> \n
+--! <reference two>
+--!
+--! <b>Modified by:</b>\n
+--! Author: <name>
+-------------------------------------------------------------------------------
+--! \n\n<b>Last changes:</b>\n
+--! <date> <initials> <log>\n
+--! <extended description>
+-------------------------------------------------------------------------------
+--! @todo <next thing to do> \n
+--! <another thing to do> \n
+--
+-------------------------------------------------------------------------------
diff --git a/legacy/TLU_v1c/common/GPP_rtl.vhd b/legacy/TLU_v1c/common/GPP_rtl.vhd
new file mode 100644
index 00000000..bc02a5ef
--- /dev/null
+++ b/legacy/TLU_v1c/common/GPP_rtl.vhd
@@ -0,0 +1,312 @@
+--=============================================================================
+--! @file GPP_rtl.vhd
+--=============================================================================
+--
+-------------------------------------------------------------------------------
+-- --
+-- University of Santiago de Compostela, High Energy Physics Group.
+-- --
+------------------------------------------------------------------------------- --
+-- 
+--
+--! @brief GPP - General purpose pulser. Generates a sycronous custom pulse \n
+--! IPBus address map:\n
+--
+--! @author Alvaro Dosil , alvaro.dosil@usc.es
+--
+--! @date 15:42:31 01/15/2013 
+--
+--! @version v0.1
+--
+--! @details
+--!
+--!
+--! <b>Dependencies:</b>\n
+--!
+--! <b>References:</b>\n
+--!
+--! <b>Modified by: 
+--! Author: 
+-------------------------------------------------------------------------------
+--! \n\n<b>Last changes:</b>\n
+-------------------------------------------------------------------------------
+--! @todo <next thing to do> \n
+--! <another thing to do> \n
+--
+--------------------------------------------------------------------------------
+library ieee;
+use ieee.std_logic_1164.all;
+use ieee.numeric_std.all;
+
+entity GPP is
+   GENERIC( 
+      g_IPBUS_WIDTH      : positive := 32
+   );
+	PORT( clk_i       		: IN     std_logic;                                          		--! Rising edge active
+			Enable_i          : IN     std_logic;                                          --
+			Reset_i           : IN     std_logic;                                          --
+			RstPulsCnt_i     	: IN     std_logic;                                          -- Reset pulse counter
+			Trigger_i         : IN     std_logic;                                          -- Trigger input signal
+			NMaxPulses_i      : IN     std_logic_vector(g_IPBUS_WIDTH-1 downto 0);         -- Max number of pulses
+			SuDTime_i         : IN     std_logic_vector(g_IPBUS_WIDTH-1 downto 0);         -- Startup dead time
+			PulsLen_i     		: IN     std_logic_vector(g_IPBUS_WIDTH-1 downto 0);         -- Pulse length
+		   IpDTime_i         : IN     std_logic_vector(g_IPBUS_WIDTH-1 downto 0);         -- Interpulse dead time
+			RearmTime_i       : IN     std_logic_vector(g_IPBUS_WIDTH-1 downto 0);         -- Time before rearm after reach the max number of pulses
+			Force_PullDown_i  : IN     std_logic;                                          -- Force pull down
+			WU_i              : IN     std_logic;                                          -- Output trigger signal with update
+			PulseDelay_i      : IN     std_logic_vector(g_IPBUS_WIDTH-1 downto 0);    		 -- Pulse delay
+	      event_number_o    : OUT    std_logic_vector(g_IPBUS_WIDTH-1 downto 0);         -- Event number
+			MaxPulses_o       : OUT    std_logic;                                          -- Maximun number of pulses reached
+			Pulse_o           : OUT    std_logic;                                          --! pulse output
+			Pulse_d_o         : OUT    std_logic                                           --! pulse output delayed
+			);
+end GPP;
+
+architecture rtl of GPP is
+   --! FSM state values
+   type state_values is (st0, st1, st2, st3, st4, st5, st6);
+	signal pres_state, next_state: state_values;
+	
+	signal s_PulsCnt_en  		: std_logic := '0';                                             --! Pulse counter enable
+	signal s_RstPulsCnt       	: std_logic := '0';                                             --! Reset pulse counter
+	signal s_RstPulsCnt_int   	: std_logic := '0';                                             --! Reset pulse counter internal signal
+	signal s_PulsLen		      : std_logic_vector(g_IPBUS_WIDTH-1 downto 0);                   --! Pulse Length
+	signal s_PulsCnt     		: unsigned(g_IPBUS_WIDTH-1 downto 0) := (others => '0');        --! Pulse counter value
+	signal s_MaxPulses         : std_logic := '0';                                             --! Max number of pulses reached
+	signal s_Pulse             : std_logic := '0';                                             --! Active pulse signal
+	signal s_Pulse_d           : std_logic_vector(g_IPBUS_WIDTH-1 downto 0) := (others=>'0');  --! Active pulse signal delayed
+   
+	signal s_load_SuDTime      : std_logic := '1';                                             --! Counter load signal
+	signal s_SuDTime 				: std_logic_vector(g_IPBUS_WIDTH-1 downto 0);                   --! Startup dead time counter
+	signal EOSDT               : std_logic := '0';                                             --! End of startup dead time signal
+	
+	signal s_load_PulsLen     : std_logic := '1';                                           	--! Counter load
+	signal EOP                 : std_logic := '0';                                             --! End of pulse length signal
+	
+	signal s_load_IpDTime      : std_logic := '1';                                             --! Counter load signal
+	signal s_IpDTime 				: std_logic_vector(g_IPBUS_WIDTH-1 downto 0);                   --! Interpulse dead time counter
+	signal EOIDT               : std_logic := '0';                                             --! End of interpulse dead time signal
+	
+	signal s_load_RearmTime    : std_logic := '1';                                             --! Rearm counter load signal
+	signal s_RearmLen     		: std_logic_vector(g_IPBUS_WIDTH-1 downto 0);                   --! Startup dead time counter
+	signal EOREARM             : std_logic := '0';                                             --! End of startup dead time signal
+
+begin
+	-----------------------------------------------------------------------------
+	-- Counters
+	-----------------------------------------------------------------------------
+	--! Startup dead time counter
+   c_startup_dtime : entity work.CounterDown
+	generic map(
+		MAX_WIDTH => g_IPBUS_WIDTH
+	)
+	port map( 
+		Clk		=> clk_i,
+		Reset		=> '0',
+		Load 		=> s_load_SuDTime,
+		InitVal 	=> std_logic_vector(unsigned(s_SuDTime)-1),
+		Count		=> open,
+		Q 			=> EOSDT
+	);
+	s_SuDTime <= x"00000001" when SuDTime_i = x"00000000"    -- At least one clock cycle pulse is generated
+	             else SuDTime_i;
+	
+	--! Pulse time counter
+   c_pulse_time : entity work.CounterDown
+	generic map(
+		MAX_WIDTH => g_IPBUS_WIDTH
+	)
+	port map( 
+		Clk		=> clk_i,
+		Reset		=> '0',
+		Load 		=> s_load_PulsLen,
+		InitVal 	=> std_logic_vector(unsigned(s_PulsLen)-1),
+		Count		=> open,
+		Q 			=> EOP
+	);
+	s_PulsLen <= x"00000001" when PulsLen_i = x"00000000"    -- At least one clock cycle pulse is generated
+	             else PulsLen_i;
+	
+	--! Interpulse dead time counter
+   c_interpulse_dtime : entity work.CounterDown
+	generic map(
+		MAX_WIDTH => g_IPBUS_WIDTH
+	)
+	port map( 
+		Clk		=> clk_i,
+		Reset		=> '0',
+		Load 		=> s_load_IpDTime,
+		InitVal 	=> std_logic_vector(unsigned(s_IpDTime)-1),
+		Count		=> open,
+		Q 			=> EOIDT
+	);
+	s_IpDTime <= x"00000001" when IpDTime_i = x"00000000"    -- At least one clock cycle pulse is generated
+	             else IpDTime_i;
+	
+	--! Rearm time after the max pulses reached
+   c_rearm_dtime : entity work.CounterDown
+	generic map(
+		MAX_WIDTH => g_IPBUS_WIDTH
+	)
+	port map( 
+		Clk		=> clk_i,
+		Reset		=> '0',
+		Load 		=> s_load_RearmTime,
+		InitVal 	=> std_logic_vector(unsigned(s_RearmLen)-1),
+		Count		=> open,
+		Q 			=> EOREARM
+	);
+	s_RearmLen <= x"00000001" when RearmTime_i = x"00000000"    -- At least one clock cycle pulse is generated
+						else RearmTime_i;
+			 
+
+	--! FSM register
+	statereg: process(clk_i, Enable_i, Reset_i)
+	begin
+		if Enable_i = '0'  then 
+			pres_state <= st0;            -- Move to st0 - INITIAL STATE
+      
+		elsif Reset_i = '1' then
+			pres_state <= st0;            -- Move to st0 - INITIAL STATE
+        
+		elsif rising_edge(clk_i) then
+			pres_state <= next_state;     -- Move to next state
+        
+		end if;
+	end process statereg;
+
+
+   --! FSM combinational block
+	fsm: process(pres_state, Enable_i, Reset_i, Trigger_i, s_MaxPulses, EOP, EOSDT, EOIDT, Force_PullDown_i)
+	begin
+	  next_state <= pres_state;
+	  -- Default values
+	  s_Pulse          	<= '0';
+	  s_load_SuDTime     <= '1';
+	  s_load_PulsLen 		<= '1';
+	  s_load_IpDTime     <= '1';
+	  s_load_RearmTime	<= '1';
+	  s_RstPulsCnt_int   <= '0';
+  
+     case pres_state is
+	  
+	    -- st0 - INITIAL STATE
+		 when st0=>
+         if (Enable_i = '1') and (Reset_i = '0') then 
+           next_state <= st1;            -- Next state is "st1 - IDLE"
+         end if;
+       
+		 -- st1 - IDLE STATE
+       when st1=>
+         if s_MaxPulses = '1' then
+           next_state <= st5;            -- Next state is "st5 - NMAX PULSES REACHED"
+         else
+           if Trigger_i = '1' and Force_PullDown_i = '0' then 
+             if (to_integer(unsigned(SuDTime_i)) = 0) then
+               next_state <= st3;        -- Next state is "st3 - PULSE"
+             else
+               next_state <= st2;        -- Next state is "st2 - STARTUP DEAD-TIME"
+             end if; 
+           end if;
+         end if;
+		 
+		 -- st2 - STARTUP DEAD-TIME
+       when st2=>
+         s_load_SuDTime <= '0';
+           if EOSDT = '1' then
+             next_state <= st3;          -- Next state is "st3 - PULSE"
+           end if;
+		
+		 -- st3 - PULSE
+       when st3=>
+         s_Pulse <= '1';
+         s_load_PulsLen <= '0';
+				
+         if (EOP = '1') or (Force_PullDown_i = '1')then
+           if (to_integer(unsigned(IpDTime_i)) = 0) then
+             next_state <= st1;         -- Next state is "st1 - IDLE"
+           else
+             next_state <= st4;         -- Next state is "st4 - INTERPULSE DEAD-TIME"
+           end if;
+         end if;
+				
+         if Trigger_i = '1' then
+           if (WU_i = '1') then
+             next_state <= st6;         -- Next state is "st6 - RELOAD PULSE TIMER"
+           end if;	
+         end if;
+       
+		 
+		 -- st4 - INTERPULSE DEAD-TIME
+       when st4=>
+         s_load_IpDTime <= '0';
+         if EOIDT = '1' then
+           next_state <= st1;            -- Next state is "st1 - IDLE"
+         end if;
+				
+		 -- st5 - NMAX PULSES REACHED
+       when st5=>
+		   s_load_RearmTime <= '0';
+			if EOREARM = '1' then
+			  next_state <= st1;            -- Next state is "st1 - IDLE"
+			  s_RstPulsCnt_int <= '1';
+			end if;
+			
+		 -- st6 - RELOAD PULSE TIMER
+       when st6=>
+         s_Pulse <= '1';
+         next_state <= st3;              -- Next state is "st3 - PULSE"
+			
+--       when others=>
+--         next_state<=st0;                -- Next state is "st0 - INITIAL STATE"
+     
+	  end case;
+	
+	end process fsm;    
+	
+	-- Pulse reg
+	p_reg_pulse : process ( clk_i , Reset_i )
+   begin  
+	  if Reset_i = '1' then
+	    s_Pulse_d <= (others => '0');
+	  
+	  elsif rising_edge(clk_i) then
+       for i in 0 to g_IPBUS_WIDTH-2 loop
+         s_Pulse_d(i+1) <= s_Pulse_d(i);
+       end loop;
+	    s_Pulse_d(0) <= s_Pulse;
+	  end if;
+	end process p_reg_pulse;
+	
+	event_number_o <= std_logic_vector(s_PulsCnt);
+	MaxPulses_o <= s_MaxPulses;
+	Pulse_o 		<= s_Pulse;
+	Pulse_d_o 	<= s_Pulse when PulseDelay_i = x"00000000" else
+						s_Pulse_d(to_integer(unsigned(PulseDelay_i)-1));
+	
+	
+	-----------------------------------------------------------------------------
+	-- Count runs and synchronization
+	-----------------------------------------------------------------------------
+	p_PulsCounter : process (clk_i )
+	begin  -- process p_run_counter
+
+		if rising_edge(clk_i) then
+			if s_RstPulsCnt = '1' then
+				s_PulsCnt <= (others => '0');
+			elsif s_PulsCnt_en = '1' then
+				s_PulsCnt <= s_PulsCnt + 1;
+			end if;
+		
+		end if;
+	end process p_PulsCounter;
+  
+	s_RstPulsCnt <= Reset_i or RstPulsCnt_i or s_RstPulsCnt_int;
+	s_PulsCnt_en <= '1' when (s_Pulse = '1') and (s_Pulse_d(0) = '0') and (s_MaxPulses = '0')
+	                      else '0'; 
+	s_MaxPulses <= '1' when (s_PulsCnt = unsigned(NMaxPulses_i)) and (NMaxPulses_i /= x"00000000")
+                  else '0';
+
+
+END ARCHITECTURE rtl;
+
diff --git a/legacy/TLU_v1c/common/IODELAYCal_FSM_rtl.vhd b/legacy/TLU_v1c/common/IODELAYCal_FSM_rtl.vhd
new file mode 100644
index 00000000..9d69931d
--- /dev/null
+++ b/legacy/TLU_v1c/common/IODELAYCal_FSM_rtl.vhd
@@ -0,0 +1,102 @@
+--=============================================================================
+--! @file IODELAYCal_FSM_rtl.vhd
+--=============================================================================
+--
+-------------------------------------------------------------------------------
+-- --
+-- UoB , USC
+-- --
+------------------------------------------------------------------------------- --
+--
+--! @brief Finite-state machine to control calibration and reset signals to
+--! Iserdes, IDelay
+--! based on code by Alvaro Dosil\n
+--
+--! @author  Alvaro Dosil 
+--
+--! @date 22/Feb/2014
+--
+--! @version v0.1
+--
+--! @details
+--
+-------------------------------------------------------------------------------
+--! \n\n<b>Last changes:</b>\n
+-------------------------------------------------------------------------------
+--! @todo Implement a periodic calibration sequence\n
+--! <another thing to do> \n
+
+  LIBRARY ieee;
+USE ieee.std_logic_1164.all;
+
+entity IODELAYCal_FSM is
+	port (
+		clk_i 		: in std_logic;		--! Global clock
+		startcal_i 	: in std_logic;      --! Start calibration
+		busy_i 		: in std_logic;     	--! Status of the IDELAY component
+		calibrate_o : out std_logic;     --! Calibration signals to IODELAY
+		reset_o 		: out std_logic  		--! Reset to IODELAY component
+    );
+end entity IODELAYCal_FSM;
+
+architecture rtl of IODELAYCal_FSM is
+
+  --! Calibration FSM state values
+  type state_values is (st0, st1, st2, st3);
+  signal pres_state, next_state: state_values := st0;
+  
+	signal s_cal_FSM      : std_logic := '0';         -- IODELAY reset
+  signal s_rst_FSM      : std_logic := '0';         -- IODELAY reset
+  
+begin  -- rtl
+
+  --! Calibration FSM register
+  statereg: process(clk_i)
+  begin
+    if rising_edge(clk_i) then
+      pres_state <= next_state;     -- Move to next state
+      
+    end if;
+  end process statereg;
+
+
+  --! Calibration FSM combinational block
+  fsm: process(pres_state, startcal_i, busy_i)
+  begin
+    next_state <= pres_state;
+    -- Default values
+    s_Rst_FSM <= '0';
+    s_cal_FSM <= '0';
+    
+    case pres_state is
+      
+      -- st0 - IDLE
+      when st0=>
+        if ( startcal_i = '1') then 
+          next_state <= st1;            -- Next state is "st1 - SEND CALIBRATION SIGNAL"
+        end if;
+        
+      -- st1 - SEND CALIBRATION SIGNAL
+      when st1=>
+        s_cal_FSM <= '1';
+		  next_state <= st2;            -- Next state is "st2 - WAIT BUSY = '0'"
+        
+      -- st2 - WAIT BUSY = '0'
+      when st2=>
+        if busy_i = '0' then 
+          next_state <= st3;            -- Next state is "st3 - RESET STATE"
+        end if;
+        
+        -- st3 - RESET STATE
+      when st3=>
+        s_Rst_FSM <= '1';
+		  next_state <= st0;              -- Next state is "st0 - IDLE"
+		
+    end case;
+    
+  end process fsm;
+
+  calibrate_o <= s_cal_FSM;
+  reset_o <= s_Rst_FSM;
+                
+end rtl;
diff --git a/legacy/TLU_v1c/common/IPBusInterface_rtl.vhd b/legacy/TLU_v1c/common/IPBusInterface_rtl.vhd
new file mode 100644
index 00000000..aa9bd6de
--- /dev/null
+++ b/legacy/TLU_v1c/common/IPBusInterface_rtl.vhd
@@ -0,0 +1,261 @@
+--=============================================================================
+--! @file IPBusInterface_rtl.vhd
+--=============================================================================
+--
+-------------------------------------------------------------------------------
+-- --
+-- University of Bristol, High Energy Physics Group.
+-- --
+------------------------------------------------------------------------------- --
+-- VHDL Architecture fmc_mTLU_lib.IPBusInterface.rtl
+--
+-- 
+-- Created using using Mentor Graphics HDL Designer(TM) 2010.3 (Build 21)
+--
+LIBRARY ieee;
+USE ieee.std_logic_1164.all;
+USE ieee.numeric_std.all;
+
+USE work.ipbus.all;
+
+--! @brief IPBus interface between 1GBit/s Ethernet and IPBus internal bus
+--
+--! @author David Cussans , David.Cussans@bristol.ac.uk
+--
+--! @date 16:06:57 11/09/12
+--
+--! @version v0.1
+--
+--! @details
+--!
+--! <b>Modified by:</b>\n
+--! Author: 
+-------------------------------------------------------------------------------
+--! \n\n<b>Last changes:</b>\n
+-------------------------------------------------------------------------------
+ENTITY IPBusInterface IS
+   GENERIC( 
+      NUM_EXT_SLAVES : positive := 5;
+      BUILD_SIMULATED_ETHERNET : integer := 0 --! Set to 1 to build simulated Ethernet interface using Modelsim FLI
+   );
+   PORT( 
+      gmii_rx_clk_i    : IN     std_logic;
+      gmii_rx_dv_i     : IN     std_logic;
+      gmii_rx_er_i     : IN     std_logic;
+      gmii_rxd_i       : IN     std_logic_vector (7 DOWNTO 0);
+      ipbr_i           : IN     ipb_rbus_array (NUM_EXT_SLAVES-1 DOWNTO 0);  --! IPBus read signals
+      sysclk_n_i       : IN     std_logic;
+      sysclk_p_i       : IN     std_logic;                                   --! 200 MHz xtal clock
+      clocks_locked_o  : OUT    std_logic;
+      gmii_gtx_clk_o   : OUT    std_logic;
+      gmii_tx_en_o     : OUT    std_logic;
+      gmii_tx_er_o     : OUT    std_logic;
+      gmii_txd_o       : OUT    std_logic_vector (7 DOWNTO 0);
+      ipb_clk_o        : OUT    std_logic;                                   --! IPBus clock to slaves
+      ipb_rst_o        : OUT    std_logic;                                   --! IPBus reset to slaves
+      ipbw_o           : OUT    ipb_wbus_array (NUM_EXT_SLAVES-1 DOWNTO 0);  --! IBus write signals
+      onehz_o          : OUT    std_logic;
+      phy_rstb_o       : OUT    std_logic;
+      dip_switch_i     : IN     std_logic_vector (3 DOWNTO 0); --! Used to select IP address
+      clk_logic_xtal_o : OUT    std_logic  --! 40MHz clock that can be used for logic if not using external clock
+   );
+
+-- Declarations
+
+END ENTITY IPBusInterface ;
+
+--
+ARCHITECTURE rtl OF IPBusInterface IS
+  
+  --! Number of slaves inside the IPBusInterface block.
+  constant c_NUM_INTERNAL_SLAVES : positive := 1;
+
+  signal clk125,  rst_125, rst_ipb: STD_LOGIC;
+  signal mac_txd, mac_rxd : STD_LOGIC_VECTOR(7 downto 0);
+  signal mac_txdvld, mac_txack, mac_rxclko, mac_rxdvld, mac_rxgoodframe, mac_rxbadframe : STD_LOGIC;
+  signal ipb_master_out : ipb_wbus;
+  signal ipb_master_in : ipb_rbus;
+  signal mac_addr: std_logic_vector(47 downto 0);
+  signal mac_tx_data, mac_rx_data: std_logic_vector(7 downto 0);
+  signal mac_tx_valid, mac_tx_last, mac_tx_error, mac_tx_ready, mac_rx_valid, mac_rx_last, mac_rx_error: std_logic;
+
+  signal ip_addr: std_logic_vector(31 downto 0);
+  signal s_ipb_clk : std_logic;
+  signal s_ipbw_internal: ipb_wbus_array (NUM_EXT_SLAVES+c_NUM_INTERNAL_SLAVES-1 DOWNTO 0);
+  signal s_ipbr_internal: ipb_rbus_array (NUM_EXT_SLAVES+c_NUM_INTERNAL_SLAVES-1 DOWNTO 0);
+  signal s_sysclk : std_logic;
+  signal pkt_rx, pkt_tx, pkt_rx_led, pkt_tx_led, sys_rst: std_logic;
+  
+BEGIN
+
+  -- Connect IPBus clock and reset to output ports.
+  ipb_clk_o <= s_ipb_clk;
+  ipb_rst_o <= rst_ipb;
+
+  --! By default generate a physical MAC
+  generate_physicalmac: if ( BUILD_SIMULATED_ETHERNET /= 1 ) generate
+      
+--	DCM clock generation for internal bus, ethernet
+--	clocks: entity work.clocks_s6_extphy port map(
+--          sysclk_p => sysclk_p_i,
+--          sysclk_n => sysclk_n_i,
+--          clk_logic_xtal_o => clk_logic_xtal_o,
+--          clko_125 => clk125,
+--          clko_ipb => s_ipb_clk,
+--          locked => clocks_locked_o,
+--          rsto_125 => rst_125,
+--          rsto_ipb => rst_ipb,
+--          onehz => onehz_o
+--          );
+    
+    clocks: entity work.clocks_7s_extphy_Se port map(
+        sysclk_p => sysclk_p_i,
+        sysclk_n => sysclk_n_i,
+        clk_logic_xtal_o => clk_logic_xtal_o,
+        clko_125 => clk125,
+        clko_ipb => s_ipb_clk,
+        locked => clocks_locked_o,
+        rsto_125 => rst_125,
+        rsto_ipb => rst_ipb,
+        onehz => onehz_o
+        );
+				
+	-- leds <= ('0', '0', locked, onehz);
+	
+--	Ethernet MAC core and PHY interface
+-- In this version, consists of hard MAC core and GMII interface to external PHY
+-- Can be replaced by any other MAC / PHY combination
+
+--        eth: entity work.eth_s6_gmii port map(
+--          clk125 => clk125,
+--          rst => rst_125,
+--          gmii_gtx_clk => gmii_gtx_clk_o,
+--          gmii_tx_en => gmii_tx_en_o,
+--          gmii_tx_er => gmii_tx_er_o,
+--          gmii_txd => gmii_txd_o,
+--          gmii_rx_clk => gmii_rx_clk_i,
+--          gmii_rx_dv => gmii_rx_dv_i,
+--          gmii_rx_er => gmii_rx_er_i,
+--          gmii_rxd => gmii_rxd_i,
+--          tx_data => mac_tx_data,
+--          tx_valid => mac_tx_valid,
+--          tx_last => mac_tx_last,
+--          tx_error => mac_tx_error,
+--          tx_ready => mac_tx_ready,
+--          rx_data => mac_rx_data,
+--          rx_valid => mac_rx_valid,
+--          rx_last => mac_rx_last,
+--          rx_error => mac_rx_error
+--          );
+          
+      eth: entity work.eth_7s_rgmii port map(
+            clk125 => clk125,
+            rst => rst_125,
+            tx_data => mac_tx_data,
+            tx_valid => mac_tx_valid,
+            tx_last => mac_tx_last,
+            tx_error => mac_tx_error,
+            tx_ready => mac_tx_ready,
+            rx_data => mac_rx_data,
+            rx_valid => mac_rx_valid,
+            rx_last => mac_rx_last,
+            rx_error => mac_rx_error,
+            gmii_gtx_clk => gmii_gtx_clk_o,
+            gmii_tx_en => gmii_tx_en_o,
+            gmii_tx_er => gmii_tx_er_o,
+            gmii_txd => gmii_txd_o,
+            gmii_rx_clk => gmii_rx_clk_i,
+            gmii_rx_dv => gmii_rx_dv_i,
+            gmii_rx_er => gmii_rx_er_i,
+            gmii_rxd => gmii_rxd_i            
+            );
+          	
+  end generate generate_physicalmac;
+
+    --! Set generic BUILD_SIMULATED_ETHERNET to 1 to generate a simulated MAC
+    generate_simulatedmac: if ( BUILD_SIMULATED_ETHERNET = 1 ) generate
+
+      sim_clocks: entity work.clock_sim
+	port map (
+	  clko125 => clk125,
+	  clko25 => s_ipb_clk,
+	  clko40 =>  clk_logic_xtal_o,
+	  nuke   => '0',
+	  rsto   => rst_125
+          );
+      rst_ipb <= rst_125;
+      clocks_locked_o  <= '1';
+      
+      -- clk125 <= sysclk_i; -- *must* run this simulation with 125MHz sysclk...
+      simulated_eth: entity work.eth_mac_sim
+        port map(
+          clk => clk125,
+          rst => rst_125,
+          tx_data => mac_tx_data,
+          tx_valid => mac_tx_valid,
+          tx_last => mac_tx_last,
+          tx_error => mac_tx_error,
+          tx_ready => mac_tx_ready,
+          rx_data => mac_rx_data,
+          rx_valid => mac_rx_valid,
+          rx_last => mac_rx_last,
+          rx_error => mac_rx_error
+          );
+    end generate generate_simulatedmac;
+
+  phy_rstb_o <= '1';
+  
+-- ipbus control logic
+        ipbus: entity work.ipbus_ctrl
+          generic map (
+            BUFWIDTH => 2)
+          port map(
+            mac_clk => clk125,
+            rst_macclk => rst_125,
+            ipb_clk => s_ipb_clk,
+            rst_ipb => rst_ipb,
+            mac_rx_data => mac_rx_data,
+            mac_rx_valid => mac_rx_valid,
+            mac_rx_last => mac_rx_last,
+            mac_rx_error => mac_rx_error,
+            mac_tx_data => mac_tx_data,
+            mac_tx_valid => mac_tx_valid,
+            mac_tx_last => mac_tx_last,
+            mac_tx_error => mac_tx_error,
+            mac_tx_ready => mac_tx_ready,
+            ipb_out => ipb_master_out,
+            ipb_in => ipb_master_in,
+            mac_addr => mac_addr,
+            ip_addr => ip_addr,
+            pkt_rx => pkt_rx,
+            pkt_tx => pkt_tx,
+            pkt_rx_led => pkt_rx_led,
+            pkt_tx_led => pkt_tx_led
+            );
+
+	
+	mac_addr <= X"020ddba115" & dip_switch_i & X"0"; -- Careful here, arbitrary addresses do not always work
+	ip_addr   <= X"c0a8c8" & dip_switch_i & X"0"; -- 192.168.200.X
+ 
+  fabric: entity work.ipbus_fabric
+    generic map(NSLV => NUM_EXT_SLAVES+c_NUM_INTERNAL_SLAVES)
+    port map(
+      ipb_in => ipb_master_out,
+      ipb_out => ipb_master_in,
+      ipb_to_slaves => s_ipbw_internal,
+      ipb_from_slaves => s_ipbr_internal
+    );
+    
+    ipbw_o <= s_ipbw_internal(NUM_EXT_SLAVES-1 downto 0);
+
+    s_ipbr_internal(NUM_EXT_SLAVES-1 downto 0) <= ipbr_i;
+         
+  -- Slave: firmware ID
+  firmware_id: entity work.ipbus_ver
+    port map(
+      ipbus_in =>  s_ipbw_internal(NUM_EXT_SLAVES+c_NUM_INTERNAL_SLAVES-1),
+      ipbus_out => s_ipbr_internal(NUM_EXT_SLAVES+c_NUM_INTERNAL_SLAVES-1)
+      );
+
+END ARCHITECTURE rtl;
+
diff --git a/legacy/TLU_v1c/common/Reg_2clks.vhd b/legacy/TLU_v1c/common/Reg_2clks.vhd
new file mode 100644
index 00000000..df7168fc
--- /dev/null
+++ b/legacy/TLU_v1c/common/Reg_2clks.vhd
@@ -0,0 +1,56 @@
+----------------------------------------------------------------------------------
+-- Company: Universidade de Santiago de Compostela
+-- Engineer: Alvaro Dosil
+-- 
+-- Create Date:    31/07/2012 
+-- Module Name:    Reg_2clks - Behavioral 
+-- Revision 0.01 - File Created
+-- Additional Comments: 
+----------------------------------------------------------------------------------
+-------------------------------------------------------
+--! @file
+--! @brief Synchronization module 1b
+--! @author Alvaro Dosil
+-------------------------------------------------------
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+
+
+entity Reg_2clks is
+  port(
+    clk_i : in std_logic;  --! Synchronous clock
+	 async_i : in std_logic;  --! Asynchronous input data
+	 sync_o : out std_logic   --! Synchronous output data
+	 );
+end Reg_2clks;
+
+--! @brief
+--! @details Synchronize 1 bit of data 
+
+architecture Behavioral of Reg_2clks is
+signal sreg : std_logic_vector(1 downto 0);
+
+attribute TIG : string;
+attribute IOB : string;
+attribute ASYNC_REG : string;
+attribute SHIFT_EXTRACT : string;
+attribute HBLKNM : string;
+
+attribute TIG of async_i : signal is "TRUE";
+attribute IOB of async_i : signal is "FALSE";
+attribute ASYNC_REG of sreg : signal is "TRUE";
+attribute SHIFT_EXTRACT of sreg : signal is "NO";
+attribute HBLKNM of sreg : signal is "sync_reg";
+
+begin
+
+process (clk_i)
+begin
+   if rising_edge(clk_i) then  
+     sync_o <= sreg(1);
+	  sreg <= sreg(0) & async_i;
+   end if;
+end process;
+
+end Behavioral;
+
diff --git a/legacy/TLU_v1c/common/T0_Shutter_Iface_rtl.vhd b/legacy/TLU_v1c/common/T0_Shutter_Iface_rtl.vhd
new file mode 100644
index 00000000..ef24ee2a
--- /dev/null
+++ b/legacy/TLU_v1c/common/T0_Shutter_Iface_rtl.vhd
@@ -0,0 +1,114 @@
+--! @file T0_Shutter_Iface_rtl.vhd
+--
+LIBRARY ieee;
+USE ieee.std_logic_1164.all;
+
+library unisim;
+use unisim.VComponents.all;
+
+USE work.ipbus.all;
+
+use work.ipbus_reg_types.all;
+
+--! @brief Simple module to generate T0 and shutter signals under IPBus control
+--! Similar interface to TPx3_iface_rtl.vhd
+--
+--! @details
+--! \n \n IPBus address map:
+--! \li 00 - shutter. Bit 0. Output shutter = value of bit-0
+--! \li 01 - T0 write to pulse T0.
+--
+--! @author David Cussans
+
+entity T0_Shutter_Iface is
+
+  port (
+    clk_4x_i      : in  std_logic;    --! system clock
+    clk_4x_strobe : in  std_logic;    --! strobes high for one cycle every 4 of clk_4x
+    T0_o          : out std_logic;    --! T0 signal retimed onto system clock
+    shutter_o          : out std_logic;    --! shutter signal retimed onto system clock
+
+    ipbus_clk_i            : IN     std_logic; --! IPBus system clock
+    ipbus_i                : IN     ipb_wbus;
+    ipbus_o                : OUT    ipb_rbus
+          
+    );     
+
+end entity T0_Shutter_Iface;
+
+architecture rtl of T0_Shutter_Iface is
+
+  signal s_T0 , s_T0_d1 , s_T0_d2 , s_stretch_T0_in: std_logic := '0';  -- signal after IBufDS and sampled onto clk_4x
+  signal s_stretch_T0_in_sr : std_logic_vector(2 downto 0) := "111"; --! Gets shifted out by clk_4x logic. Loaded by T0ger_i
+  signal s_T0_out_sr : std_logic_vector(2 downto 0) := "111"; --! Gets shifted out by clk_4x logic. Loaded by strobe_4x_logic
+
+  signal s_shutter , s_shutter_d1 , s_shutter_d2 : std_logic := '0';  -- signal after IBufDS and sampled onto clk_4x
+
+  signal s_T0_ipbus , s_T0_ipbus_d1 , s_T0_ipbus_d2: std_logic := '0';  -- Signals that get combined with incoming hardware signals from TPIx3 telescope
+  signal s_shutter_ipbus , s_shutter_ipbus_d1 , s_shutter_ipbus_d2: std_logic := '0';  -- Signals that get combined with incoming hardware signals from TPIx3 telescope
+                                                                             
+  signal s_ipbus_ack      : std_logic := '0';  -- used to produce a delayed IPBus ack signal
+  
+begin  -- architecture rtl
+
+  --------------------
+    ipbus_write: process (ipbus_clk_i)
+    begin  -- process ipb_clk_i
+    if rising_edge(ipbus_clk_i) then
+        s_T0_ipbus <= '0';
+        if (ipbus_i.ipb_strobe = '1' and ipbus_i.ipb_write = '1') then
+            case ipbus_i.ipb_addr(1 downto 0) is
+                when "00" => s_shutter_ipbus <= ipbus_i.ipb_wdata(0) ; -- Set IPBus shutter
+                when "01" => s_T0_ipbus <= '1';
+                when others => null;
+            end case;
+        end if;
+        s_ipbus_ack <= ipbus_i.ipb_strobe and not s_ipbus_ack;
+    end if;
+    end process ipbus_write;
+
+    ipbus_o.ipb_ack <= s_ipbus_ack;
+    ipbus_o.ipb_err <= '0';
+
+
+    ------------------
+    p_T0_retime: process (clk_4x_i , clk_4x_strobe , s_T0) is
+    begin  -- process p_T0_retime
+    if rising_edge(clk_4x_i)  then
+        -- Register IPBus clocked signals onto clk 4x. So clk4x must be faster
+        -- than ipbus_clk for this to work.
+        s_T0_ipbus_d1 <= s_T0_ipbus;
+        s_T0_ipbus_d2 <= s_T0_ipbus_d1;
+        -- Shutter is a DC level, so clock speeds don't matter.
+        s_shutter_ipbus_d1 <= s_shutter_ipbus;
+        s_shutter_ipbus_d2 <= s_shutter_ipbus_d1;
+        -- Stretch T0_i pulse to 4 clock cycles on clk4x
+        if ( s_T0_ipbus_d2 = '1' ) then
+            s_stretch_T0_in <= '1';
+            s_stretch_T0_in_sr <= "111";
+        else
+            s_stretch_T0_in <= s_stretch_T0_in_sr(0);
+            s_stretch_T0_in_sr <= '0' & s_stretch_T0_in_sr(s_stretch_T0_in_sr'left downto 1);
+        end if;
+ 
+        if (clk_4x_strobe  = '1') and ( s_stretch_T0_in = '1' ) then
+            T0_o <= '1';
+            s_T0_out_sr <= "111";
+        else
+            T0_o <= s_T0_out_sr(0);
+            s_T0_out_sr <= '0' & s_T0_out_sr(s_T0_out_sr'left downto 1);
+        end if;
+    end if;
+    end process p_T0_retime;
+    
+  -- Just retime onto the 4x clock. Probably should retime onto 1x clock.
+    p_shutter_retime: process (s_shutter , clk_4x_i) is
+    begin  -- process p_shutter_retime
+    if rising_edge(clk_4x_i)  then
+        s_shutter_d1 <= ( s_shutter_ipbus );
+        s_shutter_d2 <= s_shutter_d1;
+        shutter_o    <= s_shutter_d2;
+    end if;
+    end process p_shutter_retime;
+
+end architecture rtl;
diff --git a/legacy/TLU_v1c/common/TPx3Logic_rtl.vhd b/legacy/TLU_v1c/common/TPx3Logic_rtl.vhd
new file mode 100644
index 00000000..1e35cfac
--- /dev/null
+++ b/legacy/TLU_v1c/common/TPx3Logic_rtl.vhd
@@ -0,0 +1,177 @@
+--=============================================================================
+--! @file TPx3Logic_rtl.vhd
+--=============================================================================
+--
+-------------------------------------------------------------------------------
+-- --
+-- University of Santiago de Compostela, High Energy Physics Group.
+-- --
+------------------------------------------------------------------------------- --
+-- VHDL Architecture fmc_mTLU_lib.TPx3Logic.rtl
+--
+--! @brief Produces shutters \n
+--! IPBus address map:\n
+--
+--! @author Alvaro Dosil , alvaro.dosil@usc.es
+--
+--! @date 16:06:19 11/06/14
+--
+--! @version v0.1
+--
+--! @details
+--!
+--!
+--! <b>Dependencies:</b>\n
+--!
+--! <b>References:</b>\n
+--!
+--! <b>Modified by: Alvaro Dosil , alvaro.dosil@usc.es </b>\n
+--! Author: 
+-------------------------------------------------------------------------------
+--! \n\n<b>Last changes:</b>\n
+--! Move all IPBus stuff into ipbus_syncreg_v , which also handles clock domain
+--! crossing. 20/Feb/2014 , David Cussans
+-------------------------------------------------------------------------------
+--! @todo <next thing to do> \n
+--! <another thing to do> \n
+--
+--------------------------------------------------------------------------------
+-- 
+-- Created using using Mentor Graphics HDL Designer(TM) 2010.3 (Build 21)
+--
+LIBRARY ieee;
+USE ieee.std_logic_1164.all;
+USE ieee.numeric_std.all;
+
+USE work.ipbus.all;
+use work.ipbus_reg_types.all;
+
+ENTITY TPx3Logic IS
+	GENERIC( 
+      g_IPBUS_WIDTH         : positive := 32
+   );
+   PORT( 
+      clk_i      				: IN     std_logic;                                    -- ! Rising edge active
+		Start_T0sync_i			: IN 		std_logic;
+		T0syncLen_i				: IN 		std_logic_vector(g_IPBUS_WIDTH-1 DOWNTO 0);
+      logic_reset_i       	: IN     std_logic;                                    -- active high. Synchronous with clk_4x_logic
+      Busy_i					: IN     std_logic;
+		Veto_i					: IN     std_logic;
+		Shutter_o				: OUT 	std_logic;
+		T0sync_o 				: OUT 	std_logic
+   );
+	
+
+-- Declarations
+
+END ENTITY TPx3Logic ;
+
+--
+ARCHITECTURE rtl OF TPx3Logic IS
+
+	type state_values is (st0, st1);
+	signal pres_state, next_state: state_values;
+
+	signal s_Enable : std_logic := '0';
+	signal s_Shutter, s_Shutter_d1f, s_Shutter_d1, s_T0sync, s_T0sync_d1f : std_logic := '0';
+	signal s_Start_T0sync, s_Start_T0sync_d1, s_Start_T0sync_d2, s_Start_T0sync_d3 : std_logic;
+	signal Rst_T0sync, T0syncT : 		std_logic;   	--Load signal and flag for the T0sync
+	signal s_RunNumber : unsigned(g_IPBUS_WIDTH-1 downto 0) := (others => '0');  -- ! counters for runs
+	
+BEGIN
+
+	-----------------------------------------------------------------------------
+	-- Counters
+	-----------------------------------------------------------------------------
+	--T0sync counter
+	c_T0sync: entity work.CounterDown
+	generic map(
+		MAX_WIDTH => g_IPBUS_WIDTH
+	)
+	port map( 
+		Clk		=> clk_i,
+		Reset		=> '0',
+		Load 		=> Rst_T0sync,
+		InitVal 	=> std_logic_vector(unsigned(T0syncLen_i)-1),
+		Count		=> open,
+		Q 			=> T0syncT
+	);
+  
+  
+  -----------------------------------------------------------------------------
+  -- FSM register
+  -----------------------------------------------------------------------------
+	statereg: process(clk_i)
+	begin
+		if rising_edge(clk_i) then
+			pres_state <= next_state;  --Move to the next state
+		end if;
+	end process statereg;
+	
+	
+	-----------------------------------------------------------------------------
+	-- FSM combinational block
+	-----------------------------------------------------------------------------
+	fsm: process(pres_state, s_Start_T0sync, T0syncT)
+	begin
+		next_state<=pres_state;
+		s_T0sync	<='0';
+		Rst_T0sync <= '1';
+		
+		case pres_state is
+			when st0=>
+				if s_Start_T0sync = '1' then 
+					next_state <= st1; --Next state is "Whait for end of T0sync signal"
+				end if;
+			when st1 =>
+				Rst_T0sync <='0';
+				s_T0sync <='1';
+				if T0syncT = '1' then
+					next_state<=st0; --Next state is "Whait for end of T0-sync counter"
+				end if;
+			when others=>
+				next_state<=st0; --Next state is "Whait for T0sync start"
+		end case;
+	end process fsm;
+
+  
+	-----------------------------------------------------------------------------
+	-- Busy signals
+	-----------------------------------------------------------------------------
+	s_Enable <= not Veto_i;
+	s_Shutter <= not Busy_i and not Veto_i;
+	--Shutter_o <= s_Shutter;
+	--T0sync_o <= s_T0sync;
+  
+	
+	-----------------------------------------------------------------------------
+	-- Count runs and synchronization
+	-----------------------------------------------------------------------------
+	p_run_counter: process (clk_i )
+	begin  -- process p_run_counter
+		if rising_edge(clk_i) then
+			s_Start_T0sync_d1 <= Start_T0sync_i;
+			s_Start_T0sync_d2 <= s_Start_T0sync_d1;
+			s_Start_T0sync_d3 <= s_Start_T0sync_d2;
+			s_Start_T0sync <= s_Start_T0sync_d2 and ( not s_Start_T0sync_d3); 
+		
+			s_Shutter_d1 <= s_Shutter;
+		
+			if logic_reset_i = '1' then
+				s_RunNumber <= (others => '0');
+			elsif s_Shutter='1' and s_Shutter_d1='0' then
+				s_RunNumber <= s_RunNumber + 1;
+			end if;
+		end if;
+		-- Signals synchronous with falling edge clock
+		if falling_edge(clk_i) then
+			s_Shutter_d1f <= s_Shutter;
+			Shutter_o <= s_Shutter_d1f;
+			
+			s_T0sync_d1f <= s_T0sync;
+			T0sync_o <= s_T0sync_d1f;
+		end if;
+  end process p_run_counter;
+  
+END ARCHITECTURE rtl;
+
diff --git a/legacy/TLU_v1c/common/TPx3_iface_rtl.vhd b/legacy/TLU_v1c/common/TPx3_iface_rtl.vhd
new file mode 100644
index 00000000..f576ac1b
--- /dev/null
+++ b/legacy/TLU_v1c/common/TPx3_iface_rtl.vhd
@@ -0,0 +1,160 @@
+--! @file TPx3_iface_rtl.vhd
+--! @brief Simple module to interface AIDA TLU to LHCb TimePix3 telescope.
+--! Accepts T0 sync signal and shutter signal from telescope and re-transmits.
+--! @details
+--! IPBus address map:
+--! 00 - shutter. Bit 0. Output shutter = external shutter XOR ipbus shutter
+--! 01 - T0 write to pulse T0.
+--! @author David Cussans
+
+LIBRARY ieee;
+USE ieee.std_logic_1164.all;
+
+library unisim;
+use unisim.VComponents.all;
+
+USE work.ipbus.all;
+
+use work.ipbus_reg_types.all;
+
+
+entity TPx3_iface is
+
+  port (
+    clk_4x_i      : in  std_logic;    --! system clock
+    clk_4x_strobe : in  std_logic;    --! strobes high for one cycle every 4 of clk_4x
+    T0_p_i          : in  std_logic;  --! T0 signal from timepix telescope clk/sync system
+    T0_n_i          : in  std_logic;  --! T0 signal from timepix telescope clk/sync system
+    T0_o          : out std_logic;    --! T0 signal retimed onto system clock
+    shutter_p_i          : in  std_logic;  --! shutter signal from timepix telescope clk/sync system
+    shutter_n_i          : in  std_logic;  --! shutter signal from timepix telescope clk/sync system
+    shutter_o          : out std_logic;    --! shutter signal retimed onto system clock
+
+    ipbus_clk_i            : IN     std_logic; --! IPBus system clock
+    ipbus_i                : IN     ipb_wbus;
+    ipbus_o                : OUT    ipb_rbus
+          
+    );     
+
+end entity TPx3_iface;
+
+architecture rtl of TPx3_iface is
+
+  signal s_T0 , s_T0_d1 , s_T0_d2 , s_stretch_T0_in: std_logic := '0';  -- signal after IBufDS and sampled onto clk_4x
+  signal s_stretch_T0_in_sr : std_logic_vector(2 downto 0) := "111"; --! Gets shifted out by clk_4x logic. Loaded by T0ger_i
+  signal s_T0_out_sr : std_logic_vector(2 downto 0) := "111"; --! Gets shifted out by clk_4x logic. Loaded by strobe_4x_logic
+
+  signal s_shutter , s_shutter_d1 , s_shutter_d2 : std_logic := '0';  -- signal after IBufDS and sampled onto clk_4x
+
+  signal s_T0_ipbus , s_T0_ipbus_d1 , s_T0_ipbus_d2: std_logic := '0';  -- Signals that get combined with incoming hardware signals from TPIx3 telescope
+  signal s_shutter_ipbus , s_shutter_ipbus_d1 , s_shutter_ipbus_d2: std_logic := '0';  -- Signals that get combined with incoming hardware signals from TPIx3 telescope
+  signal s_external_signal_mask : std_logic_vector(ipbus_i.ipb_wdata'range) := ( others => '0'); --! Set bits to mask external signals : 0 to mask external T0 , set bit 1 to mask external shutter
+  signal s_maskExternalShutter , s_maskExternalT0 : std_logic := '0';  -- ! Set to 1 to mask external signals
+                                                                             
+  signal s_ipbus_ack      : std_logic := '0';  -- used to produce a delayed IPBus ack signal
+  
+begin  -- architecture rtl
+
+  --------------------
+  ipbus_write: process (ipbus_clk_i)
+  begin  -- process ipb_clk_i
+    if rising_edge(ipbus_clk_i) then
+
+      s_T0_ipbus <= '0';
+      if (ipbus_i.ipb_strobe = '1' and ipbus_i.ipb_write = '1') then
+
+        case ipbus_i.ipb_addr(1 downto 0) is
+          when "00" => s_shutter_ipbus <= ipbus_i.ipb_wdata(0) ; -- Set IPBus shutter
+          when "01" => s_T0_ipbus <= '1';
+          when "10" => s_external_signal_mask <= ipbus_i.ipb_wdata;
+          when others => null;
+        end case;
+          
+       end if;
+
+       s_ipbus_ack <= ipbus_i.ipb_strobe and not s_ipbus_ack;
+       
+    end if;
+  end process ipbus_write;
+
+  ipbus_o.ipb_ack <= s_ipbus_ack;
+  ipbus_o.ipb_err <= '0';
+
+
+    ------------------
+    
+  cmp_IBUFDS_T0 : IBUFDS
+      generic map (
+        DIFF_TERM => TRUE, -- Differential Termination 
+        IBUF_LOW_PWR => TRUE, -- Low power (TRUE) vs. performance (FALSE) setting for referenced I/O standards
+        IOSTANDARD => "LVDS_25")
+      port map (
+        O =>  s_T0,  -- Buffer output
+        I =>  T0_p_i,  -- Diff_p buffer input (connect directly to top-level port)
+        IB => T0_n_i -- Diff_n buffer input (connect directly to top-level port)
+      );
+        
+    p_T0_retime: process (clk_4x_i , clk_4x_strobe , s_T0) is
+  begin  -- process p_T0_retime
+    if rising_edge(clk_4x_i)  then
+
+      s_maskExternalShutter <= s_external_signal_mask(1);
+      s_maskExternalT0 <= s_external_signal_mask(0);
+        
+      s_T0_d1 <= s_T0;
+      s_T0_d2 <= s_T0_d1;
+
+      -- Register IPBus clocked signals onto clk 4x. So clk4x must be faster
+      -- than ipbus_clk for this to work.
+      s_T0_ipbus_d1 <= s_T0_ipbus;
+      s_T0_ipbus_d2 <= s_T0_ipbus_d1;
+
+      -- Shutter is a DC level, so clock speeds don't matter.
+      s_shutter_ipbus_d1 <= s_shutter_ipbus;
+      s_shutter_ipbus_d2 <= s_shutter_ipbus_d1;
+      
+      
+      -- Stretch T0_i pulse to 4 clock cycles on clk4x
+      if ( (( s_T0_d2 = '1' ) and ( s_maskExternalT0 = '0')) or ( s_T0_ipbus_d2 = '1' )) then
+        s_stretch_T0_in <= '1';
+        s_stretch_T0_in_sr <= "111";
+      else
+        s_stretch_T0_in <= s_stretch_T0_in_sr(0);
+        s_stretch_T0_in_sr <= '0' & s_stretch_T0_in_sr(s_stretch_T0_in_sr'left downto 1);
+      end if;
+
+      -- 
+      if (clk_4x_strobe  = '1') and ( s_stretch_T0_in = '1' ) then
+        T0_o <= '1';
+        s_T0_out_sr <= "111";
+      else
+        T0_o <= s_T0_out_sr(0);
+        s_T0_out_sr <= '0' & s_T0_out_sr(s_T0_out_sr'left downto 1);
+      end if;
+
+      
+    end if;
+  end process p_T0_retime;
+    
+  cmp_IBUFDS_shutter : IBUFDS
+      generic map (
+        DIFF_TERM => TRUE, -- Differential Termination 
+        IBUF_LOW_PWR => TRUE, -- Low power (TRUE) vs. performance (FALSE) setting for referenced I/O standards
+        IOSTANDARD => "LVDS_25")
+      port map (
+        O =>  s_shutter,  -- Buffer output
+        I =>  shutter_p_i,  -- Diff_p buffer input (connect directly to top-level port)
+        IB => shutter_n_i -- Diff_n buffer input (connect directly to top-level port)
+      );
+
+  -- Just retime onto the 4x clock. Probably should retime onto 1x clock.
+  p_shutter_retime: process (s_shutter , clk_4x_i) is
+  begin  -- process p_shutter_retime
+    if rising_edge(clk_4x_i)  then
+      s_shutter_d1 <= ( ( s_shutter and not s_maskExternalShutter ) xor s_shutter_ipbus );
+      s_shutter_d2 <= s_shutter_d1;
+      shutter_o    <= s_shutter_d2;
+    end if;
+  end process p_shutter_retime;
+
+end architecture rtl;
diff --git a/legacy/TLU_v1c/common/arrivalTimeLUT_rtl.vhd b/legacy/TLU_v1c/common/arrivalTimeLUT_rtl.vhd
new file mode 100644
index 00000000..f1b1acc0
--- /dev/null
+++ b/legacy/TLU_v1c/common/arrivalTimeLUT_rtl.vhd
@@ -0,0 +1,187 @@
+--=============================================================================
+--! @file arrivalTimeLUT_rtl.vhd
+--=============================================================================
+--
+-------------------------------------------------------------------------------
+-- --
+-- University of Bristol, High Energy Physics Group.
+-- --
+------------------------------------------------------------------------------- --
+-- VHDL Architecture work.ArivalTimeLUT.rtl
+--
+--------------------------------------------------------------------------------
+-- 
+-- Created using using Mentor Graphics HDL Designer(TM) 2010.3 (Build 21)
+--
+LIBRARY ieee;
+USE ieee.std_logic_1164.all;
+USE ieee.numeric_std.all;
+
+--! @brief Uses a look-up-table to convert the eight bits from the two 1:4 deserializers\n
+--! into a 5-bit time ( 3 bits from the position in 8-bit deserialized data \n
+--! plus two bits from position w.r.t. the strobe_4x_logic_i signal ( one pulse
+--! every 4 cycles of clk_4x_logic_i 
+--
+--! @author David Cussans , David.Cussans@bristol.ac.uk
+--
+--! @date 12:46:34 11/21/12
+--
+--! @version v0.1
+--
+--! @details
+--! Rising and falling edge times encoded as a LUT. Contents:
+--! MRFrrrfff
+--! \li M = multiple edges present ( more than one rising or falling edge)
+--! \li R = at least one rising edge present
+--! \li F = at least one falling edge present.
+--! \li rrr = time of first rising edge
+--! \li fff = time of first falling edge
+ENTITY arrivalTimeLUT IS
+   GENERIC( 
+      g_NUM_FINE_BITS   : positive := 3;
+      g_NUM_COARSE_BITS : positive := 2
+   );
+   PORT( 
+      clk_4x_logic_i           : IN     std_logic;                                                        --! Rising edge active
+      strobe_4x_logic_i        : IN     std_logic;                                                        --! Pulses high once every 4 cycles of clk_4x_logic
+      deserialized_data_i      : IN     std_logic_vector (8 DOWNTO 0);                                    --! Output from the two 4-bit deserializers, concatenated with most recent bit of previous clock cycle. Clocked by clk_4x_logic_i . bit-8 is the most recent data
+      first_rising_edge_time_o : OUT    std_logic_vector (g_NUM_FINE_BITS+g_NUM_COARSE_BITS-1 DOWNTO 0);  --! Position of rising edge w.r.t. 40MHz strobe. Clocked by clk_4x_logic_i
+      last_falling_edge_time_o : OUT    std_logic_vector (g_NUM_FINE_BITS+g_NUM_COARSE_BITS-1 DOWNTO 0);  --! Position of rising edge w.r.t. 40MHz strobe. Clocked by clk_4x_logic_i
+      rising_edge_o            : OUT    std_logic;                                                        --! goes high if there is a rising edge in the data. Clocked by clk_4x_logic_i
+      falling_edge_o           : OUT    std_logic;                                                        --! goes high if there is a falling edge in the data.Clocked by clk_4x_logic_i
+      multiple_edges_o         : OUT    std_logic                                                         --! there is more than one rising or falling edge transition.
+   );
+
+-- Declarations
+
+END ENTITY arrivalTimeLUT ;
+
+--
+ARCHITECTURE rtl OF arrivalTimeLUT IS
+
+  constant c_FALLING_EDGE_BIT : positive := 2*g_NUM_FINE_BITS;  --! Bit position of bit set when falling edge detected
+  constant c_RISING_EDGE_BIT : positive :=  2*g_NUM_FINE_BITS+1;  --! Bit position of bit set when rising edge detected
+  constant c_MULTI_EDGE_BIT : positive :=  2*g_NUM_FINE_BITS+2;  --! Bit position of bit set when rising edge detected
+
+
+  signal s_coarse_bits : std_logic_vector(g_NUM_COARSE_BITS-1 downto 0) := "00";  --! phase w.r.t. strobe
+
+  signal s_LUT_ENTRY : std_logic_vector(g_NUM_FINE_BITS*2 +3-1 downto 0);  -- stores intermediate LUT value.
+  
+  type t_LUT is array (natural range <>) of std_logic_vector(g_NUM_FINE_BITS*2 + 3 -1 downto 0);
+  --! Lookup table for arrival time and rising/falling edge detection (3bits
+  --! for position in 9-bit deserialized data plus two bits for rising/falling 
+  constant c_LUT : t_LUT(0 to 511) := (
+    "000000000", "001000000", "011000001", "001000001", "011001010", "011001010", "011000010", "001000010", --0 [0, 7]
+    "011010011", "011010011", "111000011", "011010011", "011001011", "011001011", "011000011", "001000011", --1 [8, 15]
+    "011011100", "011011100", "111000100", "011011100", "111001100", "111001100", "111000100", "011011100", --2 [16, 23]
+    "011010100", "011010100", "111000100", "011010100", "011001100", "011001100", "011000100", "001000100", --3 [24, 31]
+    "011100101", "011100101", "111000101", "011100101", "111001101", "111001101", "111000101", "011100101", --4 [32, 39]
+    "111010101", "111010101", "111000101", "111010101", "111001101", "111001101", "111000101", "011100101", --5 [40, 47]
+    "011011101", "011011101", "111000101", "011011101", "111001101", "111001101", "111000101", "011011101", --6 [48, 55]
+    "011010101", "011010101", "111000101", "011010101", "011001101", "011001101", "011000101", "001000101", --7 [56, 63]
+    "011101110", "011101110", "111000110", "011101110", "111001110", "111001110", "111000110", "011101110", --8 [64, 71]
+    "111010110", "111010110", "111000110", "111010110", "111001110", "111001110", "111000110", "011101110", --9 [72, 79]
+    "111011110", "111011110", "111000110", "111011110", "111001110", "111001110", "111000110", "111011110", --10 [80, 87]
+    "111010110", "111010110", "111000110", "111010110", "111001110", "111001110", "111000110", "011101110", --11 [88, 95]
+    "011100110", "011100110", "111000110", "011100110", "111001110", "111001110", "111000110", "011100110", --12 [96, 103]
+    "111010110", "111010110", "111000110", "111010110", "111001110", "111001110", "111000110", "011100110", --13 [104, 111]
+    "011011110", "011011110", "111000110", "011011110", "111001110", "111001110", "111000110", "011011110", --14 [112, 119]
+    "011010110", "011010110", "111000110", "011010110", "011001110", "011001110", "011000110", "001000110", --15 [120, 127]
+    "011110111", "011110111", "111000111", "011110111", "111001111", "111001111", "111000111", "011110111", --16 [128, 135]
+    "111010111", "111010111", "111000111", "111010111", "111001111", "111001111", "111000111", "011110111", --17 [136, 143]
+    "111011111", "111011111", "111000111", "111011111", "111001111", "111001111", "111000111", "111011111", --18 [144, 152]
+    "111010111", "111010111", "111000111", "111010111", "111001111", "111001111", "111000111", "011110111", --19 [152, 159]
+    "111100111", "111100111", "111000111", "111100111", "111001111", "111001111", "111000111", "111100111", --20 [160, 167]
+    "111010111", "111010111", "111000111", "111010111", "111001111", "111001111", "111000111", "111100111", --21 [168, 175]
+    "111011111", "111011111", "111000111", "111011111", "111001111", "111001111", "111000111", "111011111", --22 [176, 183]
+    "111010111", "111010111", "111000111", "111010111", "111001111", "111001111", "111000111", "011110111", --23 [184, 191]
+    "011101111", "011101111", "111000111", "011101111", "111001111", "111001111", "111000111", "011101111", --24 [192, 199]
+    "111010111", "111010111", "111000111", "111010111", "111001111", "111001111", "111000111", "011101111", --25 [200, 207]
+    "111011111", "111011111", "111000111", "111011111", "111001111", "111001111", "111000111", "111011111", --26 [208, 215]
+    "111010111", "111010111", "111000111", "111010111", "111001111", "111001111", "111000111", "011101111", --27 [216, 223]
+    "011100111", "011100111", "111000111", "011100111", "111001111", "111001111", "111000111", "011100111", --28 [224, 231]
+    "111010111", "111010111", "111000111", "111010111", "111001111", "111001111", "111000111", "011100111", --29 [232, 239]
+    "011011111", "011011111", "111000111", "011011111", "111001111", "111001111", "111000111", "011011111", --30 [240, 247]
+    "011010111", "011010111", "111000111", "011010111", "011001111", "011001111", "011000111", "001000111", --31 [248, 255]
+    "010111000", "011111000", "111000001", "011111001", "111001010", "111001010", "111000010", "011111010", --32 [256, 263]
+    "111010011", "111010011", "111000011", "111010011", "111001011", "111001011", "111000011", "011111011", --33 [264, 271]
+    "111011100", "111011100", "111000100", "111011100", "111001100", "111001100", "111000100", "111011100", --34 [272, 279]
+    "111010100", "111010100", "111000100", "111010100", "111001100", "111001100", "111000100", "011111100", --35 [280, 287]
+    "111100101", "111100101", "111000101", "111100101", "111001101", "111001101", "111000101", "111100101", --36 [288, 295]
+    "111010101", "111010101", "111000101", "111010101", "111001101", "111001101", "111000101", "111100101", --37 [296, 303]
+    "111011101", "111011101", "111000101", "111011101", "111001101", "111001101", "111000101", "111011101", --38 [304, 311]
+    "111010101", "111010101", "111000101", "111010101", "111001101", "111001101", "111000101", "011111101", --39 [312, 319]
+    "111101110", "111101110", "111000110", "111101110", "111001110", "111001110", "111000110", "111101110", --40 [320, 327]
+    "111010110", "111010110", "111000110", "111010110", "111001110", "111001110", "111000110", "111101110", --41 [328, 333]
+    "111011110", "111011110", "111000110", "111011110", "111001110", "111001110", "111000110", "111011110", --42 [336, 343]
+    "111010110", "111010110", "111000110", "111010110", "111001110", "111001110", "111000110", "111101110", --43 [344, 351]
+    "111100110", "111100110", "111000110", "111100110", "111001110", "111001110", "111000110", "111100110", --44 [352, 359]
+    "111010110", "111010110", "111000110", "111010110", "111001110", "111001110", "111000110", "111100110", --45 [360, 367]
+    "111011110", "111011110", "111000110", "111011110", "111001110", "111001110", "111000110", "111011110", --46 [368, 375]
+    "111010110", "111010110", "111000110", "111010110", "111001110", "111001110", "111000110", "011111110", --47 [376, 383]
+    "010110000", "011110000", "111000001", "011110001", "111001010", "111001010", "111000010", "011110010", --48 [384, 391]
+    "111010011", "111010011", "111000011", "111010011", "111001011", "111001011", "111000011", "011110011", --49 [392, 399]
+    "111011100", "111011100", "111000100", "111011100", "111001100", "111001100", "111000100", "111011100", --50 [400, 407]
+    "111010100", "111010100", "111000100", "111010100", "111001100", "111001100", "111000100", "011110100", --51 [408, 415]
+    "111100101", "111100101", "111000101", "111100101", "111001101", "111001101", "111000101", "111100101", --52 [416, 423]
+    "111010101", "111010101", "111000101", "111010101", "111001101", "111001101", "111000101", "111100101", --53 [424, 431]
+    "111011101", "111011101", "111000101", "111011101", "111001101", "111001101", "111000101", "111011101", --54 [432, 439]
+    "111010101", "111010101", "111000101", "111010101", "111001101", "111001101", "111000101", "011110101", --55 [440, 447]
+    "010101000", "011101000", "111000001", "011101001", "111001010", "111001010", "111000010", "011101010", --56 [448, 455]
+    "111010011", "111010011", "111000011", "111010011", "111001011", "111001011", "111000011", "011101011", --57 [456, 463]
+    "111011100", "111011100", "111000100", "111011100", "111001100", "111001100", "111000100", "111011100", --58 [464, 471]
+    "111010100", "111010100", "111000100", "111010100", "111001100", "111001100", "111000100", "011101100", --59 [472, 479]
+    "010100000", "011100000", "111000001", "011100001", "111001010", "111001010", "111000010", "011100010", --60 [480, 487]
+    "111010011", "111010011", "111000011", "111010011", "111001011", "111001011", "111000011", "011100011", --61 [488, 495]
+    "010011000", "011011000", "111000001", "011011001", "111001010", "111001010", "111000010", "011011010", --62 [496, 503]
+    "010010000", "011010000", "111000001", "011010001", "010001000", "011001000", "010000000", "000000000" -- 63 [504, 511]
+    );  
+  
+BEGIN
+
+  -- purpose: uses the deserialized data as a index into
+  --          a lookup table holding the position of the first rising edge (if any)
+  --          and if there is a rising or falling edge
+  -- type   : combinational
+  -- inputs : clk_4x_logic_i
+  -- outputs: arrival_time_o , rising_edge_o , falling_edge_o
+  examine_lut: process (clk_4x_logic_i) -- , deserialized_data_i)
+--    variable v_LUT_entry : std_logic_vector(g_NUM_FINE_BITS+2-1 downto 0);  --! Entry in LUT pointed to by deserialized data
+  begin  -- process examine_lut
+    
+--    v_LUT_entry := c_LUT(to_integer(unsigned(deserialized_data_i)));
+
+    if rising_edge(clk_4x_logic_i) then
+      s_LUT_ENTRY <= c_LUT(to_integer(unsigned(deserialized_data_i)));
+      first_rising_edge_time_o <= s_coarse_bits & s_LUT_ENTRY(g_NUM_FINE_BITS*2-1 downto g_NUM_FINE_BITS);
+      last_falling_edge_time_o <= s_coarse_bits & s_LUT_ENTRY(g_NUM_FINE_BITS-1 downto 0);
+      rising_edge_o  <= s_LUT_ENTRY(c_RISING_EDGE_BIT);
+      falling_edge_o <= s_LUT_ENTRY(c_FALLING_EDGE_BIT);
+      multiple_edges_o <= s_LUT_ENTRY(c_MULTI_EDGE_BIT); 
+    end if;
+
+  end process examine_lut;
+  
+  --! Coarse time stamp. Phase w.r.t. strobe
+--	c_coarse_ts : entity work.CounterUp
+--   PORT MAP (
+--     clk   => clk_4x_logic_i,
+--     ce    => '1',
+--     sinit => strobe_4x_logic_i, --'0',
+--	  q(31 downto 2) => open,
+--     q(1 downto 0)  => s_coarse_bits
+--	);
+--  
+  	c_coarse_ts : entity work.CounterWithReset
+  	GENERIC MAP (
+  	  g_COUNTER_WIDTH => 2 )
+   PORT MAP (
+     clock_i   => clk_4x_logic_i,
+     enable_i   => '1',
+     reset_i => strobe_4x_logic_i,        -- Synchronous reset, so the counter will present result_o="11" when reset_i='1'
+     result_o => s_coarse_bits
+	);
+	
+END ARCHITECTURE rtl;
+
diff --git a/legacy/TLU_v1c/common/ax3_pm3_mTLUvC.xdc b/legacy/TLU_v1c/common/ax3_pm3_mTLUvC.xdc
new file mode 100644
index 00000000..8ba10646
--- /dev/null
+++ b/legacy/TLU_v1c/common/ax3_pm3_mTLUvC.xdc
@@ -0,0 +1,377 @@
+# -------------------------------------------------------------------------------------------------
+# -- Project             : Mars AX3 
+# -- File description    : User Constraint File for Mars PM3 Base Board
+# -- File name           : mars_ax3_pm3.xdc
+# -- Authors             : Kanishk Sugand / Marc Oberholzer
+# -------------------------------------------------------------------------------------------------
+# -- Copyright © 2012 by Enclustra GmbH, Switzerland. All rights are reserved. 
+# -- Unauthorized duplication of this document, in whole or in part, by any means is prohibited
+# -- without the prior written permission of Enclustra GmbH, Switzerland.
+# -- 
+# -- Although Enclustra GmbH believes that the information included in this publication is correct
+# -- as of the date of publication, Enclustra GmbH reserves the right to make changes at any time
+# -- without notice.
+# -- 
+# -- All information in this document may only be published by Enclustra GmbH, Switzerland.
+# -------------------------------------------------------------------------------------------------
+# -- Notes:
+# -- 1. For best I/O timing, it is necessary to set the following options in Xilinx ISE/PlanAhead: 
+# --    map option "Pack I/O registers into IOBs" to "Inputs and Outputs"
+# -- 2. The IO standards for banks 0, 2 and 3 are only valid if VCCO_0/VCCO_2/VCCO_3 = 3.3 V
+# -------------------------------------------------------------------------------------------------
+# -- File history:
+# --
+# -- Version | Date       | Author             | Remarks
+# -- ----------------------------------------------------------------------------------------------
+# -- 1.0     | 11.4.14    | C. Glattfelder     | converted from UCF
+# -------------------------------------------------------------------------------------------------
+
+# -------------------------------------------------------------------------------------------------
+# mars ax3: global clock inputs
+# -------------------------------------------------------------------------------------------------
+
+set_property PACKAGE_PIN P17 [get_ports {Clk_50}]
+set_property IOSTANDARD LVCMOS33 [get_ports {Clk_50}]
+set_property PACKAGE_PIN L16 [get_ports {Fpga_Emcclk}]
+set_property IOSTANDARD LVCMOS33 [get_ports {Fpga_Emcclk}]
+
+# -------------------------------------------------------------------------------------------------
+# mars ax3: ddr3 sdram
+# -------------------------------------------------------------------------------------------------
+
+set_property IOSTANDARD SSTL15 [get_ports {Ddr3_Ba[0]}]
+set_property IOSTANDARD SSTL15 [get_ports {Ddr3_Ba[1]}]
+set_property IOSTANDARD SSTL15 [get_ports {Ddr3_A[9]}]
+set_property IOSTANDARD SSTL15 [get_ports {Ddr3_A[8]}]
+set_property IOSTANDARD DIFF_SSTL15 [get_ports {Ddr3_Dqs_P[1]}]
+set_property IOSTANDARD SSTL15 [get_ports {Ddr3_Ba[2]}]
+set_property IOSTANDARD SSTL15 [get_ports {Ddr3_A[7]}]
+set_property IOSTANDARD SSTL15 [get_ports {Ddr3_A[6]}]
+set_property IOSTANDARD SSTL15 [get_ports {Ddr3_A[5]}]
+set_property IOSTANDARD SSTL15 [get_ports Ddr3_Cas_N]
+set_property IOSTANDARD DIFF_SSTL15 [get_ports {Ddr3_Dqs_P[0]}]
+set_property IOSTANDARD SSTL15 [get_ports Ddr3_Odt]
+set_property IOSTANDARD SSTL15 [get_ports {Ddr3_A[4]}]
+set_property IOSTANDARD SSTL15 [get_ports Ddr3_Cke]
+set_property IOSTANDARD SSTL15 [get_ports {Ddr3_A[3]}]
+set_property IOSTANDARD SSTL15 [get_ports {Ddr3_A[2]}]
+set_property IOSTANDARD SSTL15 [get_ports Ddr3_We_N]
+set_property IOSTANDARD DIFF_SSTL15 [get_ports Ddr3_Clk_N]
+set_property IOSTANDARD SSTL15 [get_ports Ddr3_Ras_N]
+set_property IOSTANDARD SSTL15 [get_ports {Ddr3_A[13]}]
+set_property IOSTANDARD SSTL15 [get_ports {Ddr3_A[12]}]
+set_property IOSTANDARD DIFF_SSTL15 [get_ports Ddr3_Clk_P]
+set_property IOSTANDARD DIFF_SSTL15 [get_ports {Ddr3_Dqs_N[0]}]
+set_property IOSTANDARD SSTL15 [get_ports {Ddr3_A[11]}]
+set_property IOSTANDARD SSTL15 [get_ports Ddr3_Reset_N]
+set_property IOSTANDARD SSTL15 [get_ports {Ddr3_Dm[0]}]
+set_property IOSTANDARD SSTL15 [get_ports {Ddr3_A[10]}]
+set_property IOSTANDARD SSTL15 [get_ports {Ddr3_A[1]}]
+set_property IOSTANDARD SSTL15 [get_ports {Ddr3_A[0]}]
+set_property IOSTANDARD SSTL15 [get_ports {Ddr3_Dm[1]}]
+set_property IOSTANDARD DIFF_SSTL15 [get_ports {Ddr3_Dqs_N[1]}]
+set_property IOSTANDARD SSTL15 [get_ports {Ddr3_Dq[0]}]
+set_property IOSTANDARD SSTL15 [get_ports {Ddr3_Dq[9]}]
+set_property IOSTANDARD SSTL15 [get_ports {Ddr3_Dq[1]}]
+set_property IOSTANDARD SSTL15 [get_ports {Ddr3_Dq[8]}]
+set_property IOSTANDARD SSTL15 [get_ports {Ddr3_Dq[10]}]
+set_property IOSTANDARD SSTL15 [get_ports {Ddr3_Dq[7]}]
+set_property IOSTANDARD SSTL15 [get_ports {Ddr3_Dq[11]}]
+set_property IOSTANDARD SSTL15 [get_ports {Ddr3_Dq[6]}]
+set_property IOSTANDARD SSTL15 [get_ports {Ddr3_Dq[12]}]
+set_property IOSTANDARD SSTL15 [get_ports {Ddr3_Dq[5]}]
+set_property IOSTANDARD SSTL15 [get_ports {Ddr3_Dq[13]}]
+set_property IOSTANDARD SSTL15 [get_ports {Ddr3_Dq[4]}]
+set_property IOSTANDARD SSTL15 [get_ports {Ddr3_Dq[14]}]
+set_property IOSTANDARD SSTL15 [get_ports {Ddr3_Dq[3]}]
+set_property IOSTANDARD SSTL15 [get_ports {Ddr3_Dq[15]}]
+set_property IOSTANDARD SSTL15 [get_ports {Ddr3_Dq[2]}]
+set_property PACKAGE_PIN A15 [get_ports {Ddr3_Dq[2]}]
+set_property PACKAGE_PIN E15 [get_ports {Ddr3_Dq[3]}]
+set_property PACKAGE_PIN B11 [get_ports {Ddr3_Dq[15]}]
+set_property PACKAGE_PIN B18 [get_ports {Ddr3_Dq[4]}]
+set_property PACKAGE_PIN F14 [get_ports {Ddr3_Dq[14]}]
+set_property PACKAGE_PIN B17 [get_ports {Ddr3_Dq[5]}]
+set_property PACKAGE_PIN A11 [get_ports {Ddr3_Dq[13]}]
+set_property PACKAGE_PIN A16 [get_ports {Ddr3_Dq[6]}]
+set_property PACKAGE_PIN F13 [get_ports {Ddr3_Dq[12]}]
+set_property PACKAGE_PIN B16 [get_ports {Ddr3_Dq[7]}]
+set_property PACKAGE_PIN D14 [get_ports {Ddr3_Dq[11]}]
+set_property PACKAGE_PIN B14 [get_ports {Ddr3_Dq[8]}]
+set_property PACKAGE_PIN B13 [get_ports {Ddr3_Dq[10]}]
+set_property PACKAGE_PIN C14 [get_ports {Ddr3_Dq[9]}]
+set_property PACKAGE_PIN E16 [get_ports {Ddr3_Dq[1]}]
+set_property PACKAGE_PIN A14 [get_ports {Ddr3_Dqs_N[0]}]
+set_property PACKAGE_PIN A18 [get_ports {Ddr3_Dq[0]}]
+set_property PACKAGE_PIN D12 [get_ports {Ddr3_Dm[1]}]
+set_property PACKAGE_PIN D15 [get_ports {Ddr3_Dm[0]}]
+set_property PACKAGE_PIN A13 [get_ports {Ddr3_Dqs_P[0]}]
+set_property PACKAGE_PIN C16 [get_ports Ddr3_Clk_P]
+set_property PACKAGE_PIN C17 [get_ports Ddr3_Clk_N]
+set_property PACKAGE_PIN G14 [get_ports Ddr3_Cke]
+set_property PACKAGE_PIN B12 [get_ports {Ddr3_Dqs_N[1]}]
+set_property PACKAGE_PIN F16 [get_ports Ddr3_Cas_N]
+set_property PACKAGE_PIN K15 [get_ports {Ddr3_Ba[2]}]
+set_property PACKAGE_PIN H14 [get_ports {Ddr3_Ba[1]}]
+set_property PACKAGE_PIN C12 [get_ports {Ddr3_Dqs_P[1]}]
+set_property PACKAGE_PIN D17 [get_ports {Ddr3_Ba[0]}]
+set_property PACKAGE_PIN F18 [get_ports {Ddr3_A[9]}]
+set_property PACKAGE_PIN H17 [get_ports {Ddr3_A[8]}]
+set_property PACKAGE_PIN K16 [get_ports Ddr3_Odt]
+set_property PACKAGE_PIN E18 [get_ports {Ddr3_A[7]}]
+set_property PACKAGE_PIN K13 [get_ports {Ddr3_A[6]}]
+set_property PACKAGE_PIN E17 [get_ports {Ddr3_A[5]}]
+set_property PACKAGE_PIN F15 [get_ports Ddr3_Ras_N]
+set_property PACKAGE_PIN J13 [get_ports {Ddr3_A[4]}]
+set_property PACKAGE_PIN D18 [get_ports {Ddr3_A[3]}]
+set_property PACKAGE_PIN J18 [get_ports {Ddr3_A[2]}]
+set_property PACKAGE_PIN G13 [get_ports Ddr3_Reset_N]
+set_property PACKAGE_PIN G17 [get_ports {Ddr3_A[13]}]
+set_property PACKAGE_PIN H16 [get_ports {Ddr3_A[12]}]
+set_property PACKAGE_PIN G18 [get_ports {Ddr3_A[11]}]
+set_property PACKAGE_PIN J15 [get_ports Ddr3_We_N]
+set_property PACKAGE_PIN G16 [get_ports {Ddr3_A[10]}]
+set_property PACKAGE_PIN J14 [get_ports {Ddr3_A[1]}]
+set_property PACKAGE_PIN J17 [get_ports {Ddr3_A[0]}]
+
+# -------------------------------------------------------------------------------------------------
+# mars ax3: ethernet
+# -------------------------------------------------------------------------------------------------
+
+set_property IOSTANDARD LVCMOS33 [get_ports {Eth_Txd[1]}]
+set_property IOSTANDARD LVCMOS33 [get_ports Eth_Rxc]
+set_property IOSTANDARD LVCMOS33 [get_ports Eth_Rst_N]
+set_property IOSTANDARD LVCMOS33 [get_ports {Eth_Rxd[0]}]
+set_property IOSTANDARD LVCMOS33 [get_ports {Eth_Txd[0]}]
+set_property IOSTANDARD LVCMOS33 [get_ports {Eth_Rxd[1]}]
+set_property IOSTANDARD LVCMOS33 [get_ports Eth_Mdio]
+set_property IOSTANDARD LVCMOS33 [get_ports {Eth_Rxd[2]}]
+set_property IOSTANDARD LVCMOS33 [get_ports Eth_Mdc]
+set_property IOSTANDARD LVCMOS33 [get_ports {Eth_Rxd[3]}]
+set_property IOSTANDARD LVCMOS33 [get_ports Eth_Txc]
+set_property IOSTANDARD LVCMOS33 [get_ports {Eth_Txd[2]}]
+set_property IOSTANDARD LVCMOS15 [get_ports Eth_Link_N]
+set_property IOSTANDARD LVCMOS33 [get_ports Eth_Tx_Ctl]
+set_property IOSTANDARD LVCMOS33 [get_ports Eth_Int_N]
+set_property IOSTANDARD LVCMOS33 [get_ports Eth_Rx_Ctl]
+set_property IOSTANDARD LVCMOS33 [get_ports {Eth_Txd[3]}]
+set_property PACKAGE_PIN T16 [get_ports Eth_Tx_Ctl]
+set_property PACKAGE_PIN R18 [get_ports {Eth_Txd[0]}]
+set_property PACKAGE_PIN V16 [get_ports {Eth_Rxd[3]}]
+set_property PACKAGE_PIN V15 [get_ports {Eth_Rxd[2]}]
+set_property PACKAGE_PIN V17 [get_ports {Eth_Rxd[1]}]
+set_property PACKAGE_PIN T18 [get_ports {Eth_Txd[1]}]
+set_property PACKAGE_PIN U16 [get_ports {Eth_Rxd[0]}]
+set_property PACKAGE_PIN T14 [get_ports Eth_Rxc]
+set_property PACKAGE_PIN R16 [get_ports Eth_Rx_Ctl]
+set_property PACKAGE_PIN U17 [get_ports {Eth_Txd[2]}]
+set_property PACKAGE_PIN M13 [get_ports Eth_Rst_N]
+set_property PACKAGE_PIN N14 [get_ports Eth_Mdio]
+set_property PACKAGE_PIN P14 [get_ports Eth_Mdc]
+set_property PACKAGE_PIN U18 [get_ports {Eth_Txd[3]}]
+set_property PACKAGE_PIN C15 [get_ports Eth_Link_N]
+set_property PACKAGE_PIN N16 [get_ports Eth_Txc]
+set_property PACKAGE_PIN T15 [get_ports Eth_Int_N]
+
+# -------------------------------------------------------------------------------------------------
+# mars ax3: i2c
+# -------------------------------------------------------------------------------------------------
+
+set_property PACKAGE_PIN R17 [get_ports I2c_Int_N]
+set_property IOSTANDARD LVCMOS33 [get_ports I2c_Int_N]
+set_property PACKAGE_PIN N17 [get_ports I2c_Scl]
+set_property IOSTANDARD LVCMOS33 [get_ports I2c_Scl]
+set_property PACKAGE_PIN P18 [get_ports I2c_Sda]
+set_property IOSTANDARD LVCMOS33 [get_ports I2c_Sda]
+
+# -------------------------------------------------------------------------------------------------
+# mars ax3: spi flash
+# -------------------------------------------------------------------------------------------------
+
+set_property PACKAGE_PIN L13 [get_ports Flash_Cs_N]
+set_property IOSTANDARD LVCMOS33 [get_ports Flash_Cs_N]
+set_property PACKAGE_PIN K17 [get_ports Flash_Di]
+set_property IOSTANDARD LVCMOS33 [get_ports Flash_Di]
+set_property PACKAGE_PIN M14 [get_ports Flash_Hold_N]
+set_property IOSTANDARD LVCMOS33 [get_ports Flash_Hold_N]
+set_property PACKAGE_PIN L14 [get_ports Flash_Wp_N]
+set_property IOSTANDARD LVCMOS33 [get_ports Flash_Wp_N]
+set_property PACKAGE_PIN R10 [get_ports Flash_Clk]
+set_property IOSTANDARD LVCMOS33 [get_ports Flash_Clk]
+set_property PACKAGE_PIN K18 [get_ports Flash_Do]
+set_property IOSTANDARD LVCMOS33 [get_ports Flash_Do]
+
+# -------------------------------------------------------------------------------------------------
+# mars ax3: led		
+# -------------------------------------------------------------------------------------------------
+
+set_property IOSTANDARD LVCMOS33 [get_ports {Led_N[2]}]
+set_property IOSTANDARD LVCMOS33 [get_ports {Led_N[1]}]
+set_property IOSTANDARD LVCMOS33 [get_ports {Led_N[0]}]
+set_property IOSTANDARD LVCMOS33 [get_ports {Led_N[3]}]
+set_property PACKAGE_PIN M17 [get_ports {Led_N[1]}]
+set_property PACKAGE_PIN M16 [get_ports {Led_N[0]}]
+set_property PACKAGE_PIN M18 [get_ports {Led_N[3]}]
+set_property PACKAGE_PIN L18 [get_ports {Led_N[2]}]
+
+# -------------------------------------------------------------------------------------------------
+# mars ax3: system		
+# -------------------------------------------------------------------------------------------------
+
+set_property PACKAGE_PIN R11 [get_ports Pwr_Good]
+set_property IOSTANDARD LVCMOS33 [get_ports Pwr_Good]
+set_property PACKAGE_PIN N15 [get_ports {Reset_N}]
+set_property IOSTANDARD LVCMOS33 [get_ports {Reset_N}]
+
+# -------------------------------------------------------------------------------------------------
+# mars pm3: fmc lpc connector
+# -------------------------------------------------------------------------------------------------
+set_property PACKAGE_PIN T4 [get_ports {CLK_TO_FPGA_N}]
+set_property PACKAGE_PIN T5 [get_ports {CLK_TO_FPGA_P}]
+set_property PACKAGE_PIN D3 [get_ports {CLK_FROM_FPGA_N}]
+set_property PACKAGE_PIN E3 [get_ports {CLK_FROM_FPGA_P}]
+
+set_property PACKAGE_PIN N5 [get_ports {CLK_GEN_LOL_N}]
+set_property PACKAGE_PIN C1 [get_ports {CLK_GEN_RST_N}]
+set_property PACKAGE_PIN C2 [get_ports {I2C_RESET_N}]
+set_property PACKAGE_PIN F6 [get_ports {GPIO}]
+
+set_property PACKAGE_PIN P5 [get_ports {CONT_TO_FPGA[0]}]
+set_property PACKAGE_PIN P3 [get_ports {CONT_TO_FPGA[1]}]
+set_property PACKAGE_PIN N6 [get_ports {CONT_TO_FPGA[2]}]
+set_property PACKAGE_PIN L5 [get_ports {CONT_TO_FPGA[3]}]
+
+# Warning - can't find CONT_FROM_FPGA[0] in Allegro netlist ....
+set_property PACKAGE_PIN P4 [get_ports {CONT_FROM_FPGA[1]}]
+set_property PACKAGE_PIN M6 [get_ports {CONT_FROM_FPGA[2]}]
+set_property PACKAGE_PIN L6 [get_ports {CONT_FROM_FPGA[3]}]
+
+set_property PACKAGE_PIN M1 [get_ports {SPARE_TO_FPGA[0]}]
+set_property PACKAGE_PIN N4 [get_ports {SPARE_TO_FPGA[1]}]
+set_property PACKAGE_PIN N1 [get_ports {SPARE_TO_FPGA[2]}]
+set_property PACKAGE_PIN M2 [get_ports {SPARE_TO_FPGA[3]}]
+
+set_property PACKAGE_PIN L1 [get_ports {SPARE_FROM_FPGA[0]}]
+set_property PACKAGE_PIN M4 [get_ports {SPARE_FROM_FPGA[1]}]
+set_property PACKAGE_PIN N2 [get_ports {SPARE_FROM_FPGA[2]}]
+set_property PACKAGE_PIN M3 [get_ports {SPARE_FROM_FPGA[3]}]
+
+set_property PACKAGE_PIN R5 [get_ports {TRIG_TO_FPGA[0]}]
+set_property PACKAGE_PIN R2 [get_ports {TRIG_TO_FPGA[1]}]
+set_property PACKAGE_PIN T1 [get_ports {TRIG_TO_FPGA[2]}]
+set_property PACKAGE_PIN V1 [get_ports {TRIG_TO_FPGA[3]}]
+
+set_property PACKAGE_PIN R6 [get_ports {TRIG_FROM_FPGA[0]}]
+set_property PACKAGE_PIN P2 [get_ports {TRIG_FROM_FPGA[1]}]
+set_property PACKAGE_PIN R1 [get_ports {TRIG_FROM_FPGA[2]}]
+set_property PACKAGE_PIN U1 [get_ports {TRIG_FROM_FPGA[3]}]
+
+set_property PACKAGE_PIN T6 [get_ports {BUSY_TO_FPGA[0]}]
+set_property PACKAGE_PIN U3 [get_ports {BUSY_TO_FPGA[1]}]
+set_property PACKAGE_PIN T8 [get_ports {BUSY_TO_FPGA[2]}]
+set_property PACKAGE_PIN L4 [get_ports {BUSY_TO_FPGA[3]}]
+
+set_property PACKAGE_PIN R7 [get_ports {BUSY_FROM_FPGA[0]}]
+set_property PACKAGE_PIN U4 [get_ports {BUSY_FROM_FPGA[1]}]
+set_property PACKAGE_PIN R8 [get_ports {BUSY_FROM_FPGA[2]}]
+set_property PACKAGE_PIN K5 [get_ports {BUSY_FROM_FPGA[3]}]
+
+set_property PACKAGE_PIN L3 [get_ports {DUT_CLK_TO_FPGA[0]}]
+set_property PACKAGE_PIN F3 [get_ports {DUT_CLK_TO_FPGA[1]}]
+set_property PACKAGE_PIN D2 [get_ports {DUT_CLK_TO_FPGA[2]}]
+set_property PACKAGE_PIN G3 [get_ports {DUT_CLK_TO_FPGA[3]}]
+
+set_property PACKAGE_PIN K3 [get_ports {DUT_CLK_FROM_FPGA_P[0]}]
+set_property PACKAGE_PIN F4 [get_ports {DUT_CLK_FROM_FPGA_P[1]}]
+set_property PACKAGE_PIN E2 [get_ports {DUT_CLK_FROM_FPGA_P[2]}]
+set_property PACKAGE_PIN G4 [get_ports {DUT_CLK_FROM_FPGA_P[3]}]
+
+set_property PACKAGE_PIN A1 [get_ports {BEAM_TRIGGER_N[0]}]
+set_property PACKAGE_PIN B1 [get_ports {BEAM_TRIGGER_P[0]}]
+set_property PACKAGE_PIN B4 [get_ports {BEAM_TRIGGER_N[1]}]
+set_property PACKAGE_PIN C4 [get_ports {BEAM_TRIGGER_P[1]}]
+set_property PACKAGE_PIN K1 [get_ports {BEAM_TRIGGER_N[2]}]
+set_property PACKAGE_PIN K2 [get_ports {BEAM_TRIGGER_P[2]}]
+set_property PACKAGE_PIN C5 [get_ports {BEAM_TRIGGER_N[3]}]
+set_property PACKAGE_PIN C6 [get_ports {BEAM_TRIGGER_P[3]}]
+set_property PACKAGE_PIN H4 [get_ports {BEAM_TRIGGER_N[4]}]
+set_property PACKAGE_PIN J4 [get_ports {BEAM_TRIGGER_P[4]}]
+set_property PACKAGE_PIN G1 [get_ports {BEAM_TRIGGER_N[5]}]
+set_property PACKAGE_PIN H1 [get_ports {BEAM_TRIGGER_P[5]}]
+
+# -------------------------------------------------------------------------------------------------
+# mars pm3: ft232 uart interface
+# -------------------------------------------------------------------------------------------------
+
+set_property IOSTANDARD LVCMOS33 [get_ports FTDI_RXD]
+set_property IOSTANDARD LVCMOS33 [get_ports FTDI_TXD]
+set_property PACKAGE_PIN B3 [get_ports FTDI_TXD]
+set_property PACKAGE_PIN B2 [get_ports FTDI_RXD]
+
+# -------------------------------------------------------------------------------------------------
+# mars pm3: ez-usb fx3 interface
+# -------------------------------------------------------------------------------------------------
+
+set_property PACKAGE_PIN V2 [get_ports FX3_A1]
+set_property IOSTANDARD LVCMOS33 [get_ports FX3_A1]
+set_property PACKAGE_PIN V7 [get_ports FX3_CLK]
+set_property IOSTANDARD LVCMOS33 [get_ports FX3_CLK]
+set_property PACKAGE_PIN U12 [get_ports FX3_DQ0]
+set_property IOSTANDARD LVCMOS33 [get_ports FX3_DQ0]
+set_property PACKAGE_PIN R15 [get_ports FX3_DQ1]
+set_property IOSTANDARD LVCMOS33 [get_ports FX3_DQ1]
+set_property PACKAGE_PIN U9 [get_ports FX3_DQ10]
+set_property IOSTANDARD LVCMOS33 [get_ports FX3_DQ10]
+set_property PACKAGE_PIN V5 [get_ports FX3_DQ11]
+set_property IOSTANDARD LVCMOS33 [get_ports FX3_DQ11]
+set_property PACKAGE_PIN T3 [get_ports FX3_DQ12]
+set_property IOSTANDARD LVCMOS33 [get_ports FX3_DQ12]
+set_property PACKAGE_PIN R3 [get_ports FX3_DQ13]
+set_property IOSTANDARD LVCMOS33 [get_ports FX3_DQ13]
+set_property PACKAGE_PIN V4 [get_ports FX3_DQ14]
+set_property IOSTANDARD LVCMOS33 [get_ports FX3_DQ14]
+set_property PACKAGE_PIN U7 [get_ports FX3_DQ15]
+set_property IOSTANDARD LVCMOS33 [get_ports FX3_DQ15]
+set_property PACKAGE_PIN V12 [get_ports FX3_DQ2]
+set_property IOSTANDARD LVCMOS33 [get_ports FX3_DQ2]
+set_property PACKAGE_PIN P15 [get_ports FX3_DQ3]
+set_property IOSTANDARD LVCMOS33 [get_ports FX3_DQ3]
+set_property PACKAGE_PIN U11 [get_ports FX3_DQ4]
+set_property IOSTANDARD LVCMOS33 [get_ports FX3_DQ4]
+set_property PACKAGE_PIN U13 [get_ports FX3_DQ5]
+set_property IOSTANDARD LVCMOS33 [get_ports FX3_DQ5]
+set_property PACKAGE_PIN T13 [get_ports FX3_DQ6]
+set_property IOSTANDARD LVCMOS33 [get_ports FX3_DQ6]
+set_property PACKAGE_PIN T11 [get_ports FX3_DQ7]
+set_property IOSTANDARD LVCMOS33 [get_ports FX3_DQ7]
+set_property PACKAGE_PIN V9 [get_ports FX3_DQ8]
+set_property IOSTANDARD LVCMOS33 [get_ports FX3_DQ8]
+set_property PACKAGE_PIN U6 [get_ports FX3_DQ9]
+set_property IOSTANDARD LVCMOS33 [get_ports FX3_DQ9]
+set_property PACKAGE_PIN V6 [get_ports FX3_FLAGA]
+set_property IOSTANDARD LVCMOS33 [get_ports FX3_FLAGA]
+set_property PACKAGE_PIN U2 [get_ports FX3_FLAGB]
+set_property IOSTANDARD LVCMOS33 [get_ports FX3_FLAGB]
+set_property PACKAGE_PIN T10 [get_ports FX3_PKTEND_N]
+set_property IOSTANDARD LVCMOS33 [get_ports FX3_PKTEND_N]
+set_property PACKAGE_PIN T9 [get_ports FX3_SLOE_N]
+set_property IOSTANDARD LVCMOS33 [get_ports FX3_SLOE_N]
+set_property PACKAGE_PIN R12 [get_ports FX3_SLRD_N]
+set_property IOSTANDARD LVCMOS33 [get_ports FX3_SLRD_N]
+set_property PACKAGE_PIN R13 [get_ports FX3_SLWR_N]
+set_property IOSTANDARD LVCMOS33 [get_ports FX3_SLWR_N]
+
+# -------------------------------------------------------------------------------------------------
+# timing constraints
+# -------------------------------------------------------------------------------------------------
+
+
+create_clock -name {Clk_50} -period 20.000 [get_ports {Clk_50}]
+
+
+# -------------------------------------------------------------------------------------------------
+# eof
+# -------------------------------------------------------------------------------------------------
+
+
+
diff --git a/legacy/TLU_v1c/common/clock_sim.vhd b/legacy/TLU_v1c/common/clock_sim.vhd
new file mode 100644
index 00000000..7a9e09e7
--- /dev/null
+++ b/legacy/TLU_v1c/common/clock_sim.vhd
@@ -0,0 +1,47 @@
+-- Behavioural model of clocks for ipbus testing
+--
+-- The clock edges are *not* delta cycle accurate
+-- Do not assume any phase relationship between clk125, clk25
+--
+-- Dave Newbold, March 2011
+
+library ieee;
+use ieee.std_logic_1164.all;
+
+entity clock_sim is
+	port(
+	  clko125: out std_logic;
+	  clko25: out std_logic;
+	  clko40: out std_logic;
+	  nuke: in std_logic;
+	  rsto: out std_logic
+  );
+
+end clock_sim;
+
+architecture behavioural of clock_sim is
+
+  signal clk125, clk25, clk40, nuke_del: std_logic := '0';
+  signal reset_vec: std_logic_vector(3 downto 0) := X"f";
+
+begin
+
+  clk125 <= not clk125 after 4 ns;
+  clk25 <= not clk25 after 20 ns;
+  clk40 <= not clk40 after 12.5ns;
+  
+  clko125 <= clk125;
+  clko25 <= clk25;
+  clko40 <= clk40;
+  
+  process(clk25)
+  begin
+    if rising_edge(clk25) then
+      reset_vec <= '0' & reset_vec(3 downto 1);
+    end if;
+  end process;
+
+  nuke_del <= nuke after 50us;
+  rsto <= reset_vec(0) or nuke_del;
+
+end behavioural;
\ No newline at end of file
diff --git a/legacy/TLU_v1c/common/clocks_7s_extphy.vhd b/legacy/TLU_v1c/common/clocks_7s_extphy.vhd
new file mode 100644
index 00000000..47c0f3b8
--- /dev/null
+++ b/legacy/TLU_v1c/common/clocks_7s_extphy.vhd
@@ -0,0 +1,148 @@
+-- clocks_7s_extphy
+--
+-- Generates a 125MHz ethernet clock and 31MHz ipbus clock from the 200MHz reference
+-- Also an unbuffered 200MHz clock for IO delay calibration block
+-- Includes reset logic for ipbus
+--
+-- Dave Newbold, April 2011
+--
+-- $Id$
+
+library ieee;
+use ieee.std_logic_1164.all;
+use ieee.numeric_std.all;
+
+library unisim;
+use unisim.VComponents.all;
+
+entity clocks_7s_extphy is
+	port(
+		sysclk_p: in std_logic;
+		sysclk_n: in std_logic;
+		clko_125: out std_logic;
+		clko_125_90: out std_logic;
+		clko_200: out std_logic;
+		clko_ipb: out std_logic;
+		locked: out std_logic;
+		nuke: in std_logic;
+		soft_rst: in std_logic;
+		rsto_125: out std_logic;
+		rsto_ipb: out std_logic;
+		rsto_ipb_ctrl: out std_logic;
+		onehz: out std_logic
+	);
+
+end clocks_7s_extphy;
+
+architecture rtl of clocks_7s_extphy is
+	
+	signal dcm_locked, sysclk, clk_ipb_i, clk_125_i, clk_125_90_i, clkfb, clk_ipb_b, clk_125_b: std_logic;
+	signal d17, d17_d: std_logic;
+	signal nuke_i, nuke_d, nuke_d2: std_logic := '0';
+	signal rst, srst, rst_ipb, rst_125, rst_ipb_ctrl: std_logic := '1';
+	signal rctr: unsigned(3 downto 0) := "0000";
+
+begin
+
+	ibufgds0: IBUFGDS port map(
+		i => sysclk_p,
+		ib => sysclk_n,
+		o => sysclk
+	);
+	
+	clko_200 <= sysclk; -- io delay ref clock only, no bufg
+
+	bufg125: BUFG port map(
+		i => clk_125_i,
+		o => clk_125_b
+	);
+
+	clko_125 <= clk_125_b;
+
+	bufg125_90: BUFG port map(
+		i => clk_125_90_i,
+		o => clk_125_90
+	);
+	
+	bufgipb: BUFG port map(
+		i => clk_ipb_i,
+		o => clk_ipb_b
+	);
+	
+	clko_ipb <= clk_ipb_b;
+	
+	mmcm: MMCME2_BASE
+		generic map(
+			clkfbout_mult_f => 5.0,
+			clkout1_divide => 8,
+			clkout2_divide => 8,
+			clkout2_phase => 90,
+			clkout3_divide => 32,
+			clkin1_period => 5.0
+		)
+		port map(
+			clkin1 => sysclk,
+			clkfbin => clkfb,
+			clkfbout => clkfb,
+			clkout1 => clk_125_i,
+			clkout2 => clk125_90_i,
+			clkout3 => clk_ipb_i,
+			locked => dcm_locked,
+			rst => '0',
+			pwrdwn => '0'
+		);
+	
+	clkdiv: entity work.ipbus_clock_div
+		port map(
+			clk => sysclk,
+			d17 => d17,
+			d28 => onehz
+		);
+	
+	process(sysclk)
+	begin
+		if rising_edge(sysclk) then
+			d17_d <= d17;
+			if d17='1' and d17_d='0' then
+				rst <= nuke_d2 or not dcm_locked;
+				nuke_d <= nuke_i; -- Time bomb (allows return packet to be sent)
+				nuke_d2 <= nuke_d;
+			end if;
+		end if;
+	end process;
+		
+	locked <= dcm_locked;
+	srst <= '1' when rctr /= "0000" else '0';
+	
+	process(clk_ipb_b)
+	begin
+		if rising_edge(clk_ipb_b) then
+			rst_ipb <= rst or srst;
+			nuke_i <= nuke;
+			if srst = '1' or soft_rst = '1' then
+				rctr <= rctr + 1;
+			end if;
+		end if;
+	end process;
+	
+	rsto_ipb <= rst_ipb;
+	
+	process(clk_ipb_b)
+	begin
+		if rising_edge(clk_ipb_b) then
+			rst_ipb_ctrl <= rst;
+		end if;
+	end process;
+	
+	rsto_ipb_ctrl <= rst_ipb_ctrl;
+	
+	process(clk_125_b)
+	begin
+		if rising_edge(clk_125_b) then
+			rst_125 <= rst;
+		end if;
+	end process;
+	
+	rsto_125 <= rst_125;
+			
+end rtl;
diff --git a/legacy/TLU_v1c/common/clocks_7s_extphy_se.vhd b/legacy/TLU_v1c/common/clocks_7s_extphy_se.vhd
new file mode 100644
index 00000000..90c77ffd
--- /dev/null
+++ b/legacy/TLU_v1c/common/clocks_7s_extphy_se.vhd
@@ -0,0 +1,151 @@
+-- clocks_7s_extphy_se
+--
+-- Generates a 125MHz ethernet clock and 31MHz ipbus clock from the 50MHz reference
+-- Also an unbuffered 200MHz clock for IO delay calibration block
+-- Includes reset logic for ipbus
+--
+-- Dave Newbold, April 2011
+--
+-- $Id$
+
+library ieee;
+use ieee.std_logic_1164.all;
+use ieee.numeric_std.all;
+
+library unisim;
+use unisim.VComponents.all;
+
+entity clocks_7s_extphy_Se is
+	port(
+		sysclk: in std_logic;
+		clko_125: out std_logic;
+		clko_125_90: out std_logic;
+		clko_200: out std_logic;
+		clko_ipb: out std_logic;
+		locked: out std_logic;
+		nuke: in std_logic;
+		soft_rst: in std_logic;
+		rsto_125: out std_logic;
+		rsto_ipb: out std_logic;
+		rsto_ipb_ctrl: out std_logic;
+		onehz: out std_logic
+	);
+
+end clocks_7s_extphy_se;
+
+architecture rtl of clocks_7s_extphy_se is
+	
+	signal dcm_locked, sysclk_i, clk_ipb_i, clk_125_i, clk_125_90_i, clkfb, clk_ipb_b, clk_125_b, clk_200_i: std_logic;
+	signal d17, d17_d: std_logic;
+	signal nuke_i, nuke_d, nuke_d2: std_logic := '0';
+	signal rst, srst, rst_ipb, rst_125, rst_ipb_ctrl: std_logic := '1';
+	signal rctr: unsigned(3 downto 0) := "0000";
+
+begin
+
+	ibufgds0: IBUFG port map(
+		i => sysclk,
+		o => sysclk_i
+	);
+	
+	bufg125: BUFG port map(
+		i => clk_125_i,
+		o => clk_125_b
+	);
+
+	clko_125 <= clk_125_b;
+
+	bufg125_90: BUFG port map(
+		i => clk_125_90_i,
+		o => clko_125_90
+	);
+	
+	bufgipb: BUFG port map(
+		i => clk_ipb_i,
+		o => clk_ipb_b
+	);
+	
+	clko_ipb <= clk_ipb_b;
+	
+	bufg200: BUFG port map(
+		i => clk_200_i,
+		o => clko_200
+	);	
+	
+	mmcm: MMCME2_BASE
+		generic map(
+			clkfbout_mult_f => 20.0,
+			clkout1_divide => 8,
+			clkout2_divide => 8,
+			clkout2_phase => 90.0,
+			clkout3_divide => 32,
+			clkout4_divide => 5,
+			clkin1_period => 20.0
+		)
+		port map(
+			clkin1 => sysclk_i,
+			clkfbin => clkfb,
+			clkfbout => clkfb,
+			clkout1 => clk_125_i,
+			clkout2 => clk_125_90_i,
+			clkout3 => clk_ipb_i,
+			clkout4 => clk_200_i,
+			locked => dcm_locked,
+			rst => '0',
+			pwrdwn => '0'
+		);
+	
+	clkdiv: entity work.ipbus_clock_div
+		port map(
+			clk => sysclk_i,
+			d17 => d17,
+			d28 => onehz
+		);
+	
+	process(sysclk_i)
+	begin
+		if rising_edge(sysclk_i) then
+			d17_d <= d17;
+			if d17='1' and d17_d='0' then
+				rst <= nuke_d2 or not dcm_locked;
+				nuke_d <= nuke_i; -- Time bomb (allows return packet to be sent)
+				nuke_d2 <= nuke_d;
+			end if;
+		end if;
+	end process;
+		
+	locked <= dcm_locked;
+	srst <= '1' when rctr /= "0000" else '0';
+	
+	process(clk_ipb_b)
+	begin
+		if rising_edge(clk_ipb_b) then
+			rst_ipb <= rst or srst;
+			nuke_i <= nuke;
+			if srst = '1' or soft_rst = '1' then
+				rctr <= rctr + 1;
+			end if;
+		end if;
+	end process;
+	
+	rsto_ipb <= rst_ipb;
+	
+	process(clk_ipb_b)
+	begin
+		if rising_edge(clk_ipb_b) then
+			rst_ipb_ctrl <= rst;
+		end if;
+	end process;
+	
+	rsto_ipb_ctrl <= rst_ipb_ctrl;
+	
+	process(clk_125_b)
+	begin
+		if rising_edge(clk_125_b) then
+			rst_125 <= rst;
+		end if;
+	end process;
+	
+	rsto_125 <= rst_125;
+			
+end rtl;
diff --git a/legacy/TLU_v1c/common/clocks_7s_extphy_se_MOD.vhd b/legacy/TLU_v1c/common/clocks_7s_extphy_se_MOD.vhd
new file mode 100644
index 00000000..7d67ef7b
--- /dev/null
+++ b/legacy/TLU_v1c/common/clocks_7s_extphy_se_MOD.vhd
@@ -0,0 +1,158 @@
+-- clocks_7s_extphy_se
+--
+-- Generates a 125MHz ethernet clock and 31MHz ipbus clock from the 50MHz reference
+-- Also an unbuffered 200MHz clock for IO delay calibration block
+-- Includes reset logic for ipbus
+--
+-- Dave Newbold, April 2011
+--
+-- $Id$
+
+library ieee;
+use ieee.std_logic_1164.all;
+use ieee.numeric_std.all;
+
+library unisim;
+use unisim.VComponents.all;
+
+entity clocks_7s_extphy_Se is
+	port(
+		--sysclk: in std_logic;
+		sysclk_p: in std_logic;--
+        sysclk_n: in std_logic;--
+        clko_125: out std_logic;--
+		clko_125_90: out std_logic;
+		clko_200: out std_logic;
+		clko_ipb: out std_logic;
+		locked: out std_logic;--
+		nuke: in std_logic;
+		soft_rst: in std_logic;
+		rsto_125: out std_logic;--
+		rsto_ipb: out std_logic;--
+		rsto_ipb_ctrl: out std_logic;
+		onehz: out std_logic--
+	);
+
+end clocks_7s_extphy_se;
+
+architecture rtl of clocks_7s_extphy_se is
+	
+	signal dcm_locked, sysclk_i, sysclk, clk_ipb_i, clk_125_i, clk_125_90_i, clkfb, clk_ipb_b, clk_125_b, clk_200_i: std_logic;
+	signal d17, d17_d: std_logic;
+	signal nuke_i, nuke_d, nuke_d2: std_logic := '0';
+	signal rst, srst, rst_ipb, rst_125, rst_ipb_ctrl: std_logic := '1';
+	signal rctr: unsigned(3 downto 0) := "0000";
+
+begin
+
+--	ibufgds0: IBUFG port map(
+--		i => sysclk,
+--		o => sysclk_i
+--	);
+    ibufgds0: IBUFGDS port map(
+    i => sysclk_p,
+    ib => sysclk_n,
+    o => sysclk
+    );
+	
+	bufg125: BUFG port map(
+		i => clk_125_i,
+		o => clk_125_b
+	);
+
+	clko_125 <= clk_125_b;
+
+	bufg125_90: BUFG port map(
+		i => clk_125_90_i,
+		o => clko_125_90
+	);
+	
+	bufgipb: BUFG port map(
+		i => clk_ipb_i,
+		o => clk_ipb_b
+	);
+	
+	clko_ipb <= clk_ipb_b;
+	
+	bufg200: BUFG port map(
+		i => clk_200_i,
+		o => clko_200
+	);	
+	
+	mmcm: MMCME2_BASE
+		generic map(
+			clkfbout_mult_f => 20.0,
+			clkout1_divide => 8,
+			clkout2_divide => 8,
+			clkout2_phase => 90.0,
+			clkout3_divide => 32,
+			clkout4_divide => 5,
+			clkin1_period => 20.0
+		)
+		port map(
+			clkin1 => sysclk_i,
+			clkfbin => clkfb,
+			clkfbout => clkfb,
+			clkout1 => clk_125_i,
+			clkout2 => clk_125_90_i,
+			clkout3 => clk_ipb_i,
+			clkout4 => clk_200_i,
+			locked => dcm_locked,
+			rst => '0',
+			pwrdwn => '0'
+		);
+	
+	clkdiv: entity work.ipbus_clock_div
+		port map(
+			clk => sysclk_i,
+			d17 => d17,
+			d28 => onehz
+		);
+	
+	process(sysclk_i)
+	begin
+		if rising_edge(sysclk_i) then
+			d17_d <= d17;
+			if d17='1' and d17_d='0' then
+				rst <= nuke_d2 or not dcm_locked;
+				nuke_d <= nuke_i; -- Time bomb (allows return packet to be sent)
+				nuke_d2 <= nuke_d;
+			end if;
+		end if;
+	end process;
+		
+	locked <= dcm_locked;
+	srst <= '1' when rctr /= "0000" else '0';
+	
+	process(clk_ipb_b)
+	begin
+		if rising_edge(clk_ipb_b) then
+			rst_ipb <= rst or srst;
+			nuke_i <= nuke;
+			if srst = '1' or soft_rst = '1' then
+				rctr <= rctr + 1;
+			end if;
+		end if;
+	end process;
+	
+	rsto_ipb <= rst_ipb;
+	
+	process(clk_ipb_b)
+	begin
+		if rising_edge(clk_ipb_b) then
+			rst_ipb_ctrl <= rst;
+		end if;
+	end process;
+	
+	rsto_ipb_ctrl <= rst_ipb_ctrl;
+	
+	process(clk_125_b)
+	begin
+		if rising_edge(clk_125_b) then
+			rst_125 <= rst;
+		end if;
+	end process;
+	
+	rsto_125 <= rst_125;
+			
+end rtl;
diff --git a/legacy/TLU_v1c/common/clocks_s6_extphy.vhd b/legacy/TLU_v1c/common/clocks_s6_extphy.vhd
new file mode 100644
index 00000000..d823b524
--- /dev/null
+++ b/legacy/TLU_v1c/common/clocks_s6_extphy.vhd
@@ -0,0 +1,137 @@
+--! @file clocks_s6_extphy
+-- 
+library ieee;
+use ieee.std_logic_1164.all;
+
+library unisim;
+use unisim.VComponents.all;
+
+--! @brief Generates a 125MHz ethernet clock and 31MHz ipbus clock from the 200MHz reference
+--! Includes reset logic for ipbus
+--
+--! @author Dave Newbold
+--! @date April 2011
+--
+entity clocks_s6_extphy is port(
+	sysclk_p, sysclk_n: in std_logic; --! From on board crystal. By default 200MHz
+	clk_logic_xtal_o : out std_logic; --! Clock for TLU timing logic ( when not using external clock ). sysclk/5 ( i.e. by default 40MHz) 
+	clko_125: out std_logic; --! 125MHz for IPBus logic
+	clko_ipb: out std_logic; --! 32.5MHz for IPBus logic
+	locked: out std_logic;
+	rsto_125: out std_logic;
+	rsto_ipb: out std_logic;
+	onehz: out std_logic
+	);
+
+end clocks_s6_extphy;
+
+architecture rtl of clocks_s6_extphy is
+
+	signal clk_ipb_i, clk_ipb_b, clk_125_i, clk_125_b, sysclk : std_logic;
+        -- signal sysclk_in : std_logic;
+	signal d25, d25_d, dcm_locked: std_logic;
+	signal rst: std_logic := '1';
+	signal s_xtal_dcm_locked: std_logic;
+        signal s_clk_logic_xtal : std_logic;
+	-- signal clk_400: std_logic;
+	
+--	component clock_divider_s6 port(
+--		clk: in std_logic;
+--		d25: out std_logic;
+--		d28: out std_logic
+--	);
+--	end component;
+	
+begin
+
+	ibufgds0: IBUFGDS port map(
+		i => sysclk_p,
+		ib => sysclk_n,
+		o => sysclk
+	);
+
+--        -- Add global clock buffer in sysclk path.
+--        bufg_sysclk : BUFG port map (
+--          i => sysclk_in,
+--          o => sysclk);
+        
+	bufg_125: BUFG port map(
+		i => clk_125_i,
+		o => clk_125_b
+	);
+	
+	clko_125 <= clk_125_b;
+	
+	bufg_ipb: BUFG port map(
+		i => clk_ipb_i,
+		o => clk_ipb_b
+	);
+	
+	bufg_clk_logic_xtal: BUFG port map(
+	  i => s_clk_logic_xtal,
+	  o => clk_logic_xtal_o
+	  );
+	  
+	clko_ipb <= clk_ipb_b;
+
+	dcm0: DCM_CLKGEN
+		generic map(
+			CLKIN_PERIOD => 5.0,
+			CLKFX_MULTIPLY => 5,
+			CLKFX_DIVIDE => 8,
+			CLKFXDV_DIVIDE => 4
+		)
+		port map(
+			clkin => sysclk,
+			clkfx => clk_125_i,
+			clkfxdv => clk_ipb_i,
+			locked => dcm_locked,
+			rst => '0'
+		);
+		
+	clkdiv: entity work.clock_divider_s6 port map(
+--        clkdiv: entity work.clock_div port map(
+		clk => sysclk,
+--                D17 => open,
+		d25 => d25,
+		d28 => onehz
+	);
+	  
+	process(sysclk)
+	begin
+		if rising_edge(sysclk) then
+			d25_d <= d25;
+			if d25='1' and d25_d='0' then
+				rst <= not dcm_locked;
+			end if;
+		end if;
+	end process;
+	
+	locked <= dcm_locked;
+
+	process(clk_ipb_b)
+	begin
+		if rising_edge(clk_ipb_b) then
+			rsto_ipb <= rst;
+		end if;
+	end process;
+	
+	process(clk_125_b)
+	begin
+		if rising_edge(clk_125_b) then
+			rsto_125 <= rst;
+		end if;
+	end process;
+
+        sys40_gen : BUFIO2
+          generic map (
+            DIVIDE => 5,            -- DIVCLK divider (1-8)
+            DIVIDE_BYPASS => FALSE) -- Bypass the divider circuitry (TRUE/FALSE)
+          port map (
+            I => SysClk,        -- 1-bit input: Clock input (connect to IBUFG)
+            DIVCLK =>  s_clk_logic_xtal,   -- 1-bit output: Divided clock output
+            IOCLK => open,          -- 1-bit output: I/O output clock
+            SERDESSTROBE => open);  -- 1-bit output: Output SERDES strobe (connect to ISERDES2/OSERDES2)
+        
+                
+end rtl;
diff --git a/legacy/TLU_v1c/common/coincidenceLogic_rtl.vhd b/legacy/TLU_v1c/common/coincidenceLogic_rtl.vhd
new file mode 100644
index 00000000..217fa224
--- /dev/null
+++ b/legacy/TLU_v1c/common/coincidenceLogic_rtl.vhd
@@ -0,0 +1,158 @@
+--=============================================================================
+--! @file stretchPulse_rtl.vhd
+--=============================================================================
+--
+-------------------------------------------------------------------------------
+-- --
+-- University of Bristol, High Energy Physics Group.
+-- --
+------------------------------------------------------------------------------- --
+-- VHDL Architecture fmc_mTLU_lib.triggerLogic.rtl
+--
+
+LIBRARY ieee;
+USE ieee.std_logic_1164.all;
+
+-- Include UNISIM to get CFGLUT5 definition
+Library UNISIM;
+use UNISIM.vcomponents.all;
+
+--! @brief Takes a set of input pulses and produces an output pulse based on trigger
+--! pattern. Defaults to "OR" of all inputs.
+--!
+--! @details If triggers_i matches a pattern in triggerPattern then trigger_o
+--! goes high for one clock cycle of logicClk_o. Load a new pattern by taking loadPattern_i high for one cycle of configClk_i
+--!
+--! @author David Cussans
+--! @date 2014
+-------------------------------------------------------------------------------
+
+entity coincidenceLogic is
+  
+  generic (
+    g_nInputs      : positive := 4;  --! Number of trigger inputs. Must be four for this implementation
+    g_patternWidth : positive := 32);  --! Width of trigger pattern. Must be 32 in this implementation
+
+  port (
+    configClk_i      : in  std_logic;   --! Rising edge active
+    logicClk_i       : in  std_logic;   --! Rising edge active
+    triggers_i       : in  std_logic_vector(g_nInputs-1 downto 0);  --! Array of trigger inputs
+    trigger_o        : out std_logic;  --! Goes high when trigger pattern matched
+    --auxTrigger_o     : out std_logic;  --! Goes high when auxillary trigger pattern matched
+    triggerPattern_low_i : in  std_logic_vector(g_patternWidth-1 downto 0);  --! Pattern to match triggers with (lowest 32-bits)
+    triggerPattern_high_i : in  std_logic_vector(g_patternWidth-1 downto 0);  --! Pattern to match triggers with (highest 32-bits)
+    loadPatternHi_i    : in std_logic; --! Pattern (high 32 bits) is loaded when loadPatternHi goes high.
+    loadPatternLo_i    : in  std_logic);  --! Pattern (low 32 bits) is loaded when loadPatternLo goes high.
+
+end entity coincidenceLogic;
+
+architecture rtl of coincidenceLogic is
+
+  signal s_configDataSR_low , s_configEnableSR_low: std_logic_vector( triggerPattern_low_i'range ) := ( others => '0' );  --! shift reg for config data
+  signal s_configDataSR_high , s_configEnableSR_high: std_logic_vector( triggerPattern_high_i'range ) := ( others => '0' );  --! shift reg for config data
+  signal s_configBit_low, s_configBit_high, s_configEnable_low, s_configEnable_high : std_logic := '0';  --! Take high to shift in configuration data.
+  signal s_trigOut_low, s_trigOut_high, s_auxTrigOut_low, s_auxTrigOut_high : std_logic := '0';  -- registers for output data. (s_auxTrig high and low should be removed)
+  
+begin  -- architecture rtl
+
+  --assert g_nInputs /= 4 report "Wrong number of inputs in coincidence logic" severity failure;
+  --assert g_patternWidth /= 32 report "Wrong pattern width in coincidence logic" severity failure;
+
+  -- See Xilinx UG615 ( Spartan-6 Libraries guide for HDL Designs"
+  -- We now need 6 inputs in the LUT and we need to dynamically change it so we merge two 5-inputs together:
+  -- one does the low 32 bits of the address table, the other the high 32 bits.
+  LUT_low : CFGLUT5
+    generic map (
+      INIT => X"FFFEFFFE") --! Default to "OR" of all inputs (exclude case with no input at all)
+    port map (
+      CDO => open, -- Reconfiguration cascade output
+      O5 => open ,  -- 4-LUT output
+      O6 => s_trigOut_low, -- 5-LUT output
+      CDI => s_configBit_low, -- Reconfiguration data input
+      CE => s_configEnable_low, -- Reconfiguration enable input
+      CLK => configClk_i, -- Clock input
+      I0 => triggers_i(0), -- Logic data input
+      I1 => triggers_i(1), -- Logic data input
+      I2 => triggers_i(2), -- Logic data input
+      I3 => triggers_i(3), -- Logic data input
+      I4 => triggers_i(4) --! Tie high to set O5 and O6 to different functions.
+      );
+   
+   LUT_high : CFGLUT5
+    generic map (
+        INIT => X"FFFFFFFF") --! Default to "OR" of all inputs
+    port map (
+        CDO => open, -- Reconfiguration cascade output
+        O5 => open ,  -- 4-LUT output
+        O6 => s_trigOut_high, -- 5-LUT output
+        CDI => s_configBit_high, -- Reconfiguration data input
+        CE => s_configEnable_high, -- Reconfiguration enable input
+        CLK => configClk_i, -- Clock input
+        I0 => triggers_i(0), -- Logic data input
+        I1 => triggers_i(1), -- Logic data input
+        I2 => triggers_i(2), -- Logic data input
+        I3 => triggers_i(3), -- Logic data input
+        I4 => triggers_i(4) --! Tie high to set O5 and O6 to different functions.
+    );   
+
+  p_controlInitLo: process (configClk_i , triggerPattern_low_i , loadPatternLo_i) is
+  begin  -- process p_controlInit
+
+    if rising_edge(configClk_i) then
+
+      -- Control configuration
+      if ( loadPatternLo_i = '1' ) then -- Load pattern into shift register
+        s_configDataSR_low <= triggerPattern_low_i;
+        s_configEnableSR_low <= ( others => '1');
+        s_configBit_low <= '0';
+        s_configEnable_low <= '0';
+      else -- If load isn't active then shift data out.
+        s_configBit_low    <= s_configDataSR_low( s_configDataSR_low'left ); --! Shift in MSB first.
+        s_configDataSR_low <= s_configDataSR_low( s_configDataSR_low'left-1 downto 0) & '0'; --! Shift up
+                
+        s_configEnable_low <= s_configEnableSR_low ( s_configEnableSR_low'left); --! enable will stay high for as long as there is data in config data SR
+        s_configEnableSR_low <= s_configEnableSR_low( s_configEnableSR_low'left-1 downto 0) & '0'; --! Shift up
+      end if;
+
+  end if;
+  end process p_controlInitLo;
+  
+  -- Add a second control for the secondary LUT introduced when we moved to 6 inputs.
+  p_controlInitHi: process (configClk_i , triggerPattern_high_i,  loadPatternHi_i) is
+    begin  -- process p_controlInit
+  
+      if rising_edge(configClk_i) then
+  
+        -- Control configuration
+        if ( loadPatternHi_i = '1' ) then -- Load pattern into shift register
+          s_configDataSR_high <= triggerPattern_high_i;
+          s_configEnableSR_high <= ( others => '1');
+          s_configBit_high <= '0';
+          s_configEnable_high <= '0';
+        else -- If load isn't active then shift data out.
+          s_configBit_high    <= s_configDataSR_high( s_configDataSR_high'left ); --! Shift in MSB first.
+          s_configDataSR_high <= s_configDataSR_high( s_configDataSR_high'left-1 downto 0) & '0'; --! Shift up
+                  
+          s_configEnable_high <= s_configEnableSR_high ( s_configEnableSR_high'left); --! enable will stay high for as long as there is data in config data SR
+          s_configEnableSR_high <= s_configEnableSR_high( s_configEnableSR_high'left-1 downto 0) & '0'; --! Shift up
+        end if;
+  
+    end if;
+    end process p_controlInitHi;
+
+  --! Register output data
+  p_registerData: process (logicClk_i) is
+  begin  -- process p_registerData
+    if rising_edge(logicClk_i) then
+        if triggers_i(5) = '0' then -- the LUT has 5 inputs. We use a MUX to considere the 6th one (triggers_i(5)).
+            trigger_o <=  s_trigOut_low;
+            --auxTrigger_o <= s_auxTrigOut_low;
+        else
+            trigger_o <=  s_trigOut_high;
+            --auxTrigger_o <= s_auxTrigOut_high;
+        end if;
+    end if;
+  end process p_registerData;
+  
+end architecture rtl;
+
diff --git a/legacy/TLU_v1c/common/coincidenceLogic_rtl_BKP.vhd b/legacy/TLU_v1c/common/coincidenceLogic_rtl_BKP.vhd
new file mode 100644
index 00000000..32b57b74
--- /dev/null
+++ b/legacy/TLU_v1c/common/coincidenceLogic_rtl_BKP.vhd
@@ -0,0 +1,108 @@
+--=============================================================================
+--! @file stretchPulse_rtl.vhd
+--=============================================================================
+--
+-------------------------------------------------------------------------------
+-- --
+-- University of Bristol, High Energy Physics Group.
+-- --
+------------------------------------------------------------------------------- --
+-- VHDL Architecture fmc_mTLU_lib.triggerLogic.rtl
+--
+
+LIBRARY ieee;
+USE ieee.std_logic_1164.all;
+
+-- Include UNISIM to get CFGLUT5 definition
+Library UNISIM;
+use UNISIM.vcomponents.all;
+
+--! @brief Takes a set of input pulses and produces an output pulse based on trigger
+--! pattern. Defaults to "OR" of all inputs.
+--!
+--! @details If triggers_i matches a pattern in triggerPattern then trigger_o
+--! goes high for one clock cycle of logicClk_o. Load a new pattern by taking loadPattern_i high for one cycle of configClk_i
+--!
+--! @author David Cussans
+--! @date 2014
+-------------------------------------------------------------------------------
+
+entity coincidenceLogic is
+  
+  generic (
+    g_nInputs      : positive := 4;  --! Number of trigger inputs. Must be four for this implementation
+    g_patternWidth : positive := 32);  --! Width of trigger pattern. Must be 32 in this implementation
+
+  port (
+    configClk_i      : in  std_logic;   --! Rising edge active
+    logicClk_i       : in  std_logic;   --! Rising edge active
+    triggers_i       : in  std_logic_vector(g_nInputs-1 downto 0);  --! Array of trigger inputs
+    trigger_o        : out std_logic;  --! Goes high when trigger pattern matched
+    auxTrigger_o     : out std_logic;  --! Goes high when auxillary trigger pattern matched
+    triggerPattern_i : in  std_logic_vector(g_patternWidth-1 downto 0);  --! Pattern to match triggers with
+    loadPattern_i    : in  std_logic);  --! Pattern is loaded when loadPattern goes high.
+
+end entity coincidenceLogic;
+
+architecture rtl of coincidenceLogic is
+
+  signal s_configDataSR , s_configEnableSR: std_logic_vector( triggerPattern_i'range ) := ( others => '0' );  --! shift reg for config data
+  signal s_configBit , s_configEnable : std_logic := '0';  --! Take high to shift in configuration data.
+  signal s_trigOut , s_auxTrigOut : std_logic := '0';  -- registers for output data.
+  
+begin  -- architecture rtl
+
+  --assert g_nInputs /= 4 report "Wrong number of inputs in coincidence logic" severity failure;
+  --assert g_patternWidth /= 32 report "Wrong pattern width in coincidence logic" severity failure;
+
+  -- See Xilinx UG615 ( Spartan-6 Libraries guide for HDL Designs"
+  CFGLUT5_inst : CFGLUT5
+    generic map (
+      INIT => X"FFFEFFFE") --! Default to "OR" of all inputs
+    port map (
+      CDO => open, -- Reconfiguration cascade output
+      O5 => s_trigOut ,  -- 4-LUT output
+      O6 => s_auxTrigOut, -- 5-LUT output
+      CDI => s_configBit, -- Reconfiguration data input
+      CE => s_configEnable, -- Reconfiguration enable input
+      CLK => configClk_i, -- Clock input
+      I0 => triggers_i(0), -- Logic data input
+      I1 => triggers_i(1), -- Logic data input
+      I2 => triggers_i(2), -- Logic data input
+      I3 => triggers_i(3), -- Logic data input
+      I4 => '1' --! Tie high to set O5 and O6 to different functions.
+      );
+
+  p_controlInit: process (configClk_i , triggerPattern_i , loadPattern_i) is
+  begin  -- process p_controlInit
+
+    if rising_edge(configClk_i) then
+
+      -- Contol configuration
+      if ( loadPattern_i = '1' ) then -- Load pattern into shift register
+        s_configDataSR <= triggerPattern_i;
+        s_configEnableSR <= ( others => '1');
+        s_configBit <= '0';
+        s_configEnable <= '0';
+      else -- If load isn't active then shift data out.
+        s_configBit    <= s_configDataSR( s_configDataSR'left ); --! Shift in MSB first.
+        s_configDataSR <= s_configDataSR( s_configDataSR'left-1 downto 0) & '0'; --! Shift up
+        
+        s_configEnable <= s_configEnableSR ( s_configEnableSR'left); --! enable will stay high for as long as there is data in config data SR
+        s_configEnableSR <= s_configEnableSR( s_configEnableSR'left-1 downto 0) & '0'; --! Shift up
+      end if;
+
+  end if;
+  end process p_controlInit;
+
+  --! Register output data
+  p_registerData: process (logicClk_i) is
+  begin  -- process p_registerData
+    if rising_edge(logicClk_i) then
+      trigger_o <=  s_trigOut;
+      auxTrigger_o <= s_auxTrigOut;
+    end if;
+  end process p_registerData;
+  
+end architecture rtl;
+
diff --git a/legacy/TLU_v1c/common/counterDown.vhd b/legacy/TLU_v1c/common/counterDown.vhd
new file mode 100644
index 00000000..de150900
--- /dev/null
+++ b/legacy/TLU_v1c/common/counterDown.vhd
@@ -0,0 +1,50 @@
+--Counter down
+--Outputs: 	Q<='1' while counting
+--				Q<='0' if not counting
+
+
+library ieee;
+use ieee.std_logic_1164.all;
+use ieee.numeric_std.all;
+
+
+ENTITY CounterDown IS
+	GENERIC(
+		MAX_WIDTH: positive := 32
+	);
+	PORT( 
+		Clk		: in  std_logic; 
+		Reset		: in  std_logic; 
+		Load 		: in  std_logic; 
+		InitVal 	: in std_logic_vector(MAX_WIDTH-1 downto 0);
+		Count		: out Std_logic_vector(MAX_WIDTH-1 downto 0);
+		Q 			: out std_logic
+	);
+END ENTITY CounterDown;
+
+architecture rtl of CounterDown is 
+	signal cnt	: std_logic_vector(MAX_WIDTH-1 downto 0);
+	signal Qtmp	: std_logic;
+  
+begin 
+	Counter: process (Clk, Reset)
+	begin 
+		if (Reset='1') then 
+			cnt <= (others =>'0');
+		elsif rising_edge(Clk) then
+			if (Load='1') then
+				cnt <= InitVal;
+			else
+				if Qtmp='0' then
+					cnt <= std_logic_vector(unsigned(cnt) - 1);
+				end if;
+			end if;
+		end if; 
+	end process;
+      
+	Qtmp <= 	'1' when cnt=(cnt'range=>'0') else
+				'0';
+          
+	Count <= cnt;
+	Q <= Qtmp;
+end rtl;
diff --git a/legacy/TLU_v1c/common/counterWithReset_rtl.vhd b/legacy/TLU_v1c/common/counterWithReset_rtl.vhd
new file mode 100644
index 00000000..2512f986
--- /dev/null
+++ b/legacy/TLU_v1c/common/counterWithReset_rtl.vhd
@@ -0,0 +1,84 @@
+--=============================================================================
+--! @file counterWithReset_rtl.vhd
+--=============================================================================
+-------------------------------------------------------------------------------
+-- --
+-- University of Bristol, High Energy Physics Group.
+-- --
+------------------------------------------------------------------------------- --
+-- unit name: counterWithReset (counterWithReset / rtl)
+--
+--============================================================================
+--! Entity declaration for counterWithReset
+--============================================================================
+LIBRARY ieee;
+USE ieee.std_logic_1164.ALL;
+use ieee.numeric_std.all;
+
+--! @brief Simple counter with synchronous reset
+--
+--! @author David Cussans , David.Cussans@bristol.ac.uk
+--
+--! @date Feb\2012
+--
+--! @version v0.1
+--
+-------------------------------------------------------------------------------
+--! @details
+--! \n\n<b>Last changes:</b>\n
+--! 5/Mar/12  DGC Changed to use numeric_std\n
+--! 26/Feb/14 DGC Added registers to output to aid timing closure.
+--! 
+
+
+
+ENTITY counterWithReset IS
+  GENERIC (g_COUNTER_WIDTH : integer := 32; --! Number of bits
+           g_OUTPUT_REGISTERS : integer := 4 --! Number of output registers. Minumum =1. Aids timing closure.
+           );
+  PORT
+    (
+      clock_i: 	IN STD_LOGIC;  --! rising edge active clock
+      reset_i:  IN STD_LOGIC;  --! Active high. syncronous with rising clk
+      enable_i: IN STD_LOGIC;  --! counts when enable=1
+      result_o:	OUT STD_LOGIC_VECTOR ( g_COUNTER_WIDTH-1 downto 0) --! Unsigned integer output
+      
+      );
+END counterWithReset;
+
+ARCHITECTURE rtl OF counterWithReset IS
+  type t_register_array is array(natural range <>) of UNSIGNED ( g_COUNTER_WIDTH-1 downto 0) ;  -- --! Array of arrays for output register...
+  signal s_output_registers : t_register_array(g_OUTPUT_REGISTERS downto 0) := ( others => ( others => '0'));  -- --! Output registers.
+  
+BEGIN
+
+  --! Process to count up from zero when enable_i is high.
+  p_counter: PROCESS (clock_i)
+  BEGIN
+    IF rising_edge(clock_i) THEN
+      IF (reset_i = '1') THEN
+        s_output_registers(0) <= (others => '0');
+      ELSIF (enable_i='1') THEN
+        s_output_registers(0) <= s_output_registers(0) + 1;
+      END IF;
+    END IF;
+  END PROCESS p_counter;
+
+  --! Generate some output registers. Number controlled by g_OUTPUT_REGISTERS
+  generate_registers: for v_register in 1 to g_OUTPUT_REGISTERS generate
+
+    --! An individual register
+    p_outputRegister: process (clock_i)
+    begin  -- process p_outputRegister
+      if rising_edge(clock_i) then
+        s_output_registers( v_register) <=
+        s_output_registers( v_register-1);
+      end if;
+    end process p_outputRegister;
+    
+  end generate generate_registers;  -- v_register
+
+  --! Copy the (registered) result to the output 
+  result_o <= STD_LOGIC_VECTOR(s_output_registers(g_OUTPUT_REGISTERS));
+  
+END rtl;		
diff --git a/legacy/TLU_v1c/common/dualSERDES_1to4_rtl.vhd b/legacy/TLU_v1c/common/dualSERDES_1to4_rtl.vhd
new file mode 100644
index 00000000..dd090f4a
--- /dev/null
+++ b/legacy/TLU_v1c/common/dualSERDES_1to4_rtl.vhd
@@ -0,0 +1,421 @@
+--=============================================================================
+--! @file dualSERDES_1to4_rtl.vhd
+--=============================================================================
+--
+-------------------------------------------------------------------------------
+-- --
+-- University of Bristol, High Energy Physics Group.
+-- --
+------------------------------------------------------------------------------- --
+-- VHDL Architecture work.dualSERDES_1to4.rtl
+--
+-- 
+-- Created using using Mentor Graphics HDL Designer(TM) 2010.3 (Build 21)
+--
+LIBRARY ieee;
+USE ieee.std_logic_1164.all;
+USE ieee.numeric_std.all;
+
+library unisim ;
+use unisim.vcomponents.all;
+
+--! @brief Two 1:4 Deserializers. One has input delayed w.r.t. other
+--! based on TDC by Alvaro Dosil
+--
+--! @author David Cussans , David.Cussans@bristol.ac.uk
+--
+--! @date 12:06:53 11/16/12
+--
+--! @version v0.1
+--
+--! @details
+--! data_o(7) is the most recently arrived data , data_o(0) is the oldest data.
+--!
+--! <b>Modified by: Alvaro Dosil , alvaro.dosil@usc.es </b>\n
+--! Author: 
+-------------------------------------------------------------------------------
+--! \n\n<b>Last changes:</b>\n
+--! Separated FSM for calibration control into a separate entity. DGC, 22/Feb/14
+-------------------------------------------------------------------------------
+--! @todo Implement a periodic calibration sequence\n
+--
+--------------------------------------------------------------------------------
+
+ENTITY dualSERDES_1to4 IS
+   PORT( 
+      reset_i        : IN     std_logic;                      --! Resets  IODELAY
+      --calibrate_i    : IN     std_logic;                      --! Starts IODELAY calibration.
+      --data_i         : IN     std_logic;                      --! from input buffer.
+      data_i_pos     : IN     std_logic;                      --! from positive differential input pin 
+      data_i_neg     : IN     std_logic;                      --! from negative differential input pin 
+      fastClk_i      : IN     std_logic;                      --! 2x fabric clock. e.g. 320MHz
+      fabricClk_i    : IN     std_logic;                      --! clock for output to FPGA. e.g. 160MHz
+      strobe_i       : IN     std_logic;                      --! Strobes once every 4 cycles of fastClk
+      data_o         : OUT    std_logic_vector (7 DOWNTO 0);  --! Deserialized data. Interleaved between prompt and delayed  serdes.
+                                                              --! data_o(0) is the oldest data
+      status_o       : OUT    std_logic_vector(1 downto 0)    --! outputs from IODELAY "busy" 0=prompt,1=delayed
+   );
+
+-- Declarations
+
+
+END ENTITY dualSERDES_1to4 ;
+
+--
+ARCHITECTURE rtl OF dualSERDES_1to4 IS
+
+    constant c_S : positive := 4;                     -- ! SERDES division ratio
+
+    signal s_Data_i_d_p   : std_logic;
+    signal s_Data_i_d_d   : std_logic;
+    signal s_busy_idelay_p  : std_logic;              -- Busy from iodelay.
+    signal s_busy_idelay_d  : std_logic;              -- Busy from iodelay.
+    signal s_busy			  : std_logic;              -- Busy from the two iodelays.
+    signal s_data_o       : std_logic_vector(7 downto 0);  --! Deserialized data
+	signal s_cal			 : std_logic := '0'; 				--! Calibration signal
+	signal s_rst_cal		: std_logic := '0'; 				--! reset after calibration process
+    signal delay_val :std_logic_vector(4 downto 0);
+    signal prompt_val :std_logic_vector(4 downto 0);
+    signal delayed_out: std_logic_vector(4 downto 0);
+    signal prompt_out: std_logic_vector(4 downto 0);
+---------------------------------------------
+    component delayIO
+    generic
+    (-- width of the data for the system
+    SYS_W       : integer := 1;
+    -- width of the data for the device
+    DEV_W       : integer := 1);
+    port
+        (
+        -- From the system into the device
+        data_in_from_pins_p     : in    std_logic_vector(SYS_W-1 downto 0);
+        data_in_from_pins_n     : in    std_logic_vector(SYS_W-1 downto 0);
+        data_in_to_device       : out   std_logic_vector(DEV_W-1 downto 0);
+        
+        -- Input, Output delay control signals
+        delay_clk               : in    std_logic;
+        in_delay_reset          : in    std_logic;                    -- Active high synchronous reset for input delay
+        in_delay_data_ce        : in    std_logic_vector(SYS_W -1 downto 0);                    -- Enable signal for delay 
+        in_delay_data_inc       : in    std_logic_vector(SYS_W -1 downto 0);                    -- Delay increment (high), decrement (low) signal
+        delay_locked            : out   std_logic;                    -- Locked signal from IDELAYCTRL
+        ref_clock               : in    std_logic;                    -- Reference Clock for IDELAYCTRL. Has to come from BUFG.
+        
+        -- Clock and reset signals
+        clk_in                  : in    std_logic;                    -- Fast clock from PLL/MMCM 
+        clock_enable            : in    std_logic;
+        io_reset                : in    std_logic);                   -- Reset signal for IO circuit
+    end component;
+
+  
+BEGIN
+ 
+	-- IODELAYs calibration FSM
+	IODELAYCal: entity work.IODELAYCal_FSM
+    port map (
+        clk_i       => fabricClk_i,
+        startcal_i  => reset_i,
+        busy_i		=> s_busy,
+        calibrate_o     => s_cal,
+        reset_o         => s_rst_cal
+    );
+
+
+-----------------------------------------------------
+--    iodelay_prompt : delayIO
+--    port map 
+--    ( 
+--        data_in_from_pins_p(0) => data_i_pos,
+--        data_in_from_pins_n(0) => data_i_neg,
+--        data_in_to_device(0) => s_Data_i_d_p,
+--        delay_clk => fabricClk_i,
+--        in_delay_reset => '0',                    
+--        in_delay_data_ce(0) => '1',      
+--        in_delay_data_inc(0) => '0',     
+        
+--        delay_locked => open,                      
+--        ref_clock => fabricClk_i,                         
+--        clk_in => fastClk_i,                            
+--        clock_enable => '1',
+--        io_reset => s_rst_cal
+--    );
+    prompt_val <= "00000";
+
+    IDELAY2_Prompt : IDELAYE2
+    generic map (
+        IDELAY_TYPE => "VARIABLE",
+        DELAY_SRC => "IDATAIN",
+        SIGNAL_PATTERN => "DATA"
+    )
+    port map (
+        CNTVALUEOUT=> prompt_out,--5-bitoutput:Countervalueoutput
+        DATAOUT=> s_Data_i_d_p,    --1-bitoutput:Delayeddataoutput
+        C=> fabricClk_i,    --1-bitinput:Clockinput
+        CE=> '0',    --1-bitinput:Activehighenableincrement/decrementinput
+        CINVCTRL=> '0' ,--1-bitinput:Dynamicclockinversioninput
+        CNTVALUEIN=> prompt_val,--5-bitinput:Countervalueinput
+        DATAIN=> '0',    --1-bitinput:Internaldelaydatainput
+        IDATAIN => not data_i_neg, --- THIS MUST BE INVERTED!!!!
+        --IDATAIN=> data_i,    --1-bitinput:DatainputfromtheI/O
+        INC=> '0',    --1-bitinput:Increment/Decrementtapdelayinput
+        LD=> '0',    --1-bitinput:LoadIDELAY_VALUEinput
+        LDPIPEEN=> '0',--1-bitinput:EnablePIPELINEregistertoloaddatainput
+        REGRST=> s_rst_cal    --1-bitinput:Active-highresettap-delayinput
+    );
+    
+
+
+----IODELAY2 no longer valid. Replaced using IP delay (SelectIO interface wizard generated)
+--  IODELAY2_Prompt : IODELAY2
+--    generic map (
+--      COUNTER_WRAPAROUND => "STAY_AT_LIMIT" ,  -- "STAY_AT_LIMIT" or "WRAPAROUND" 
+--      DATA_RATE          => "SDR",            -- "SDR" or "DDR" 
+--      DELAY_SRC          => "IDATAIN",        -- "IO", "ODATAIN" or "IDATAIN" 
+--      SERDES_MODE        => "NONE", 			-- <NONE>, MASTER, SLAVE
+--      IDELAY_TYPE        => "VARIABLE_FROM_ZERO",
+--      IDELAY_VALUE     	=> 0                -- Amount of taps for fixed input delay (0-255)
+--      --SIM_TAPDELAY_VALUE=> 10               -- Per tap delay used for simulation in ps
+--      )
+--    port map (
+--      BUSY     => s_busy_idelay_p,      -- 1-bit output: Busy output after CAL
+--      DATAOUT  => s_Data_i_d_p,     -- 1-bit output: Delayed data output to ISERDES/input register
+--      DATAOUT2 => open,             -- 1-bit output: Delayed data output to general FPGA fabric
+--      DOUT     => open,             -- 1-bit output: Delayed data output
+--      TOUT     => open,             -- 1-bit output: Delayed 3-state output
+--      CAL      => s_cal,      		-- 1-bit input: Initiate calibration input
+--      CE       => '0',              -- 1-bit input: Enable INC input
+--      CLK      => fabricClk_i,      -- 1-bit input: Clock input
+--      IDATAIN  => data_i,           -- 1-bit input: Data input (connect to top-level port or I/O buffer)
+--      INC      => '0',              -- 1-bit input: Increment / decrement input
+--      IOCLK0   => fastClk_i,        -- 1-bit input: Input from the I/O clock network
+--      IOCLK1   => '0',              -- 1-bit input: Input from the I/O clock network
+--      ODATAIN  => '0',              -- 1-bit input: Output data input from output register or OSERDES2.
+--      RST      => s_rst_cal,            -- 1-bit input: reset_i to 1/2 of total delay period
+--      T        => '1'               -- 1-bit input: 3-state input signal
+--      );
+    
+    s_busy_idelay_p <= (prompt_val(0) XOR  prompt_out(0)) OR (prompt_val(1) XOR  prompt_out(1)) OR (prompt_val(2) XOR  prompt_out(2)) OR (prompt_val(3) XOR  prompt_out(3)) OR (prompt_val(4) XOR  prompt_out(4));
+	status_o(1) <= s_busy_idelay_p;
+
+--    iodelay_delay : delayIO
+--    port map 
+--    ( 
+--        data_in_from_pins_p(0) => data_i_pos,
+--        data_in_from_pins_n(0) => data_i_neg,
+--        data_in_to_device(0) => s_Data_i_d_d,
+--        delay_clk => fabricClk_i,
+--        in_delay_reset => '0',                    
+--        in_delay_data_ce(0) => '1',      
+--        in_delay_data_inc(0) => '0',     
+        
+--        delay_locked => open,                      
+--        ref_clock => fabricClk_i,                         
+--        clk_in => fastClk_i,                            
+--        clock_enable => '1',
+--        clk_out => open,
+--        io_reset => s_rst_cal
+--    );
+
+    -- This should be configurable via IPBus. For now fixed value. The tap value is 200 MHz (5 ns). We want
+    -- a quarter of the 320 MHz clock (3.125 ns) so 0.78125 ns, corresponding to 6 taps.
+    delay_val <= "00110";
+    --delay_val <= "00000";
+    
+    IDELAY2_Delayed : IDELAYE2
+    generic map (
+        --IDELAY_TYPE => "VARIABLE",
+        IDELAY_TYPE => "VAR_LOAD",
+        DELAY_SRC => "IDATAIN",
+        SIGNAL_PATTERN => "DATA"
+    )
+    port map (
+        CNTVALUEOUT=> delayed_out,--5-bitoutput:Countervalueoutput
+        DATAOUT=> s_Data_i_d_d,    --1-bitoutput:Delayeddataoutput
+        C=> fabricClk_i,    --1-bitinput:Clockinput
+        CE=> '0',    --1-bitinput:Activehighenableincrement/decrementinput
+        CINVCTRL=> '0' ,--1-bitinput:Dynamicclockinversioninput
+        CNTVALUEIN=> delay_val,--5-bitinput:Countervalueinput
+        DATAIN=> '0',    --1-bitinput:Internaldelaydatainput
+--        IDATAIN=> data_i,    --1-bitinput:DatainputfromtheI/O
+        IDATAIN => data_i_pos,
+        INC=> '0',    --1-bitinput:Increment/Decrementtapdelayinput
+        LD=> '1',    --1-bitinput:LoadIDELAY_VALUEinput
+        LDPIPEEN=> '0',--1-bitinput:EnablePIPELINEregistertoloaddatainput
+        REGRST=> s_rst_cal    --1-bitinput:Active-highresettap-delayinput
+    );
+        
+
+--    IODELAY2_Delayed : IODELAY2
+--    generic map (
+--        COUNTER_WRAPAROUND => "STAY_AT_LIMIT",  -- "STAY_AT_LIMIT" or "WRAPAROUND" 
+--        DATA_RATE          => "SDR",         -- "SDR" or "DDR" 
+--        DELAY_SRC          => "IDATAIN",     -- "IO", "ODATAIN" or "IDATAIN" 
+--        SERDES_MODE        => "NONE", 			-- <NONE>, MASTER, SLAVE
+--        IDELAY_TYPE        => "VARIABLE_FROM_HALF_MAX",
+--        IDELAY_VALUE       => 0,             -- Amount of taps for fixed input delay (0-255)
+--        IDELAY2_VALUE      => 0             	-- Delay value when IDELAY_MODE="PCI" (0-255)
+--    --SIM_TAPDELAY_VALUE => 10              -- Per tap delay used for simulation in ps
+--    )
+--    port map (
+--        BUSY     => s_busy_idelay_d,      -- 1-bit output: Busy output after CAL
+--        DATAOUT  => s_Data_i_d_d,     -- 1-bit output: Delayed data output to ISERDES/input register
+--        DATAOUT2 => open,             -- 1-bit output: Delayed data output to general FPGA fabric
+--        DOUT     => open,             -- 1-bit output: Delayed data output
+--        TOUT     => open,             -- 1-bit output: Delayed 3-state output
+--        CAL      => s_cal,      		-- 1-bit input: Initiate calibration input
+--        CE       => '0',              -- 1-bit input: Enable INC input
+--        CLK      => fabricClk_i,      -- 1-bit input: Clock input
+--        IDATAIN  => data_i,           -- 1-bit input: Data input (connect to top-level port or I/O buffer)
+--        INC      => '0',              -- 1-bit input: Increment / decrement input
+--        IOCLK0   => fastClk_i,        -- 1-bit input: Input from the I/O clock network
+--        IOCLK1   => '0',              -- 1-bit input: Input from the I/O clock network
+--        ODATAIN  => '0',              -- 1-bit input: Output data input from output register or OSERDES2.
+--        RST      => s_rst_cal,          -- 1-bit input: reset_i to zero
+--        T        => '1'               -- 1-bit input: 3-state input signal
+--    );
+
+
+    --I must check that the CNTVALUEOUT and CNTVALUEIN are the same. TO DO
+	--status_o(0) <= s_busy_idelay_d;
+	s_busy_idelay_d <= (delay_val(0) XOR  delayed_out(0)) OR (delay_val(1) XOR  delayed_out(1)) OR (delay_val(2) XOR  delayed_out(2)) OR (delay_val(3) XOR  delayed_out(3)) OR (delay_val(4) XOR  delayed_out(4));
+	status_o(0) <= s_busy_idelay_d;
+	s_busy <= s_busy_idelay_p or s_busy_idelay_d;
+
+
+-----------------------------------------------------
+--ISERDES2 replaced by ISERDESE2 in Series 7
+--  ISERDES2_Prompt : ISERDES2
+--  generic map (
+--    BITSLIP_ENABLE => FALSE,         -- Enable Bitslip Functionality (TRUE/FALSE)
+--    DATA_RATE      => "SDR",         -- Data-rate ("SDR" or "DDR")
+--    DATA_WIDTH     => 4,           -- Parallel data width selection (2-8)
+--    INTERFACE_TYPE => "RETIMED",     -- "NETWORKING", "NETWORKING_PIPELINED" or "RETIMED" 
+--    SERDES_MODE    => "NONE"         -- "NONE", "MASTER" or "SLAVE" 
+--   )
+--  port map (
+--    -- Q1 - Q4: 1-bit (each) output Registered outputs to FPGA logic
+--    Q1     => s_Data_o(1),         -- Oldest data
+--    Q2     => s_Data_o(3),
+--    Q3     => s_Data_o(5),
+--    Q4     => s_Data_o(7),         -- most recent data
+--    --SHIFTOUT => SHIFTOUTsig,       -- 1-bit output Cascade output signal for master/slave I/O
+--    VALID   => open,                 -- 1-bit output Output status of the phase detector
+--    BITSLIP => '0',                  -- 1-bit input Bitslip enable input
+--    CE0     => '1',                  -- 1-bit input Clock enable input
+--    CLK0    => fastClk_i,            -- 1-bit input I/O clock network input
+--    CLK1    => '0',                  -- 1-bit input Secondary I/O clock network input
+--    CLKDIV  => fabricClk_i,          -- 1-bit input FPGA logic domain clock input
+--    D       => s_Data_i_d_p,         -- 1-bit input Input data
+--    IOCE    => strobe_i,             -- 1-bit input Data strobe_i input
+--    RST     => reset_i,              -- 1-bit input Asynchronous reset_i input
+--    SHIFTIN => '0'                   -- 1-bit input Cascade input signal for master/slave I/O
+--   );
+
+    ISERDESE2_Prompt: ISERDESE2 --Used to replace ISERDES2. Best of luck with it.
+    generic map (
+        DATA_RATE => "DDR",
+        DATA_WIDTH => 4,
+        INTERFACE_TYPE=> "NETWORKING", --Not sure this is correct
+        IOBDELAY => "BOTH", --same as above
+        SERDES_MODE => "MASTER",
+        NUM_CE => 1
+    )
+    port map (
+        O => open,
+        Q4     => s_Data_o(1), -- Oldest data
+        Q3     => s_Data_o(3),
+        Q2     => s_Data_o(5),
+        Q1     => s_Data_o(7),
+        BITSLIP => '0',
+        CE1 => '1',
+        CE2 => '1',
+        CLKDIVP => '0',
+        CLK  => fastClk_i,            -- 1-bit input I/O clock network input
+        CLKB  => not fastClk_i, --should be a unique phase shifted clock
+        CLKDIV => fabricClk_i,
+        DDLY=> s_Data_i_d_p,
+        D=> '0', -- data_i
+        RST=> reset_i,
+        SHIFTIN1 => '0',
+        SHIFTIN2 => '0',
+        DYNCLKDIVSEL=> '0',
+        DYNCLKSEL=> '0', 
+        --OCLK => strobe_i,
+        OCLK => '0',
+        OCLKB => '0',
+        OFB=> '0'
+    );
+
+--  ISERDES2_Delayed : ISERDES2
+--  generic map (
+--    BITSLIP_ENABLE => FALSE,       -- Enable Bitslip Functionality (TRUE/FALSE)
+--    DATA_RATE      => "SDR",       -- Data-rate ("SDR" or "DDR")
+--    DATA_WIDTH     => 4,         -- Parallel data width selection (2-8)
+--    INTERFACE_TYPE => "RETIMED",   -- "NETWORKING", "NETWORKING_PIPELINED" or "RETIMED" 
+--    SERDES_MODE    => "NONE"       -- "NONE", "MASTER" or "SLAVE" 
+--   )
+--  port map (
+--	-- Q1 - Q4: 1-bit (each) output Registered outputs to FPGA logic
+--    Q1     => s_Data_o(0),           -- oldest data
+--    Q2     => s_Data_o(2),
+--    Q3     => s_Data_o(4),
+--    Q4     => s_Data_o(6),           -- most recent data
+--    --SHIFTOUT => SHIFTOUTsig,     -- 1-bit output Cascade output signal for master/slave I/O
+--    VALID   => open,               -- 1-bit output Output status of the phase detector
+--    BITSLIP => '0',                -- 1-bit input Bitslip enable input
+--    CE0     => '1',                -- 1-bit input Clock enable input
+--    CLK0    => fastClk_i,          -- 1-bit input I/O clock network input
+--    CLK1    => '0',                -- 1-bit input Secondary I/O clock network input
+--    CLKDIV  => fabricClk_i,        -- 1-bit input FPGA logic domain clock input
+--    D       => s_Data_i_d_d,       -- 1-bit input Input data
+--    IOCE    => strobe_i,           -- 1-bit input Data strobe_i input
+--    RST     => reset_i,            -- 1-bit input Asynchronous reset_i input
+--    SHIFTIN => '0'                 -- 1-bit input Cascade input signal for master/slave I/O
+--   );
+   
+   
+   ISERDESE2_Delayed: ISERDESE2 --Used to replace ISERDES2. Best of luck with it.
+       generic map (
+           DATA_RATE => "DDR",
+           DATA_WIDTH => 4,
+           INTERFACE_TYPE=> "NETWORKING", --Not sure this is correct
+           IOBDELAY => "BOTH", --same as above
+           SERDES_MODE => "MASTER",
+           NUM_CE => 1
+       )
+       port map (
+           O => open,
+           Q4     => s_Data_o(0),           -- oldest data
+           Q3     => s_Data_o(2),
+           Q2     => s_Data_o(4),
+           Q1     => s_Data_o(6), 
+           BITSLIP => '0',
+           CE1 => '1',
+           CE2 => '1',
+           CLKDIVP => '0',
+           CLK  => fastClk_i,            -- 1-bit input I/O clock network input
+           CLKB  => not fastClk_i, --should be a unique phase shifted clock
+           CLKDIV => fabricClk_i,
+           DDLY=> s_Data_i_d_d,
+           D=> '0', -- data_i
+           RST=> reset_i,
+           SHIFTIN1 => '0',
+           SHIFTIN2 => '0',
+           DYNCLKDIVSEL=> '0',
+           DYNCLKSEL=> '0', 
+           OCLK => strobe_i,
+           OCLKB => '0',
+           OFB=> '0'
+       );
+-----------------------------------------------------
+
+
+
+reg_out : process(fabricClk_i)
+begin
+  if rising_edge(fabricClk_i) then
+    Data_o <= s_Data_o;
+  end if;
+end process;
+
+END ARCHITECTURE rtl;
+
diff --git a/legacy/TLU_v1c/common/enclustra_ax3_pm3_infra.vhd b/legacy/TLU_v1c/common/enclustra_ax3_pm3_infra.vhd
new file mode 100644
index 00000000..8e255bea
--- /dev/null
+++ b/legacy/TLU_v1c/common/enclustra_ax3_pm3_infra.vhd
@@ -0,0 +1,131 @@
+-- enclustra_ax3_pm3_infra
+--
+-- All board-specific stuff goes here
+--
+-- Dave Newbold, June 2013---
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+
+use work.ipbus.all;
+
+entity enclustra_ax3_pm3_infra is
+	port(
+		sysclk: in std_logic; -- ??? board crystal clock
+		clk_ipb_o: out std_logic; -- IPbus clock
+		rst_ipb_o: out std_logic;
+		rst_125_o: out std_logic;
+		clk_200_o: out std_logic;
+		clk_aux_o: out std_logic; -- 40MHz generated clock
+		rst_aux_o: out std_logic;
+		nuke: in std_logic; -- The signal of doom
+		soft_rst: in std_logic; -- The signal of lesser doom
+		leds: out std_logic_vector(1 downto 0); -- status LEDs
+		rgmii_txd: out std_logic_vector(3 downto 0);
+		rgmii_tx_ctl: out std_logic;
+		rgmii_txc: out std_logic;
+		rgmii_rxd: in std_logic_vector(3 downto 0);
+		rgmii_rx_ctl: in std_logic;
+		rgmii_rxc: in std_logic;
+		mac_addr: in std_logic_vector(47 downto 0); -- MAC address
+		ip_addr: in std_logic_vector(31 downto 0); -- IP address
+		ipb_in: in ipb_rbus; -- ipbus
+		ipb_out: out ipb_wbus
+	);
+
+end enclustra_ax3_pm3_infra;
+
+architecture rtl of enclustra_ax3_pm3_infra is
+
+	signal clk125_fr, clk125, clk125_90, clk200, clk_ipb, clk_ipb_i, locked, rst125, rst_ipb, rst_ipb_ctrl, rst_eth, onehz, pkt: std_logic;
+	signal mac_tx_data, mac_rx_data: std_logic_vector(7 downto 0);
+	signal mac_tx_valid, mac_tx_last, mac_tx_error, mac_tx_ready, mac_rx_valid, mac_rx_last, mac_rx_error: std_logic;
+	signal led_p: std_logic_vector(0 downto 0);
+	
+begin
+
+--	DCM clock generation for internal bus, ethernet
+
+	clocks: entity work.clocks_7s_extphy_se
+		port map(
+			sysclk => sysclk,
+			clko_125 => clk125,
+			clko_125_90 => clk125_90,
+			clko_200 => clk200,
+			clko_ipb => clk_ipb_i,
+			locked => locked,
+			nuke => nuke,
+			soft_rst => soft_rst,
+			rsto_125 => rst125,
+			rsto_ipb => rst_ipb,
+			rsto_ipb_ctrl => rst_ipb_ctrl,
+			onehz => onehz
+		);
+
+	clk_ipb <= clk_ipb_i; -- Best to align delta delays on all clocks for simulation
+	clk_ipb_o <= clk_ipb_i;
+	rst_ipb_o <= rst_ipb;
+	rst_125_o <= rst125;
+	clk_200_o <= clk200;
+	
+	stretch: entity work.led_stretcher
+		generic map(
+			WIDTH => 1
+		)
+		port map(
+			clk => clk125,
+			d(0) => pkt,
+			q => led_p
+		);
+	leds <= (led_p(0), locked and onehz);
+	
+-- Ethernet MAC core and PHY interface
+	
+	eth: entity work.eth_7s_rgmii
+		port map(
+			clk125 => clk125,
+			clk125_90 => clk125_90,
+			clk200 => clk200,
+			rst => rst125,
+			rgmii_txd => rgmii_txd,
+			rgmii_tx_ctl => rgmii_tx_ctl,
+			rgmii_txc => rgmii_txc,
+			rgmii_rxd => rgmii_rxd,
+			rgmii_rx_ctl => rgmii_rx_ctl,
+			rgmii_rxc => rgmii_rxc,
+			tx_data => mac_tx_data,
+			tx_valid => mac_tx_valid,
+			tx_last => mac_tx_last,
+			tx_error => mac_tx_error,
+			tx_ready => mac_tx_ready,
+			rx_data => mac_rx_data,
+			rx_valid => mac_rx_valid,
+			rx_last => mac_rx_last,
+			rx_error => mac_rx_error
+		);
+	
+-- ipbus control logic
+
+	ipbus: entity work.ipbus_ctrl
+		port map(
+			mac_clk => clk125,
+			rst_macclk => rst125,
+			ipb_clk => clk_ipb,
+			rst_ipb => rst_ipb_ctrl,
+			mac_rx_data => mac_rx_data,
+			mac_rx_valid => mac_rx_valid,
+			mac_rx_last => mac_rx_last,
+			mac_rx_error => mac_rx_error,
+			mac_tx_data => mac_tx_data,
+			mac_tx_valid => mac_tx_valid,
+			mac_tx_last => mac_tx_last,
+			mac_tx_error => mac_tx_error,
+			mac_tx_ready => mac_tx_ready,
+			ipb_out => ipb_out,
+			ipb_in => ipb_in,
+			mac_addr => mac_addr,
+			ip_addr => ip_addr,
+			pkt => pkt
+		);
+
+end rtl;
diff --git a/legacy/TLU_v1c/common/eth_7s_gmii.vhd b/legacy/TLU_v1c/common/eth_7s_gmii.vhd
new file mode 100644
index 00000000..4db967ad
--- /dev/null
+++ b/legacy/TLU_v1c/common/eth_7s_gmii.vhd
@@ -0,0 +1,183 @@
+-- Contains the instantiation of the Xilinx MAC IP plus the GMII PHY interface
+--
+-- Do not change signal names in here without corresponding alteration to the timing contraints file
+--
+-- Dave Newbold, April 2011
+--
+-- $Id$
+
+library ieee;
+use ieee.std_logic_1164.all;
+
+library unisim;
+use unisim.VComponents.all;
+
+use work.emac_hostbus_decl.all;
+
+entity eth_7s_gmii is
+	port(
+		clk125: in std_logic;
+		clk200: in std_logic;
+		rst: in std_logic;
+		gmii_gtx_clk: out std_logic;
+		gmii_txd: out std_logic_vector(7 downto 0);
+		gmii_tx_en: out std_logic;
+		gmii_tx_er: out std_logic;
+		gmii_rx_clk: in std_logic;
+		gmii_rxd: in std_logic_vector(7 downto 0);
+		gmii_rx_dv: in std_logic;
+		gmii_rx_er: in std_logic;
+		tx_data: in std_logic_vector(7 downto 0);
+		tx_valid: in std_logic;
+		tx_last: in std_logic;
+		tx_error: in std_logic;
+		tx_ready: out std_logic;
+		rx_data: out std_logic_vector(7 downto 0);
+		rx_valid: out std_logic;
+		rx_last: out std_logic;
+		rx_error: out std_logic;
+		hostbus_in: in emac_hostbus_in := ('0', "00", "0000000000", X"00000000", '0', '0', '0');
+		hostbus_out: out emac_hostbus_out
+	);
+
+end eth_7s_gmii;
+
+architecture rtl of eth_7s_gmii is
+
+	COMPONENT temac_gbe_v9_0_rgmii
+		PORT (
+			gtx_clk : IN STD_LOGIC;
+			glbl_rstn : IN STD_LOGIC;
+			rx_axi_rstn : IN STD_LOGIC;
+			tx_axi_rstn : IN STD_LOGIC;
+			rx_statistics_vector : OUT STD_LOGIC_VECTOR(27 DOWNTO 0);
+			rx_statistics_valid : OUT STD_LOGIC;
+			rx_mac_aclk : OUT STD_LOGIC;
+			rx_reset : OUT STD_LOGIC;
+			rx_axis_mac_tdata : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);
+			rx_axis_mac_tvalid : OUT STD_LOGIC;
+			rx_axis_mac_tlast : OUT STD_LOGIC;
+			rx_axis_mac_tuser : OUT STD_LOGIC;
+			tx_ifg_delay : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
+			tx_statistics_vector : OUT STD_LOGIC_VECTOR(31 DOWNTO 0);
+			tx_statistics_valid : OUT STD_LOGIC;
+			tx_mac_aclk : OUT STD_LOGIC;
+			tx_reset : OUT STD_LOGIC;
+			tx_axis_mac_tdata : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
+			tx_axis_mac_tvalid : IN STD_LOGIC;
+			tx_axis_mac_tlast : IN STD_LOGIC;
+			tx_axis_mac_tuser : IN STD_LOGIC_VECTOR(0 DOWNTO 0);
+			tx_axis_mac_tready : OUT STD_LOGIC;
+			pause_req : IN STD_LOGIC;
+			pause_val : IN STD_LOGIC_VECTOR(15 DOWNTO 0);
+			speedis100 : OUT STD_LOGIC;
+			speedis10100 : OUT STD_LOGIC;
+			gmii_txd : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);
+			gmii_tx_en : OUT STD_LOGIC;
+			gmii_tx_er : OUT STD_LOGIC;
+			gmii_tx_clk : OUT STD_LOGIC;
+			gmii_rxd : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
+			gmii_rx_dv : IN STD_LOGIC;
+			gmii_rx_er : IN STD_LOGIC;
+			gmii_rx_clk : IN STD_LOGIC;
+			rx_configuration_vector : IN STD_LOGIC_VECTOR(79 DOWNTO 0);
+			tx_configuration_vector : IN STD_LOGIC_VECTOR(79 DOWNTO 0)
+		);
+	END COMPONENT;
+
+	COMPONENT mac_fifo_axi4
+	  PORT (
+		 m_aclk : IN STD_LOGIC;
+		 s_aclk : IN STD_LOGIC;
+		 s_aresetn : IN STD_LOGIC;
+		 s_axis_tvalid : IN STD_LOGIC;
+		 s_axis_tready : OUT STD_LOGIC;
+		 s_axis_tdata : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
+		 s_axis_tlast : IN STD_LOGIC;
+		 s_axis_tuser : IN STD_LOGIC_VECTOR(0 DOWNTO 0);
+		 m_axis_tvalid : OUT STD_LOGIC;
+		 m_axis_tready : IN STD_LOGIC;
+		 m_axis_tdata : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);
+		 m_axis_tlast : OUT STD_LOGIC;
+		 m_axis_tuser : OUT STD_LOGIC_VECTOR(0 DOWNTO 0)
+	  );
+	END COMPONENT;
+	
+	signal rx_data_e: std_logic_vector(7 downto 0);
+	signal rx_clk_e, rx_valid_e, rx_last_e, rx_user_e, rx_rst_e, rx_rst_en, rstn: std_logic;
+	signal rx_user_f, rx_user_ef: std_logic_vector(0 downto 0);
+
+begin
+
+	idelayctrl0: idelayctrl port map(
+		refclk => clk200,
+		rst => rst
+	);
+
+	rstn <= not rst;
+
+	emac0: temac_gbe_v9_0_rgmii
+		port map(
+			gtx_clk => clk125,
+			glbl_rstn => rstn,
+			rx_axi_rstn => '1',
+			tx_axi_rstn => '1',
+			rx_statistics_vector => open,
+			rx_statistics_valid => open,		
+			rx_mac_aclk => rx_clk_e,
+			rx_reset => rx_rst_e,
+			rx_axis_mac_tdata => rx_data_e,
+			rx_axis_mac_tvalid => rx_valid_e,
+			rx_axis_mac_tlast => rx_last_e,
+			rx_axis_mac_tuser => rx_user_e,
+			tx_ifg_delay => X"00",
+			tx_statistics_vector => open,
+			tx_statistics_valid => open,	
+			tx_mac_aclk => open, -- Internally connected to gtx_clk inside core
+			tx_reset => open,
+			tx_axis_mac_tdata => tx_data,
+			tx_axis_mac_tvalid => tx_valid,
+			tx_axis_mac_tlast => tx_last,
+			tx_axis_mac_tuser(0) => tx_error,
+			tx_axis_mac_tready => tx_ready,
+			pause_req => '0',
+			pause_val => X"0000",
+			speedis100 => open,
+			speedis10100 => open,
+			gmii_txd => gmii_txd,
+			gmii_tx_en => gmii_tx_en,
+			gmii_tx_er => gmii_tx_er,
+			gmii_tx_clk => gmii_gtx_clk,
+			gmii_rxd => gmii_rxd,
+			gmii_rx_dv => gmii_rx_dv,
+			gmii_rx_er => gmii_rx_er,
+			gmii_rx_clk => gmii_rx_clk,
+			rx_configuration_vector => X"0000_0000_0000_0000_0812",
+			tx_configuration_vector => X"0000_0000_0000_0000_0012"
+		);
+	
+	rx_user_ef(0) <= rx_user_e;
+	rx_error <= rx_user_f(0);
+	rx_rst_en <= not rx_rst_e;
+	
+	fifo: mac_fifo_axi4
+		port map(
+			m_aclk => clk125,
+			s_aclk => rx_clk_e,
+			s_aresetn => rx_rst_en,
+			s_axis_tvalid => rx_valid_e,
+			s_axis_tready => open,
+			s_axis_tdata => rx_data_e,
+			s_axis_tlast => rx_last_e,
+			s_axis_tuser => rx_user_ef,
+			m_axis_tvalid => rx_valid,
+			m_axis_tready => '1',
+			m_axis_tdata => rx_data,
+			m_axis_tlast => rx_last,
+			m_axis_tuser => rx_user_f
+		); -- Clock domain crossing FIFO
+
+	hostbus_out.hostrddata <= (others => '0');
+	hostbus_out.hostmiimrdy <= '0';
+
+end rtl;
diff --git a/legacy/TLU_v1c/common/eth_7s_rgmii.vhd b/legacy/TLU_v1c/common/eth_7s_rgmii.vhd
new file mode 100644
index 00000000..a3b374a2
--- /dev/null
+++ b/legacy/TLU_v1c/common/eth_7s_rgmii.vhd
@@ -0,0 +1,184 @@
+-- Contains the instantiation of the Xilinx MAC & PHY interface for RGMII
+--
+-- Do not change signal names in here without corresponding alteration to the timing contraints file
+--
+-- Dave Newbold, October 2016
+
+library ieee;
+use ieee.std_logic_1164.all;
+
+library unisim;
+use unisim.VComponents.all;
+use work.emac_hostbus_decl.all;
+
+entity eth_7s_rgmii is
+	port(
+		clk125: in std_logic;
+		clk125_90: in std_logic;
+		clk200: in std_logic;
+		rst: in std_logic;
+		rgmii_txd: out std_logic_vector(3 downto 0);
+		rgmii_tx_ctl: out std_logic;
+		rgmii_txc: out std_logic;
+		rgmii_rxd: in std_logic_vector(3 downto 0);
+		rgmii_rx_ctl: in std_logic;
+		rgmii_rxc: in std_logic;
+		tx_data: in std_logic_vector(7 downto 0);
+		tx_valid: in std_logic;
+		tx_last: in std_logic;
+		tx_error: in std_logic;
+		tx_ready: out std_logic;
+		rx_data: out std_logic_vector(7 downto 0);
+		rx_valid: out std_logic;
+		rx_last: out std_logic;
+		rx_error: out std_logic;
+		hostbus_in: in emac_hostbus_in := ('0', "00", "0000000000", X"00000000", '0', '0', '0');
+		hostbus_out: out emac_hostbus_out;
+		status: out std_logic_vector(3 downto 0)
+	);
+
+end eth_7s_rgmii;
+
+architecture rtl of eth_7s_rgmii is
+
+	COMPONENT temac_gbe_v9_0_rgmii
+		PORT (
+			gtx_clk : IN STD_LOGIC;
+			gtx_clk90 : IN STD_LOGIC;
+			glbl_rstn : IN STD_LOGIC;
+			rx_axi_rstn : IN STD_LOGIC;
+			tx_axi_rstn : IN STD_LOGIC;
+			rx_statistics_vector : OUT STD_LOGIC_VECTOR(27 DOWNTO 0);
+			rx_statistics_valid : OUT STD_LOGIC;
+			rx_mac_aclk : OUT STD_LOGIC;
+			rx_reset : OUT STD_LOGIC;
+			rx_axis_mac_tdata : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);
+			rx_axis_mac_tvalid : OUT STD_LOGIC;
+			rx_axis_mac_tlast : OUT STD_LOGIC;
+			rx_axis_mac_tuser : OUT STD_LOGIC;
+			tx_ifg_delay : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
+			tx_statistics_vector : OUT STD_LOGIC_VECTOR(31 DOWNTO 0);
+			tx_statistics_valid : OUT STD_LOGIC;
+			tx_mac_aclk : OUT STD_LOGIC;
+			tx_reset : OUT STD_LOGIC;
+			tx_axis_mac_tdata : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
+			tx_axis_mac_tvalid : IN STD_LOGIC;
+			tx_axis_mac_tlast : IN STD_LOGIC;
+			tx_axis_mac_tuser : IN STD_LOGIC_VECTOR(0 DOWNTO 0);
+			tx_axis_mac_tready : OUT STD_LOGIC;
+			pause_req : IN STD_LOGIC;
+			pause_val : IN STD_LOGIC_VECTOR(15 DOWNTO 0);
+			speedis100 : OUT STD_LOGIC;
+			speedis10100 : OUT STD_LOGIC;
+			rgmii_txd : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);
+			rgmii_tx_ctl : OUT STD_LOGIC;
+			rgmii_txc : OUT STD_LOGIC;
+			rgmii_rxd : IN STD_LOGIC_VECTOR(3 DOWNTO 0);
+			rgmii_rx_ctl : IN STD_LOGIC;
+			rgmii_rxc : IN STD_LOGIC;
+			inband_link_status : OUT STD_LOGIC;
+			inband_clock_speed : OUT STD_LOGIC_VECTOR(1 DOWNTO 0);
+			inband_duplex_status : OUT STD_LOGIC;
+			rx_configuration_vector : IN STD_LOGIC_VECTOR(79 DOWNTO 0);
+			tx_configuration_vector : IN STD_LOGIC_VECTOR(79 DOWNTO 0)
+		);
+	END COMPONENT;
+
+	COMPONENT mac_fifo_axi4
+	  PORT (
+		 m_aclk : IN STD_LOGIC;
+		 s_aclk : IN STD_LOGIC;
+		 s_aresetn : IN STD_LOGIC;
+		 s_axis_tvalid : IN STD_LOGIC;
+		 s_axis_tready : OUT STD_LOGIC;
+		 s_axis_tdata : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
+		 s_axis_tlast : IN STD_LOGIC;
+		 s_axis_tuser : IN STD_LOGIC_VECTOR(0 DOWNTO 0);
+		 m_axis_tvalid : OUT STD_LOGIC;
+		 m_axis_tready : IN STD_LOGIC;
+		 m_axis_tdata : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);
+		 m_axis_tlast : OUT STD_LOGIC;
+		 m_axis_tuser : OUT STD_LOGIC_VECTOR(0 DOWNTO 0)
+	  );
+	END COMPONENT;
+	
+	signal rx_data_e: std_logic_vector(7 downto 0);
+	signal rx_clk_e, rx_valid_e, rx_last_e, rx_user_e, rx_rst_e, rx_rst_en, rstn: std_logic;
+	signal rx_user_f, rx_user_ef: std_logic_vector(0 downto 0);
+	
+begin
+
+	idelayctrl0: idelayctrl port map(
+		refclk => clk200,
+		rst => rst
+	);
+	
+	rstn <= not rst;
+
+	emac0: temac_gbe_v9_0_rgmii
+		port map(
+			gtx_clk => clk125,
+			gtx_clk90 => clk125_90,
+			glbl_rstn => rstn,
+			rx_axi_rstn => '1',
+			tx_axi_rstn => '1',
+			rx_statistics_vector => open,
+			rx_statistics_valid => open,		
+			rx_mac_aclk => rx_clk_e,
+			rx_reset => rx_rst_e,
+			rx_axis_mac_tdata => rx_data_e,
+			rx_axis_mac_tvalid => rx_valid_e,
+			rx_axis_mac_tlast => rx_last_e,
+			rx_axis_mac_tuser => rx_user_e,
+			tx_ifg_delay => X"00",
+			tx_statistics_vector => open,
+			tx_statistics_valid => open,	
+			tx_mac_aclk => open, -- Internally connected to gtx_clk inside core
+			tx_reset => open,
+			tx_axis_mac_tdata => tx_data,
+			tx_axis_mac_tvalid => tx_valid,
+			tx_axis_mac_tlast => tx_last,
+			tx_axis_mac_tuser(0) => tx_error,
+			tx_axis_mac_tready => tx_ready,
+			pause_req => '0',
+			pause_val => X"0000",
+			speedis100 => open,
+			speedis10100 => open,
+			rgmii_txd => rgmii_txd,
+			rgmii_tx_ctl => rgmii_tx_ctl,
+			rgmii_txc => rgmii_txc,
+			rgmii_rxd => rgmii_rxd,
+			rgmii_rx_ctl => rgmii_rx_ctl,
+			rgmii_rxc => rgmii_rxc,
+			inband_link_status => status(0),
+			inband_clock_speed => status(3 downto 2),
+			inband_duplex_status => status(1),
+			rx_configuration_vector => X"0000_0000_0000_0000_0812",
+			tx_configuration_vector => X"0000_0000_0000_0000_0012"
+		);
+	
+	rx_user_ef(0) <= rx_user_e;
+	rx_error <= rx_user_f(0);
+	rx_rst_en <= not rx_rst_e;
+	
+	fifo: mac_fifo_axi4
+		port map(
+			m_aclk => clk125,
+			s_aclk => rx_clk_e,
+			s_aresetn => rx_rst_en,
+			s_axis_tvalid => rx_valid_e,
+			s_axis_tready => open,
+			s_axis_tdata => rx_data_e,
+			s_axis_tlast => rx_last_e,
+			s_axis_tuser => rx_user_ef,
+			m_axis_tvalid => rx_valid,
+			m_axis_tready => '1',
+			m_axis_tdata => rx_data,
+			m_axis_tlast => rx_last,
+			m_axis_tuser => rx_user_f
+		); -- Clock domain crossing FIFO
+
+	hostbus_out.hostrddata <= (others => '0');
+	hostbus_out.hostmiimrdy <= '0';
+	
+end rtl;
diff --git a/legacy/TLU_v1c/common/eventBuffer_rtl.vhd b/legacy/TLU_v1c/common/eventBuffer_rtl.vhd
new file mode 100644
index 00000000..b60fe514
--- /dev/null
+++ b/legacy/TLU_v1c/common/eventBuffer_rtl.vhd
@@ -0,0 +1,167 @@
+--=============================================================================
+--! @file eventBuffer_rtl.vhd
+--=============================================================================
+--
+-------------------------------------------------------------------------------
+-- --
+-- University of Bristol, High Energy Physics Group.
+-- --
+------------------------------------------------------------------------------- --
+-- VHDL Architecture fmc_mTLU_lib.eventBuffer.rtl
+--
+-- 
+-- Created using using Mentor Graphics HDL Designer(TM) 2010.3 (Build 21)
+--
+LIBRARY ieee;
+USE ieee.std_logic_1164.all;
+USE ieee.numeric_std.all;
+
+USE work.ipbus.all;
+
+--! @brief Stores input words (64bits) for readout over IPBus. 
+--! Uses a FIFO ( 64bits at input, 32 bits at output )
+--
+--
+--! @author David Cussans , David.Cussans@bristol.ac.uk
+--
+--! @date 15:24:50 11/13/12
+--
+--! @version v0.1
+--
+--! @details
+--! \n\nIPBus Address map:
+--! \li 0x0000 - FIFO data
+--! \li 0x0001 - FIFO fill level
+--! \li 0x0010 - FIFO status/control: (Writing Bit-0 resets pointers, Reading bit-1 returns "prog_full" flag)
+--!
+--! <b>Modified by: Alvaro Dosil , alvaro.dosil@usc.es </b>\n
+--------------------------------------------------------------------------------
+
+ENTITY eventBuffer IS
+    GENERIC( 
+        g_EVENT_DATA_WIDTH    : positive := 64;
+        g_IPBUS_WIDTH         : positive := 32;
+        g_READ_COUNTER_WIDTH  : positive := 14
+    );
+    PORT( 
+        clk_4x_logic_i    : IN     std_logic;
+        data_strobe_i     : IN     std_logic;                                         -- Indicates data to transfer
+        event_data_i      : IN     std_logic_vector (g_EVENT_DATA_WIDTH-1 DOWNTO 0);
+        ipbus_clk_i       : IN     std_logic;
+        ipbus_i           : IN     ipb_wbus;
+        ipbus_reset_i     : IN     std_logic;
+        strobe_4x_logic_i : IN     std_logic;
+        --trigger_count_i   : IN     std_logic_vector (g_IPBUS_WIDTH-1 DOWNTO 0); --! Not used yet.
+        rst_fifo_o			: OUT 	std_logic;														--! rst signal to first level fifos
+        buffer_full_o     : OUT    std_logic;                                         --! Goes high when event buffer almost full
+        ipbus_o           : OUT    ipb_rbus;
+        logic_reset_i     : IN     std_logic                                          -- reset buffers when high. Synch withclk_4x_logic
+    );
+
+-- Declarations
+
+END ENTITY eventBuffer ;
+
+--
+ARCHITECTURE rtl OF eventBuffer IS
+    signal s_rd_data_count    : std_logic_vector(g_READ_COUNTER_WIDTH-1 downto 0) := (others =>'0');
+    signal s_fifo_fill_level : std_logic_vector(g_IPBUS_WIDTH-1 downto 0) := (others =>'0');  -- read-counter - 2*write_count
+    signal s_write_strobe    : std_logic := '0';
+    signal s_rst_fifo, s_rst_fifo_ipb : std_logic := '0';                             -- ! Take high to reset FIFO pointers.
+    signal s_fifo_prog_full : std_logic := '0';                       -- ! Controlled by programmable-full flag of FIFO core
+    signal s_fifo_rd_en : std_logic := '0';                           -- ! Take high to clock data out of FIFO
+    signal s_fifo_dout : std_logic_vector(g_IPBUS_WIDTH-1 downto 0);  -- ! Output from FIFO ( fall-through mode)
+    signal s_fifo_valid : std_logic := '1';                           -- ! High when data in FIFO
+    signal s_fifo_full, s_fifo_almost_full, s_fifo_empty, s_fifo_almost_empty : std_logic := '0'; -- ! full and empty FIFO flags
+    signal s_fifo_status_ipb , s_fifo_fill_level_d1 : std_logic_vector(ipbus_o.ipb_rdata'range) := (others => '0');  -- data registered onto IPBus clock
+    signal s_ack : std_logic := '0';      -- -- IPBus ACK signal
+    COMPONENT tlu_event_fifo
+    PORT (
+        rst : IN STD_LOGIC;
+        wr_clk : IN STD_LOGIC;
+        rd_clk : IN STD_LOGIC;
+        din : IN STD_LOGIC_VECTOR(63 DOWNTO 0);
+        wr_en : IN STD_LOGIC;
+        rd_en : IN STD_LOGIC;
+        dout : OUT STD_LOGIC_VECTOR(31 DOWNTO 0);
+        full : OUT STD_LOGIC;
+        almost_full : OUT STD_LOGIC;
+        empty : OUT STD_LOGIC;
+        almost_empty : OUT STD_LOGIC;
+        rd_data_count : OUT STD_LOGIC_VECTOR(13 DOWNTO 0);
+        prog_full : OUT STD_LOGIC
+    );
+    END COMPONENT;
+  
+BEGIN
+
+  -----------------------------------------------------------------------------
+  -- IPBus IO
+  -----------------------------------------------------------------------------
+
+  --! Generate IPBus ACK 
+    ipbus_ack: process(ipbus_clk_i)
+    begin
+    if rising_edge(ipbus_clk_i) then
+        s_ack <= ipbus_i.ipb_strobe and not s_ack;
+    end if;
+    end process ipbus_ack;
+    ipbus_o.ipb_ack <= s_ack;
+    
+    --! Generate FIFO read enable
+    --! take high for one cycle ( when ipb_strobe goes high but before ACK goes
+    --high to follow it
+    s_fifo_rd_en  <= '1' when
+        ipbus_i.ipb_strobe = '1' and ipbus_i.ipb_write = '0' and ipbus_i.ipb_addr(1 downto 0) = "00" and s_ack = '0'
+        else '0';
+    ipbus_o.ipb_err <= '0';
+
+    --! Multiplex output data.
+    with ipbus_i.ipb_addr(1 downto 0) select ipbus_o.ipb_rdata <=
+        s_fifo_dout          when "00",
+        s_fifo_fill_level    when "01",
+        s_fifo_status_ipb	 when "10",
+        (others => '1')      when others;
+
+    ipbus_write: process (ipbus_clk_i)
+    begin  -- process ipbus_write
+    if rising_edge(ipbus_clk_i) then
+        s_rst_fifo_ipb <= '0';
+        if ipbus_i.ipb_strobe = '1' and ipbus_i.ipb_addr(1 downto 0) = "10" and ipbus_i.ipb_write = '1' then
+            s_rst_fifo_ipb <= '1';
+        end if;
+        -- Register data onto IPBus clock domain to ease timing closure.
+        s_fifo_status_ipb <=  X"000000" & "000" & s_fifo_prog_full & s_fifo_full & s_fifo_almost_full & s_fifo_almost_empty & s_fifo_empty;
+        s_fifo_fill_level <= X"0000" & "00" & s_rd_data_count; 
+    end if;
+    end process ipbus_write;
+  
+    rst_fifo_o <= s_rst_fifo_ipb;
+    s_rst_fifo <= s_rst_fifo_ipb or logic_reset_i;
+  
+  -----------------------------------------------------------------------------
+  -- FIFO and fill-level calculation
+  -----------------------------------------------------------------------------
+  
+  -- Instantiate a buffer to store the data. 64-bit on input, 32-bit on output.
+  --event_fifo : entity work.tlu_event_fifo
+    event_fifo : tlu_event_fifo
+    PORT MAP (
+        rst => s_rst_fifo,
+        wr_clk => clk_4x_logic_i,
+        rd_clk => ipbus_clk_i,
+        din => event_data_i,
+        wr_en => data_strobe_i,
+        rd_en => s_fifo_rd_en,
+        dout => s_fifo_dout,
+        full => s_fifo_full,
+        almost_full => s_fifo_almost_full,
+        empty => s_fifo_empty,
+        almost_empty => s_fifo_almost_empty,
+        rd_data_count => s_rd_data_count,
+        prog_full => s_fifo_prog_full
+    );
+    buffer_full_o <= s_fifo_prog_full;
+  
+END ARCHITECTURE rtl;
+
diff --git a/legacy/TLU_v1c/common/eventFormatter_rtl.vhd b/legacy/TLU_v1c/common/eventFormatter_rtl.vhd
new file mode 100644
index 00000000..c33279ab
--- /dev/null
+++ b/legacy/TLU_v1c/common/eventFormatter_rtl.vhd
@@ -0,0 +1,385 @@
+--=============================================================================
+--! @file eventFormatter_rtl.vhd
+--=============================================================================
+--
+-------------------------------------------------------------------------------
+-- --
+-- University of Bristol, High Energy Physics Group.
+-- --
+------------------------------------------------------------------------------- --
+-- VHDL Architecture fmc_mTLU_lib.eventFormatter.rtl
+--
+-- 
+-- Created using using Mentor Graphics HDL Designer(TM) 2010.3 (Build 21)
+--
+LIBRARY ieee;
+USE ieee.std_logic_1164.all;
+USE ieee.numeric_std.all;
+
+USE work.fmcTLU.all;
+USE work.ipbus.all;
+
+use work.ipbus_reg_types.all;
+
+--! @brief Takes the data delivered on each trigger and turns it into 64-bit
+--!        words to push into event buffer
+--! 
+--!
+--! @author David Cussans , David.Cussans@bristol.ac.uk
+--!
+--! @date 15:10:35 11/09/12
+--!
+--! @version v0.1
+--!
+--! @details
+--! \n\n IPBus address:
+--! \n (Decodes 3 bits)
+--! \li 000 - read/write enable data recording.
+--! \li 001 - write = reset timestamp,
+--! \li 010 - read = current timestamp (low  32-bits)
+--! \li 011 - read = current timestamp (high 16-bits)
+--!
+--! -----------------------------------------------------------------------------
+--! \n\n<b>Last changes:</b>\n
+--! Modified by: Alvaro Dosil , alvaro.dosil@usc.es \n
+--! 27/Feb/14 DGC Change "If" when setting s_word2 to a case ... generate. Questasim
+--!               doesn't like having an if that can take an array out of bounds.
+--! 26/Sept/14 DGC Hacked out shutter etc. Can't figure out bug.
+--!-----------------------------------------------------------------------------
+--! @todo Add more input data: \n
+--! a) shutter signals. One per DUT. ?? \n
+--! b) input levels ( for recording edge data ). Record rising and falling edges\n
+--! c) veto levels. One per DUT. Record rising and falling edges.\n
+--! \n
+--! Add backpressure output if short FIFOs fill up? But many inputs won't
+--! respond - e.g. scintillator inputs. This data will be lost....
+--! some ports are redundant - e.g. trigger counter, others confusingly
+--! labelled. Sort this out..
+--------------------------------------------------------------------------------
+
+
+ENTITY eventFormatter IS
+   GENERIC( 
+      g_EVENT_DATA_WIDTH   : positive := 64;
+      g_IPBUS_WIDTH        : positive := 32;
+      g_COUNTER_TRIG_WIDTH : positive := 32;
+      g_COUNTER_WIDTH      : positive := 12;
+      g_EVTTYPE_WIDTH      : positive := 4; --! Width of the event type word
+      --g_NUM_INPUT_TYPES     : positive := 4;               -- Number of different input types (trigger, shutter, edge...)
+      g_NUM_EDGE_INPUTS    : positive := 4;      --! Number of edge inputs
+      g_NUM_TRIG_INPUTS    : positive := 6      --! Number of trigger inputs
+   );
+   PORT( 
+      clk_4x_logic_i         : IN     std_logic;                                           --! Rising edge active
+      ipbus_clk_i            : IN     std_logic;
+      logic_strobe_i         : IN     std_logic;                                           --! Pulses high once every 4 cycles of clk_4x_logic
+      logic_reset_i          : IN     std_logic;                                           --! goes high to reset counters. Synchronous with clk_4x_logic
+      rst_fifo_i             : IN     std_logic;                                           --! Goes high to reset FIFOs
+      buffer_full_i          : IN     std_logic;                                           --! Goes high when output fifo full
+      trigger_i              : IN     std_logic;                                           --! goes high to load trigger data. One cycle of clk_4x_logic
+      trigger_times_i        : IN     t_triggerTimeArray (g_NUM_TRIG_INPUTS-1 DOWNTO 0);   --! Array of trigger times ( w.r.t. logic_strobe)
+      trigger_inputs_fired_i : IN     std_logic_vector (g_NUM_TRIG_INPUTS-1 DOWNTO 0);     --! high for each input that "fired"
+      trigger_cnt_i          : IN     std_logic_vector (g_COUNTER_TRIG_WIDTH-1 DOWNTO 0);  --! Trigger count
+      shutter_i              : IN     std_logic;
+      shutter_cnt_i          : IN     std_logic_vector (g_COUNTER_WIDTH-1 DOWNTO 0);
+      spill_i                : IN     std_logic;
+      spill_cnt_i            : IN     std_logic_vector (g_COUNTER_WIDTH-1 DOWNTO 0);
+      edge_rise_i            : IN     std_logic_vector (g_NUM_EDGE_INPUTS-1 DOWNTO 0);     --! High when rising edge
+      edge_fall_i            : IN     std_logic_vector (g_NUM_EDGE_INPUTS-1 DOWNTO 0);     --! High when falling edge
+      edge_rise_time_i       : IN     t_triggerTimeArray (g_NUM_EDGE_INPUTS-1 DOWNTO 0);   --! Array of edge times ( w.r.t. logic_strobe)
+      edge_fall_time_i       : IN     t_triggerTimeArray (g_NUM_EDGE_INPUTS-1 DOWNTO 0);   --! Array of edge times ( w.r.t. logic_strobe)
+      ipbus_i                : IN     ipb_wbus;
+      ipbus_o                : OUT    ipb_rbus;
+      data_strobe_o          : OUT    std_logic;                                           --! goes high when data ready to load into event buffer
+      event_data_o           : OUT    std_logic_vector (g_EVENT_DATA_WIDTH-1 DOWNTO 0);
+      reset_timestamp_i      : IN     std_logic;                                           --! Taking high causes timestamp to be reset. Combined with internal timestmap reset and written to reset_timestamp_o
+      reset_timestamp_o      : OUT    std_logic                                           --! Goes high for one clock cycle of clk_4x_logic when timestamp reset
+   );
+
+-- Declarations
+
+END eventFormatter ;
+
+--
+ARCHITECTURE rtl OF eventFormatter IS
+
+  
+  constant c_NUM_INPUT_TYPES     : positive := 3+g_NUM_EDGE_INPUTS;               -- Number of different input types (trigger, shutter, edge(0), edge(1)...)
+  
+--  type t_fifo_io is array(natural range <>) of std_logic_vector(g_EVENT_DATA_WIDTH-1 downto 0);
+-- type t_evttype is array(natural range <>) of std_logic_vector(g_EVTTYPE_WIDTH-1 downto 0);
+--  type t_var is array(natural range <>) of std_logic_vector(g_COUNTER_WIDTH-1 downto 0);
+  -- Input types:
+  -- 0 - Trigger
+  -- 1 - Shutter
+  -- 2 - Edge signal
+  -- 3 - Spill
+  
+  --! delayed strobes
+  signal s_event_strobe , s_event_strobe_d1 ,s_event_strobe_d2 ,s_event_strobe_d3 , s_event_strobe_d3_opt : std_logic := '0';
+  signal shutter_i_d1, shutter_i_d2, edge_i_d1, edge_i_d2, spill_i_d1, spill_i_d2 : std_logic := '0';
+  
+--  signal s_evttype : t_evttype(3+g_NUM_EDGE_INPUTS-1 downto 0) := (others=>(others=>'0'));   -- Event type
+  signal s_evttype : std_logic_vector(g_EVTTYPE_WIDTH-1 downto 0) := ( others => '0');
+  -- 0000 trigger internal
+  -- 0001 trigger external
+  -- 0010 shutter falling
+  -- 0011 shutter rising
+  -- 0100 edge falling
+  -- 0101 edge rising
+  -- 0111 spill on
+  -- 0110 spill off
+  
+  signal s_var        : std_logic_vector(g_COUNTER_WIDTH-1 downto 0) := (others => '0');
+    
+  signal s_data_o        : std_logic_vector(g_EVENT_DATA_WIDTH-1 DOWNTO 0);         -- Multiplexed data from FIFOs
+  
+  constant c_COARSE_TIMESTAMP_WIDTH : positive := 48;  -- ! Number of bits in 40MHz timestamp
+  signal s_coarse_timestamp : std_logic_vector(c_COARSE_TIMESTAMP_WIDTH-1 downto 0) := (others => '0');  -- 40MHz timestamp.
+  signal s_coarse_timestamp_ipbus : ipb_reg_v(1 downto 0) := ( others => (others => '0')); --! 40MHz timestamp on IPB clock domain.
+
+--  signal s_event_number : unsigned(g_IPBUS_WIDTH-1 downto 0) := (others => '0');  -- increment after each post-veto trigger.
+
+  signal s_word0 , s_word1, s_word2 			: std_logic_vector(g_EVENT_DATA_WIDTH-1 downto 0) := (others => '0');  -- clocked to data output on logic_strobe , s_logic_strobe_d1 , etc.
+  signal s_word0_p1  : std_logic_vector(g_EVENT_DATA_WIDTH-1 downto 0) := (others => '0');  -- clocked to data output on logic_strobe , s_logic_strobe_d1 , etc.
+  signal s_word0_d1 , s_word1_d1, s_word2_d1 : std_logic_vector(g_EVENT_DATA_WIDTH-1 downto 0) := (others => '0');  -- clocked to data output on logic_strobe , s_logic_strobe_d1 , etc.
+  signal s_word0_d2 , s_word1_d2, s_word2_d2 : std_logic_vector(g_EVENT_DATA_WIDTH-1 downto 0) := (others => '0');  -- clocked to data output on logic_strobe , s_logic_strobe_d1 , etc.
+  signal s_word0_d3 , s_word1_d3, s_word2_d3 : std_logic_vector(g_EVENT_DATA_WIDTH-1 downto 0) := (others => '0');  -- clocked to data output on logic_strobe , s_logic_strobe_d1 , etc.
+  signal trigger_times_d1							: t_triggerTimeArray (g_NUM_TRIG_INPUTS-1 DOWNTO 0) := (others => (others=>'0')); 
+
+  signal s_reset_timestamp_4x, s_reset_timestamp_4x_ipbus , s_reset_timestamp_4x_external , s_reset_timestamp_4x_external_p1 , s_reset_timestamp_4x_external_p2 : std_logic := '0'; --! Single pulse on 4x domain
+  signal s_reset_timestamp_ipbus : std_logic := '0'; --! Single pulse on IPBus clock domain
+  
+  signal s_ipbus_ack      : std_logic := '0';  -- used to produce a delayed IPBus ack signal
+  signal s_enable_record, s_enable_record_ipb : std_logic_vector(g_IPBUS_WIDTH-1 downto 0) := (2 downto 0 => '1', others=>'0'); -- Enable data record
+  signal s_enable_trigger : std_logic := '1'; -- Enable trigger record
+  signal s_enable_shutter : std_logic := '1'; -- Enable shutter record
+  signal s_enable_spill   : std_logic := '1'; -- Enable spill record
+  signal s_enable_edges   : std_logic_vector(g_NUM_EDGE_INPUTS-1 downto 0) := (others=>'0'); -- Enable edges record
+
+  signal s_rst_fifo_d1 , s_rst_fifo_d2 , s_rst_fifo_clk4x  : std_logic := '0';
+  signal s_buffer_full_d1 , s_buffer_full_d2 , s_buffer_full_clk4x  : std_logic := '0';
+  signal s_trigger : std_logic := '0';  -- pulses on risng edge of triger in
+
+  signal s_captured_trigger_times :  t_triggerTimeArray (g_NUM_TRIG_INPUTS-1 DOWNTO 0);   --! Array of trigger times,captured when trigger
+  
+BEGIN
+
+  -----------------------------------------------------------------------------
+  -- IPBus write
+  -----------------------------------------------------------------------------
+  ipbus_write: process (ipbus_clk_i)
+  begin  -- process ipb_clk_i
+    if rising_edge(ipbus_clk_i) then
+
+      s_reset_timestamp_ipbus <= '0';
+      if (ipbus_i.ipb_strobe = '1' and ipbus_i.ipb_write = '1') then
+
+         case ipbus_i.ipb_addr(2 downto 0) is
+           when "000" => s_enable_record_ipb <= ipbus_i.ipb_wdata ; -- Enable data record
+           when "001" => s_reset_timestamp_ipbus <= '1';
+           when others => null;
+         end case;
+          
+       end if;
+
+       s_ipbus_ack <= ipbus_i.ipb_strobe and not s_ipbus_ack;
+       
+    end if;
+  end process ipbus_write;
+
+  ipbus_o.ipb_ack <= s_ipbus_ack;
+  ipbus_o.ipb_err <= '0';
+  
+
+  -----------------------------------------------------------------------------
+  -- IPBUS read
+  -----------------------------------------------------------------------------
+  with ipbus_i.ipb_addr(2 downto 0) select
+    ipbus_o.ipb_rdata <=
+      s_enable_record_ipb                     when "000",
+      s_coarse_timestamp_ipbus(0)              when "010",  
+      s_coarse_timestamp_ipbus(1)             when "011",  
+      (others => '1')                         when others;
+
+  cmp_timestampDomainCross : entity work.synchronizeRegisters
+    generic map (
+      g_NUM_REGISTERS => 2 )
+    port map (
+      clk_input_i  => clk_4x_logic_i,
+      data_i       => ( "0000000000000000" & s_coarse_timestamp(s_coarse_timestamp'left downto 32) , s_coarse_timestamp(31 downto 0) ) ,
+      data_o       => s_coarse_timestamp_ipbus, 
+      clk_output_i => ipbus_clk_i
+      );
+
+  -- Move reset timestamp pulse onto clk_4x_logic
+  cmp_resetTimestampDomainCross: entity work.pulseClockDomainCrossing
+    port map (
+      clk_input_i  => ipbus_clk_i,
+      pulse_i      => s_reset_timestamp_ipbus,
+      clk_output_i => clk_4x_logic_i, 
+      pulse_o      => s_reset_timestamp_4x_ipbus
+    );
+
+  -- Combine reset timestamp from IPBus and external source
+  -- purpose: combines resets from IPBus and external source onto clk_4x_logic_i
+  -- type   : combinational
+  -- inputs : clk_4x_logic_i
+  -- outputs: s_reset_timestamp_4x
+  p_combine_reset_timestamps: process (clk_4x_logic_i) is
+  begin  -- process p_combine_reset_timestamps
+    if rising_edge(clk_4x_logic_i) then
+      s_reset_timestamp_4x_external_p2 <= reset_timestamp_i;
+      s_reset_timestamp_4x_external_p1 <= s_reset_timestamp_4x_external_p2 ;
+      s_reset_timestamp_4x_external    <= s_reset_timestamp_4x_external_p1 ;
+      s_reset_timestamp_4x <= s_reset_timestamp_4x_external or s_reset_timestamp_4x_ipbus;
+    end if;
+  end process p_combine_reset_timestamps;
+  
+  reset_timestamp_o <= s_reset_timestamp_4x;
+  
+  -- Change control signals from IPBus clock domain on to clk_4x_logic
+  -- CHANGE ME - use synchronize registers instead.
+  p_signals_clk_domain: process (clk_4x_logic_i )
+  begin  -- process p_internal_triggers
+    if rising_edge(clk_4x_logic_i) then
+      s_enable_record  <= s_enable_record_ipb;
+		
+      s_enable_trigger <= s_enable_record(0);
+      s_enable_shutter <= s_enable_record(1);
+      s_enable_spill <= s_enable_record(2);
+      s_enable_edges <= s_enable_record(g_NUM_EDGE_INPUTS-1+3 downto 3);
+
+      -- move  "reset fifo" and "buffer full"  signals onto clock4x domain
+      s_rst_fifo_d1 <= rst_fifo_i;
+      s_rst_fifo_d2 <= s_rst_fifo_d1;
+      s_rst_fifo_clk4x <= s_rst_fifo_d2 ;
+      s_buffer_full_d1 <= buffer_full_i;
+      s_buffer_full_d2 <= s_buffer_full_d1;
+      s_buffer_full_clk4x <= s_buffer_full_d2;  
+      
+    end if;
+  end process p_signals_clk_domain;
+
+  cmp_triggerEdgeDetect: entity work.single_pulse
+    port map (
+      level => trigger_i,
+      clk => clk_4x_logic_i,
+      pulse => s_trigger
+      );
+  
+  -- purpose: generate delayed strobes and write enable flags to the FIFOs
+  -- type   : combinational
+  -- inputs : clk_4x_logic_i , s_FIFO_rd
+  -- outputs: s_event_strobe_d1 , s_event_strobe_d2 , s_event_strobe_d3 , s_FIFO_rd_d , s_**_evttype
+  p_ff_rst: process (clk_4x_logic_i)
+  begin  -- process p_generate_strobes
+    if rising_edge(clk_4x_logic_i) then      
+      if s_rst_fifo_clk4x = '1' then
+        s_event_strobe_d1 <= '0';
+        s_event_strobe_d2 <= '0';
+        s_event_strobe_d3 <= '0';
+		
+      else
+        -- set s_event_strobe high if trigger_i is high and pipeline is empty
+        -- ( i.e. all event_strobe are zero)
+
+        s_event_strobe_d1 <= s_trigger and s_enable_trigger and not buffer_full_i and
+                             (not s_event_strobe_d1 ) and (not s_event_strobe_d2 ) and (not s_event_strobe_d3 );
+        s_event_strobe_d2 <= s_event_strobe_d1;
+        s_event_strobe_d3 <= s_event_strobe_d2;
+		
+      end if;
+    end if;
+  end process p_ff_rst;
+  
+  p_ff: process (clk_4x_logic_i)
+  begin  -- process p_generate_strobes
+    if rising_edge(clk_4x_logic_i) then
+
+		trigger_times_d1 <= trigger_times_i;
+
+        s_word0 <= s_word0_p1;
+		s_word0_d1 <= s_word0;
+		s_word1_d1 <= s_word1;
+		s_word1_d2 <= s_word1_d1;
+		s_word2_d1 <= s_word2;
+		s_word2_d2 <= s_word2_d1;
+		s_word2_d3 <= s_word2_d2;
+		
+	end if;
+  end process;
+	
+  -- If there are more than 4 trigger inputs we need to fill a second word.
+  -- .. do this by having an optional strobe.
+  -- If 4 or fewer trigger inputs, just leave s_event_strobe_d3_opt at zero..
+  gen_strobe_d3: if (g_NUM_TRIG_INPUTS > 4) generate
+    s_event_strobe_d3_opt <= s_event_strobe_d3;
+  end generate;
+
+-------------------------------------------------------------------------------
+-- Trigger event formater
+-------------------------------------------------------------------------------
+  s_evttype <= "0000" when unsigned(trigger_inputs_fired_i) = 0 else "0001";
+
+  --s_var <= trigger_inputs_fired_i & std_logic_vector(to_unsigned(0,s_var'length-g_NUM_TRIG_INPUTS));
+  s_var <= std_logic_vector(to_unsigned(0,s_var'length-g_NUM_TRIG_INPUTS)) & trigger_inputs_fired_i; -- Pad with zeroes on the left.
+
+  s_word0_p1 <= s_evttype & s_var & s_coarse_timestamp;
+  
+  s_word1 <= "000" & trigger_times_d1(0) & "000" & trigger_times_d1(1) &
+             "000" & trigger_times_d1(2) & "000" & trigger_times_d1(3) &
+             trigger_cnt_i;
+				 
+	
+  -- Different number of trigger inputs require packing into s_word2 in
+  -- different ways.
+  -- Do this in a generate since g_NUM_TRIG_INPUTS is static and
+  -- Questasim doesn't like refering to indices outside declared range.
+    gen_word2_init: if (g_NUM_TRIG_INPUTS <= 4) generate
+       s_word2 <= (others=>'0');
+    end generate;
+  --s_word2 <= (others=>'0'); -- Set all bits to zero
+  -- then override with the following assignments....
+    gen_word2: for v_trigInput in 4 to g_NUM_TRIG_INPUTS-1 generate
+        s_word2( (((11-v_trigInput)*8)+c_NUM_TIME_BITS-1) downto ((11-v_trigInput)*8) ) <= trigger_times_i(v_trigInput);
+    end generate;
+  
+      
+  --! Could also output data on trigger_i , but let's use the delayed signals. \n
+  --! The counters are one cycle delayed from the signal generation
+  p_fifo_i : process (clk_4x_logic_i)
+  begin  
+    if rising_edge(clk_4x_logic_i) then
+      data_strobe_o <= s_event_strobe_d1 or s_event_strobe_d2 or s_event_strobe_d3_opt;
+      
+      if s_event_strobe_d1 = '1' then
+        event_data_o <= s_word0_d1;
+      elsif s_event_strobe_d2 = '1' then
+        event_data_o <= s_word1_d2;
+      elsif s_event_strobe_d3_opt = '1' then
+        event_data_o <= s_word2_d3;
+      else
+        event_data_o <= (others=>'0');
+      end if;
+    end if;
+  end process;
+		
+
+  cmp_timeStampCounter: entity work.counterWithReset
+    generic map (
+      g_COUNTER_WIDTH => s_coarse_timestamp'length)
+    port map (
+      clock_i  => clk_4x_logic_i,
+      reset_i  => s_reset_timestamp_4x or logic_reset_i,
+      enable_i => logic_strobe_i,
+      result_o => s_coarse_timestamp);
+    
+ 
+  -- Generate data in format decided at DESY. Put out two strobes for the
+  -- two 64 bit words.
+  -- get trigger inputs to also generate a global time-stamp ??
+  -- add trigger_inputs_active_i array (to indicate which triggers fired)
+  
+END ARCHITECTURE rtl;
+
diff --git a/legacy/TLU_v1c/common/fmcTLU_pkg.vhd b/legacy/TLU_v1c/common/fmcTLU_pkg.vhd
new file mode 100644
index 00000000..cb6b1010
--- /dev/null
+++ b/legacy/TLU_v1c/common/fmcTLU_pkg.vhd
@@ -0,0 +1,27 @@
+--=============================================================================
+--! @file fmcTLU_pkg.vhd
+--=============================================================================
+---
+--! @brief VHDL Package Header fmc_mTLU_lib.fmcTLU
+--
+--! @author  phdgc
+--! @date  16:44:31 11/08/12         
+--
+-- using Mentor Graphics HDL Designer(TM) 2010.3 (Build 21)
+--
+LIBRARY ieee;
+USE ieee.std_logic_1164.all;
+PACKAGE fmcTLU IS
+  
+  constant c_NUM_TIME_BITS : natural := 5;
+  constant c_NUM_TRIG_INPUTS : natural := 4;
+  constant c_EVENT_DATA_WIDTH : natural := 32;
+  constant c_DATA_WIDTH : natural := 32;
+  
+  subtype t_triggerTime is std_logic_vector(c_NUM_TIME_BITS-1 downto 0);
+  --type    t_triggerTimeArray is array(natural range <>) of t_triggerTime;
+  type    t_triggerTimeArray is array(natural range <>) of std_logic_vector(c_NUM_TIME_BITS-1 downto 0) ;
+
+  type t_registerArray is array(natural range <>) of std_logic_vector(c_DATA_WIDTH-1 downto 0) ;
+  
+END fmcTLU;
diff --git a/legacy/TLU_v1c/common/fmcTLU_pkg_body.vhd b/legacy/TLU_v1c/common/fmcTLU_pkg_body.vhd
new file mode 100644
index 00000000..9437776d
--- /dev/null
+++ b/legacy/TLU_v1c/common/fmcTLU_pkg_body.vhd
@@ -0,0 +1,13 @@
+--=============================================================================
+--! @file fmcTLU_pkg_body.vhd
+--=============================================================================
+---
+--! @brief VHDL Package Body fmc_mTLU_lib.fmcTLU
+--
+--! @author  phdgc
+--! @date  16:45:08 11/08/12         
+--
+-- using Mentor Graphics HDL Designer(TM) 2010.3 (Build 21)
+--
+PACKAGE BODY fmcTLU IS
+END fmcTLU;
diff --git a/legacy/TLU_v1c/common/handshakes_rtl.vhd b/legacy/TLU_v1c/common/handshakes_rtl.vhd
new file mode 100644
index 00000000..ab893a2a
--- /dev/null
+++ b/legacy/TLU_v1c/common/handshakes_rtl.vhd
@@ -0,0 +1,248 @@
+--=============================================================================
+--! @file handshakes_rtl.vhd
+--=============================================================================
+--
+-------------------------------------------------------------------------------
+-- --
+-- University of Santiago de Compostela, High Energy Physics Group.
+-- --
+------------------------------------------------------------------------------- --
+-- VHDL Architecture fmc_mTLU_lib.handshakes.rtl
+--
+--! @brief Handshakes between TLU and DUTs. \n
+--
+--
+--! @author Alvaro Dosil , alvaro.dosil@usc.es
+--
+--! @date 12:08:30 25/06/14
+--
+--! @version v0.1
+--
+--! @details
+--!
+--!
+--! <b>Dependencies:</b>\n
+--!
+--! <b>References:</b>\n
+--!
+--! <b>Modified by: </b>\n
+--! Author: 
+-------------------------------------------------------------------------------
+--! \n\n<b>Last changes:</b>\n
+-------------------------------------------------------------------------------
+--! @todo \n
+--! <another thing to do> \n
+--
+--------------------------------------------------------------------------------
+-- 
+-- Created using using Mentor Graphics HDL Designer(TM) 2010.3 (Build 21)
+--
+LIBRARY ieee;
+USE ieee.std_logic_1164.all;
+USE ieee.numeric_std.all;
+
+USE work.ipbus.all;
+use work.ipbus_reg_types.all;
+
+ENTITY handshakes IS
+   GENERIC( 
+      g_IPBUS_WIDTH         : positive := 32
+   );
+   PORT( 
+      clk_i    			: IN     std_logic;
+		Trigger_i			: IN 		std_logic;
+      ipbus_clk_i       : IN     std_logic;
+      ipbus_i           : IN     ipb_wbus;
+      ipbus_reset_i     : IN     std_logic;
+      ipbus_o           : OUT    ipb_rbus;
+      logic_reset_i     : IN     std_logic;    
+		Busy_i				: IN		std_logic;
+		AIDAhandshake_o	: OUT		std_logic;		-- running an AIDA handshake or the old EUDET handshake
+		Trigger_o			: OUT 	std_logic;
+		rst_or_clk_o		: OUT 	std_logic		-- CONT in schematics
+   );
+
+-- Declarations
+
+END ENTITY handshakes ;
+
+--
+ARCHITECTURE rtl OF handshakes IS
+
+	signal s_handshakeEnabled : std_logic_vector(g_IPBUS_WIDTH-1 downto 0);
+	signal s_Shutter, s_T0sync : std_logic;
+	signal s_Trigger, s_TrigAux : std_logic := '0';
+	signal s_Busy, s_Busy_d1, s_Busy_d2, s_Busy_d3 : std_logic;
+	
+	signal TPx3_T0syncLen 	: std_logic_vector(g_IPBUS_WIDTH-1 DOWNTO 0) := x"00000004";   	--! T0-sync length
+	signal TPx3_Start_T0sync 	: std_logic;   																--! Flag to start the T0-sync signal
+
+	signal s_Veto 			: std_logic := '0';
+	signal s_WU				: std_logic := '0';
+	signal s_NMaxPulses 	: std_logic_vector(g_IPBUS_WIDTH-1 DOWNTO 0) := (others=>'0');
+	signal s_SuDTime 		: std_logic_vector(g_IPBUS_WIDTH-1 DOWNTO 0) := (others=>'0');
+	signal s_PulseLen 	: std_logic_vector(g_IPBUS_WIDTH-1 DOWNTO 0) := x"00000001";
+	signal s_IpDTime 		: std_logic_vector(g_IPBUS_WIDTH-1 DOWNTO 0) := x"00000001";
+	signal s_RearmTime 	: std_logic_vector(g_IPBUS_WIDTH-1 DOWNTO 0) := x"10000000";
+	signal s_PulseDelay 	: std_logic_vector(g_IPBUS_WIDTH-1 DOWNTO 0) := (others=>'0');
+	signal s_MaxPulses	: std_logic;
+	signal s_pulse			: std_logic;
+	
+	constant c_N_CTRL : positive := 13;
+	constant c_N_STAT : positive := 13;
+	signal s_status_to_ipbus, s_sync_status_to_ipbus : ipb_reg_v(c_N_STAT-1 downto 0);
+	signal s_control_from_ipbus,s_sync_control_from_ipbus  : ipb_reg_v(c_N_CTRL-1 downto 0);
+
+BEGIN
+
+  -----------------------------------------------------------------------------
+  -- IPBus interface 
+  -----------------------------------------------------------------------------
+  ipbus_registers: entity work.ipbus_ctrlreg_v
+    generic map(
+      N_CTRL => c_N_CTRL,
+      N_STAT => c_N_STAT
+      )
+    port map(
+      clk => ipbus_clk_i,
+      reset=> '0',--ipbus_reset_i ,
+      ipbus_in=>  ipbus_i,
+      ipbus_out=> ipbus_o,
+      d=>  s_sync_status_to_ipbus,
+      q=>  s_control_from_ipbus,
+      stb=>  open
+      );
+
+  -- Synchronize registers from logic clock to ipbus.
+    sync_status: entity work.synchronizeRegisters
+    generic map (
+      g_NUM_REGISTERS => c_N_STAT )
+    port map (
+      clk_input_i => clk_i,
+      data_i      =>  s_status_to_ipbus,
+      data_o      => s_sync_status_to_ipbus,
+      clk_output_i => ipbus_clk_i);
+
+    -- Synchronize registers from logic clock to ipbus.
+    sync_ctrl: entity work.synchronizeRegisters
+    generic map (
+      g_NUM_REGISTERS => c_N_CTRL )
+    port map (
+      clk_input_i => ipbus_clk_i,
+      data_i      =>  s_control_from_ipbus,
+      data_o      => s_sync_control_from_ipbus,
+      clk_output_i => clk_i);
+		
+	-----------------------------------------------------------------------------
+	-- Logic not ready to use
+	-----------------------------------------------------------------------------
+		
+	--Map the control registers
+	s_handshakeEnabled <= s_sync_control_from_ipbus(0);
+	
+	s_status_to_ipbus(0) <= s_handshakeEnabled;
+
+	
+	-- No handshake registers
+	s_NMaxPulses <= s_sync_control_from_ipbus(5);
+	s_SuDTime <= s_sync_control_from_ipbus(6);
+	s_PulseLen <= s_sync_control_from_ipbus(7);
+	s_IpDTime <= s_sync_control_from_ipbus(8);
+	s_RearmTime <= s_sync_control_from_ipbus(9);
+	s_PulseDelay <= s_sync_control_from_ipbus(10);
+	s_Veto <= s_sync_control_from_ipbus(11)(0);
+	s_WU <= s_sync_control_from_ipbus(11)(1);
+	
+	s_status_to_ipbus(5) <= s_NMaxPulses;
+	s_status_to_ipbus(6) <= s_SuDTime;
+	s_status_to_ipbus(7) <= s_PulseLen;
+	s_status_to_ipbus(8) <= s_IpDTime;
+	s_status_to_ipbus(9) <= s_RearmTime;
+	s_status_to_ipbus(10) <= s_PulseDelay;
+	s_status_to_ipbus(11) <= x"0000000"& "00" & s_WU & s_Veto;
+	s_status_to_ipbus(12) <= x"0000000"& "000" & s_MaxPulses;
+	
+	-- TPx3 registers
+	TPx3_Start_T0sync <= s_sync_control_from_ipbus(1)(0);
+	TPx3_T0syncLen 	<= x"00000001" when s_sync_control_from_ipbus(2)<x"000000002" else
+								s_sync_control_from_ipbus(2);
+  
+	s_status_to_ipbus(1) <= x"0000000" & "000" & TPx3_Start_T0sync;
+	s_status_to_ipbus(2) <= TPx3_T0syncLen;
+  
+  
+	-----------------------------------------------------------------------------
+	-- Synchronization - Rewrite!!!
+	-----------------------------------------------------------------------------
+	p_trigger : process(Trigger_i, s_Trigger)
+	begin
+		if Trigger_i = '1' then
+			s_TrigAux <= '1';
+		elsif s_Trigger = '1' then
+			s_TrigAux <= '0';
+		end if;
+	end process p_trigger;
+	
+	p_sync: process (clk_i )
+	begin  -- process p_run_counter
+		if rising_edge(clk_i) then
+			s_Trigger <= s_TrigAux;
+			
+			s_Busy_d1 <= Busy_i;
+			s_Busy_d2 <= s_Busy_d1;
+			s_Busy_d3 <= s_Busy_d2;
+			s_Busy <= s_Busy_d2;
+		end if;
+  end process p_sync;
+	
+	-----------------------------------------------------------------------------
+	-- I/O
+	-----------------------------------------------------------------------------
+	Trigger_o <= 	s_Trigger when s_handshakeEnabled(1 downto 0) = "00"  and s_Busy = '0' else
+						s_pulse when s_handshakeEnabled(1 downto 0) = "01" else							-- No handshake
+						s_Shutter when s_handshakeEnabled(1 downto 0) = "10" else						-- TPx3 handshake
+						'0';
+	rst_or_clk_o <= 	s_T0sync when s_handshakeEnabled(1 downto 0) = "10" else
+							'0';
+	
+	AIDAhandshake_o <= not s_handshakeEnabled(3); 	-- s_handshakeEnabled = x"00001000" => EUDET handshake.
+																	-- All handshakes with s_handshakeEnabled(3)='0' are AIDA handshakes
+	
+	-- No Handshake (GPP)
+	No_handshake:  entity work.GPP
+	GENERIC MAP( 
+		g_IPBUS_WIDTH => g_IPBUS_WIDTH)
+	PORT MAP( 
+		clk_i       		=> clk_i,
+		Enable_i          => not (s_Busy or s_Veto),
+      Reset_i           => logic_reset_i,
+      RstPulsCnt_i     	=> '0',
+      Trigger_i         => s_Trigger,
+      NMaxPulses_i      => s_NMaxPulses,
+      SuDTime_i         => s_SuDTime,
+      PulsLen_i     		=> s_PulseLen,
+      IpDTime_i         => s_IpDTime,
+		RearmTime_i       => s_RearmTime,
+      Force_PullDown_i  => s_Busy or s_Veto,
+      WU_i              => s_WU,
+      PulseDelay_i      => s_PulseDelay,
+		event_number_o    => open,
+      MaxPulses_o       => s_MaxPulses,
+      Pulse_o           => s_pulse,
+      Pulse_d_o         => open);
+		
+	-- TPx3 Handshake
+	TPx3_logic: entity work.TPx3Logic
+   PORT MAP( 
+      clk_i					=> clk_i,
+		Start_T0sync_i		=> TPx3_Start_T0sync,
+		T0syncLen_i			=> TPx3_T0syncLen,
+      logic_reset_i     => logic_reset_i,
+      Busy_i				=> s_Busy,
+		Veto_i				=> s_Veto,
+		Shutter_o			=> s_Shutter,
+		T0sync_o 			=>	s_T0sync
+   );
+
+END ARCHITECTURE rtl;
+
diff --git a/legacy/TLU_v1c/common/i2c_master_rtl.vhd b/legacy/TLU_v1c/common/i2c_master_rtl.vhd
new file mode 100644
index 00000000..6d0bb973
--- /dev/null
+++ b/legacy/TLU_v1c/common/i2c_master_rtl.vhd
@@ -0,0 +1,97 @@
+--=============================================================================
+--! @file i2c_master_rtl.vhd
+--=============================================================================
+--
+-------------------------------------------------------------------------------
+-- --
+-- University of Bristol, High Energy Physics Group.
+-- --
+------------------------------------------------------------------------------- --
+-- VHDL Architecture work.i2c_master.rtl
+--
+--! @brief Wraps the Wishbone I2C master in a wrapper where the IPBus signals\n
+--! are bundled together in a record\n
+--
+--! @author David Cussans , David.Cussans@bristol.ac.uk
+--
+--! @date 17:22:12 11/30/12
+--
+--! @version v0.1
+--
+--! @details
+--!
+--!
+--! <b>Dependencies:</b>\n
+--!
+--! <b>References:</b>\n
+--!
+--! <b>Modified by:</b>\n
+--! Author: 
+-------------------------------------------------------------------------------
+--! \n\n<b>Last changes:</b>\n
+-------------------------------------------------------------------------------
+--! @todo <next thing to do> \n
+--! <another thing to do> \n
+--
+--------------------------------------------------------------------------------
+-- 
+-- Created using using Mentor Graphics HDL Designer(TM) 2010.3 (Build 21)
+--
+LIBRARY ieee;
+USE ieee.std_logic_1164.all;
+USE ieee.numeric_std.all;
+
+USE work.ipbus.all;
+
+ENTITY i2c_master IS
+   PORT( 
+      i2c_scl_i     : IN     std_logic;
+      i2c_sda_i     : IN     std_logic;
+      ipbus_clk_i   : IN     std_logic;
+      ipbus_i       : IN     ipb_wbus;    -- Signals from IPBus core to slave
+      ipbus_reset_i : IN     std_logic;
+      i2c_scl_enb_o : OUT    std_logic;
+      i2c_sda_enb_o : OUT    std_logic;
+      ipbus_o       : OUT    ipb_rbus     -- signals from slave to IPBus core
+   );
+
+-- Declarations
+
+END ENTITY i2c_master ;
+
+--
+ARCHITECTURE rtl OF i2c_master IS
+  
+  --signal s_i2c_scl, s_i2c_scl_o, s_i2c_scl_enb, s_i2c_sda, s_i2c_sda_enb : std_logic ;
+  
+BEGIN
+  
+  --i2c_scl_b <= s_i2c_scl when (s_i2c_scl_enb = '0') else 'Z';
+  --i2c_sda_b <= s_i2c_sda when (s_i2c_sda_enb = '0') else 'Z';
+
+  i2c_interface: entity work.i2c_master_top port map(
+                wb_clk_i => ipbus_clk_i,
+                wb_rst_i => ipbus_reset_i,
+                arst_i => '1',
+                wb_adr_i => ipbus_i.ipb_addr(2 downto 0),
+                wb_dat_i => ipbus_i.ipb_wdata(7 downto 0),
+                wb_dat_o => ipbus_o.ipb_rdata(7 downto 0),
+                wb_we_i => ipbus_i.ipb_write,
+                wb_stb_i => ipbus_i.ipb_strobe,
+                wb_cyc_i => '1',
+                wb_ack_o => ipbus_o.ipb_ack,
+                wb_inta_o => open,
+                scl_pad_i => i2c_scl_i,
+                scl_pad_o => open,
+                scl_padoen_o => i2c_scl_enb_o,
+                sda_pad_i => i2c_sda_i,
+                sda_pad_o => open,
+                sda_padoen_o => i2c_sda_enb_o
+        );
+        
+  
+  ipbus_o.ipb_rdata(31 downto 8) <= ( others => '0');
+  ipbus_o.ipb_err <= '0'; -- never return an error.
+  
+END ARCHITECTURE rtl;
+
diff --git a/legacy/TLU_v1c/common/ipbus_addr_decode.vhd b/legacy/TLU_v1c/common/ipbus_addr_decode.vhd
new file mode 100644
index 00000000..dc630e87
--- /dev/null
+++ b/legacy/TLU_v1c/common/ipbus_addr_decode.vhd
@@ -0,0 +1,50 @@
+-- Address decode logic for ipbus fabric
+--
+-- This file has been AUTOGENERATED from the address table - do not hand edit
+--
+-- We assume the synthesis tool is clever enough to recognise exclusive conditions
+-- in the if statement.
+--
+-- Dave Newbold, February 2011
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.all;
+use ieee.numeric_std.all;
+use work.ipbus.all;
+
+package ipbus_addr_decode is
+
+  function ipbus_addr_sel(signal addr : in std_logic_vector(31 downto 0)) return integer;
+
+end ipbus_addr_decode;
+
+package body ipbus_addr_decode is
+
+  function ipbus_addr_sel(signal addr : in std_logic_vector(31 downto 0)) return integer is
+    variable sel : integer;
+  begin
+		if    std_match(addr, "-----------------------0001-----") then
+			sel := 0; -- DUTInterfaces / base 00000020 / mask 0000001f
+		elsif std_match(addr, "-----------------------0010-----") then
+			sel := 1; -- triggerInputs / base 00000040 / mask 0000001f
+		elsif std_match(addr, "-----------------------0011-----") then
+			sel := 2; -- triggerLogic / base 00000060 / mask 0000001f
+		elsif std_match(addr, "-----------------------0100-----") then
+			sel := 3; -- eventBuffer / base 00000080 / mask 0000001f
+		elsif std_match(addr, "-----------------------0101-----") then
+			sel := 4; -- logic_clocks / base 000000a0 / mask 0000001f
+		elsif std_match(addr, "-----------------------0110-----") then
+			sel := 5; -- i2c_master / base 000000c0 / mask 00000007
+		elsif std_match(addr, "-----------------------1010-----") then
+                        sel := 6; -- Event_Formatter / base 00000140 / mask 0000001f
+                elsif std_match(addr, "-----------------------1011-----") then
+                        sel := 7; -- TPix3_iface   / base 00000160 / mask 0000001f
+		elsif std_match(addr, "-----------------------0000-----") then
+			sel := 8; -- version / base 00000000 / mask 00000000
+		else
+			sel := 99;
+		end if;
+		return sel;
+	end ipbus_addr_sel;
+ 
+end ipbus_addr_decode;
diff --git a/legacy/TLU_v1c/common/ipbus_decode_ipbus_example.vhd b/legacy/TLU_v1c/common/ipbus_decode_ipbus_example.vhd
new file mode 100644
index 00000000..a315ed03
--- /dev/null
+++ b/legacy/TLU_v1c/common/ipbus_decode_ipbus_example.vhd
@@ -0,0 +1,69 @@
+-- Address decode logic for ipbus fabric
+-- 
+-- 
+-- We assume the synthesis tool is clever enough to recognise exclusive conditions
+-- in the if statement.
+-- 
+-- Dave Newbold, February 2011
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.all;
+use ieee.numeric_std.all;
+
+package ipbus_decode_ipbus_example is
+
+  constant IPBUS_SEL_WIDTH: positive := 5; -- Should be enough for now?
+  subtype ipbus_sel_t is std_logic_vector(IPBUS_SEL_WIDTH - 1 downto 0);
+  function ipbus_sel_ipbus_example(addr : in std_logic_vector(31 downto 0)) return ipbus_sel_t;
+
+-- START automatically  generated VHDL the Fri Oct  7 12:10:31 2016 
+  constant N_SLV_CTRL_REG: integer := 0; --for tests
+  constant N_SLV_REG: integer := 1; -- for tests
+  constant N_SLV_I2C_0: integer := 2; --I2C core for the TLU
+  constant N_SLV_DUT: integer :=3;
+  constant N_SLV_SHUT: integer :=4;
+  constant N_SLV_EVBUF: integer :=5;
+  constant N_SLV_EVFMT: integer :=6;
+  constant N_SLV_TRGIN: integer :=7;
+  constant N_SLV_TRGLGC: integer :=8;
+  constant N_SLV_LGCCLK: integer :=9;
+    
+  constant N_SLAVES: integer := 10; --Total number of slaves
+-- END automatically generated VHDL
+  --constant N_I2C_CORES: integer := 3; --How many I2C cores
+    
+end ipbus_decode_ipbus_example;
+
+package body ipbus_decode_ipbus_example is
+
+  function ipbus_sel_ipbus_example(addr : in std_logic_vector(31 downto 0)) return ipbus_sel_t is
+    variable sel: ipbus_sel_t;
+  begin
+
+-- START automatically  generated VHDL the Fri Oct  7 12:10:31 2016 
+    if    std_match(addr, "-----------------000----------0-") then
+      sel := ipbus_sel_t(to_unsigned(N_SLV_CTRL_REG, IPBUS_SEL_WIDTH)); -- ctrl_reg / base 0x00000000 / mask 0x00003002
+    elsif std_match(addr, "-----------------000----------1-") then
+      sel := ipbus_sel_t(to_unsigned(N_SLV_REG, IPBUS_SEL_WIDTH)); -- reg / base 0x00000002 / mask 0x00003002
+    --elsif std_match(addr, "-----------------001------------") then
+      --sel := ipbus_sel_t(to_unsigned(N_SLV_RAM, IPBUS_SEL_WIDTH)); -- ram / base 0x00001000 / mask 0x00003000
+    --elsif std_match(addr, "-----------------010----------0-") then
+     -- sel := ipbus_sel_t(to_unsigned(N_SLV_PRAM, IPBUS_SEL_WIDTH)); -- pram / base 0x00002000 / mask 0x00003002
+    elsif std_match(addr, "-----------------011------------") then
+      sel := ipbus_sel_t(to_unsigned(N_SLV_I2C_0, IPBUS_SEL_WIDTH)); -- i2c / base 0x00003000 / mask 0x00003002
+    elsif std_match(addr, "-----------------100------------") then
+      sel := ipbus_sel_t(to_unsigned(N_SLV_DUT, IPBUS_SEL_WIDTH)); -- i2c / base 0x00004000 / mask 0x00003002
+    elsif std_match(addr, "-----------------101------------") then
+      sel := ipbus_sel_t(to_unsigned(N_SLV_TRGIN, IPBUS_SEL_WIDTH)); -- i2c / base 0x00005000 / mask 0x00003002
+-- END automatically generated VHDL
+
+    else
+        sel := ipbus_sel_t(to_unsigned(N_SLAVES, IPBUS_SEL_WIDTH));
+    end if;
+
+    return sel;
+
+  end function ipbus_sel_ipbus_example;
+
+end ipbus_decode_ipbus_example;
+
diff --git a/legacy/TLU_v1c/common/ipbus_decode_tlu.vhd b/legacy/TLU_v1c/common/ipbus_decode_tlu.vhd
new file mode 100644
index 00000000..114da401
--- /dev/null
+++ b/legacy/TLU_v1c/common/ipbus_decode_tlu.vhd
@@ -0,0 +1,73 @@
+-- Address decode logic for ipbus fabric
+-- 
+-- 
+-- 
+-- Paolo Baesso, February 2017
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.all;
+use ieee.numeric_std.all;
+
+package ipbus_decode_tlu is
+
+  constant IPBUS_SEL_WIDTH: positive := 5; -- Should be enough for now?
+  subtype ipbus_sel_t is std_logic_vector(IPBUS_SEL_WIDTH - 1 downto 0);
+  function ipbus_sel_ipbus_example(addr : in std_logic_vector(31 downto 0)) return ipbus_sel_t;
+
+-- START automatically  generated VHDL the Fri Oct  7 12:10:31 2016 
+  constant N_SLV_CTRL_REG: integer := 0; --for tests
+  constant N_SLV_REG: integer := 1; -- for tests
+  constant N_SLV_I2C_0: integer := 2; --I2C core for the TLU
+  constant N_SLV_DUT: integer :=3;
+  constant N_SLV_SHUT: integer :=4;
+  constant N_SLV_EVBUF: integer :=5;
+  constant N_SLV_EVFMT: integer :=6;
+  constant N_SLV_TRGIN: integer :=7;
+  constant N_SLV_TRGLGC: integer :=8;
+  constant N_SLV_LGCCLK: integer :=9;
+    
+  constant N_SLAVES: integer := 10; --Total number of IPBus slaves
+-- END automatically generated VHDL
+  --constant N_I2C_CORES: integer := 3; --How many I2C cores
+    
+end ipbus_decode_tlu;
+
+package body ipbus_decode_tlu is
+
+  function ipbus_sel_ipbus_example(addr : in std_logic_vector(31 downto 0)) return ipbus_sel_t is
+    variable sel: ipbus_sel_t;
+  begin
+
+-- START automatically  generated VHDL the Fri Oct  7 12:10:31 2016 
+    if    std_match(addr, "----------------0000----------0-") then
+        sel := ipbus_sel_t(to_unsigned(N_SLV_CTRL_REG, IPBUS_SEL_WIDTH)); -- ctrl_reg / base 0x00000000 / mask 0x00003002
+    elsif std_match(addr, "----------------0000----------1-") then
+        sel := ipbus_sel_t(to_unsigned(N_SLV_REG, IPBUS_SEL_WIDTH)); -- reg / base 0x00000002 / mask 0x00003002
+    elsif std_match(addr, "----------------0001------------") then
+        sel := ipbus_sel_t(to_unsigned(N_SLV_DUT, IPBUS_SEL_WIDTH)); -- ram / base 0x00001000 / mask 0x00003000
+    elsif std_match(addr, "----------------0010----------0-") then
+        sel := ipbus_sel_t(to_unsigned(N_SLV_SHUT, IPBUS_SEL_WIDTH)); -- shutter / base 0x00002000 / mask 0x00003002
+    elsif std_match(addr, "----------------0011------------") then
+        sel := ipbus_sel_t(to_unsigned(N_SLV_I2C_0, IPBUS_SEL_WIDTH)); -- i2c / base 0x00003000 / mask 0x00003002
+    elsif std_match(addr, "----------------0100------------") then
+        sel := ipbus_sel_t(to_unsigned(N_SLV_EVBUF, IPBUS_SEL_WIDTH)); -- event buffer / base 0x00004000 / mask 0x00003002
+    elsif std_match(addr, "----------------0101------------") then
+        sel := ipbus_sel_t(to_unsigned(N_SLV_EVFMT, IPBUS_SEL_WIDTH)); -- event formatter / base 0x00005000 / mask 0x00003002
+    elsif std_match(addr, "----------------0110------------") then
+        sel := ipbus_sel_t(to_unsigned(N_SLV_TRGIN, IPBUS_SEL_WIDTH)); -- trigger inputs / base 0x00006000 / mask 0x00003002
+    elsif std_match(addr, "----------------0111------------") then
+        sel := ipbus_sel_t(to_unsigned(N_SLV_TRGLGC, IPBUS_SEL_WIDTH)); -- trigger logic / base 0x00007000 / mask 0x00003002
+    elsif std_match(addr, "----------------1000------------") then
+        sel := ipbus_sel_t(to_unsigned(N_SLV_LGCCLK, IPBUS_SEL_WIDTH)); -- logic clocks / base 0x00008000 / mask 0x00003002
+-- END automatically generated VHDL
+ 
+    else
+        sel := ipbus_sel_t(to_unsigned(N_SLAVES, IPBUS_SEL_WIDTH));
+    end if;
+
+    return sel;
+
+  end function ipbus_sel_ipbus_example;
+
+end ipbus_decode_tlu;
+
diff --git a/legacy/TLU_v1c/common/ipbus_example.vhd b/legacy/TLU_v1c/common/ipbus_example.vhd
new file mode 100644
index 00000000..5cc5f12c
--- /dev/null
+++ b/legacy/TLU_v1c/common/ipbus_example.vhd
@@ -0,0 +1,174 @@
+-- ipbus_example
+--
+-- selection of different IPBus slaves without actual function,
+-- just for performance evaluation of the IPbus/uhal system
+--
+-- Kristian Harder, March 2014
+-- based on code by Dave Newbold, February 2011
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+use work.ipbus.all;
+use work.ipbus_reg_types.all;
+use work.ipbus_decode_ipbus_example.all;
+
+entity ipbus_example is
+	port(
+		ipb_clk: in std_logic;
+		ipb_rst: in std_logic;
+		ipb_in: in ipb_wbus;
+		ipb_out: out ipb_rbus;
+		nuke: out std_logic;
+		soft_rst: out std_logic;
+		--i2c_scl_b: INOUT  std_logic;
+        --i2c_sda_b: INOUT  std_logic;
+        
+        --i2c_sda_i: IN std_logic;
+        --i2c_scl_i: IN std_logic;
+        --i2c_scl_enb_o: OUT std_logic;
+        --i2c_sda_enb_o: OUT std_logic;
+                
+        i2c_sda_i: IN std_logic_vector(N_I2C_CORES - 1 downto 0);
+        i2c_scl_i: IN std_logic_vector(N_I2C_CORES - 1 downto 0);
+        i2c_scl_enb_o: OUT std_logic_vector(N_I2C_CORES - 1 downto 0);
+        i2c_sda_enb_o: OUT std_logic_vector(N_I2C_CORES - 1 downto 0);
+        userled: out std_logic
+	);
+
+end ipbus_example;
+
+architecture rtl of ipbus_example is
+
+	signal ipbw: ipb_wbus_array(N_SLAVES - 1 downto 0);
+	signal ipbr: ipb_rbus_array(N_SLAVES - 1 downto 0);
+	signal ctrl, stat: ipb_reg_v(0 downto 0);
+    --SIGNAL s_i2c_scl_enb         : std_logic;
+    --SIGNAL s_i2c_sda_enb         : std_logic;
+           
+    -->P
+       COMPONENT i2c_master
+    PORT (
+       i2c_scl_i     : IN     std_logic;
+       i2c_sda_i     : IN     std_logic;
+       ipbus_clk_i   : IN     std_logic;
+       ipbus_i       : IN     ipb_wbus;
+       ipbus_reset_i : IN     std_logic;
+       i2c_scl_enb_o : OUT    std_logic;
+       i2c_sda_enb_o : OUT    std_logic;
+       ipbus_o       : OUT    ipb_rbus
+    );
+    END COMPONENT i2c_master;
+    FOR ALL : i2c_master USE ENTITY work.i2c_master;--<P
+begin
+
+-- ipbus address decode
+    --i2c_scl_b <= '0' when (s_i2c_scl_enb = '0') else 'Z';
+    --i2c_sda_b <= '0' when (s_i2c_sda_enb = '0') else 'Z';
+		
+	fabric: entity work.ipbus_fabric_sel
+    generic map(
+    	NSLV => N_SLAVES,
+    	SEL_WIDTH => IPBUS_SEL_WIDTH)
+    port map(
+      ipb_in => ipb_in,
+      ipb_out => ipb_out,
+      sel => ipbus_sel_ipbus_example(ipb_in.ipb_addr),
+      ipb_to_slaves => ipbw,
+      ipb_from_slaves => ipbr
+    );
+
+-- Slave 0: id / rst reg
+
+	slave0: entity work.ipbus_ctrlreg_v
+		port map(
+			clk => ipb_clk,
+			reset => ipb_rst,
+			ipbus_in => ipbw(N_SLV_CTRL_REG),
+			ipbus_out => ipbr(N_SLV_CTRL_REG),
+			d => stat,
+			q => ctrl
+		);
+		
+		stat(0) <= X"abcdfedc";
+		soft_rst <= ctrl(0)(0);
+		nuke <= ctrl(0)(1);
+
+-- Slave 1: register
+
+	slave1: entity work.ipbus_reg_v
+		port map(
+			clk => ipb_clk,
+			reset => ipb_rst,
+			ipbus_in => ipbw(N_SLV_REG),
+			ipbus_out => ipbr(N_SLV_REG),
+			q => open
+		);
+
+-- Slave 2: 1kword RAM
+
+	slave4: entity work.ipbus_ram
+		generic map(ADDR_WIDTH => 10)
+		port map(
+			clk => ipb_clk,
+			reset => ipb_rst,
+			ipbus_in => ipbw(N_SLV_RAM),
+			ipbus_out => ipbr(N_SLV_RAM)
+		);
+	
+-- Slave 3: peephole RAM
+
+	slave5: entity work.ipbus_peephole_ram
+		generic map(ADDR_WIDTH => 10)
+		port map(
+			clk => ipb_clk,
+			reset => ipb_rst,
+			ipbus_in => ipbw(N_SLV_PRAM),
+			ipbus_out => ipbr(N_SLV_PRAM)
+		);
+--    slave6 : i2c_master
+--    PORT MAP (
+--         i2c_scl_i     => i2c_scl_b,
+--         i2c_sda_i     => i2c_sda_b,
+--         ipbus_clk_i   => ipb_clk,
+--         ipbus_i       => ipbw(N_SLV_I2C),
+--         ipbus_reset_i => ipb_rst,
+--         i2c_scl_enb_o => s_i2c_scl_enb,
+--         i2c_sda_enb_o => s_i2c_sda_enb,
+--         ipbus_o       => ipbr(N_SLV_I2C)
+--    );
+
+    -- Instantiate a I2C core for the EEPROM
+    slave6 : i2c_master
+    PORT MAP (
+         i2c_scl_i     => i2c_scl_i(0),
+         i2c_sda_i     => i2c_sda_i(0),
+         ipbus_clk_i   => ipb_clk,
+         ipbus_i       => ipbw(N_SLV_I2C_0),
+         ipbus_reset_i => ipb_rst,
+         i2c_scl_enb_o => i2c_scl_enb_o(0),
+         i2c_sda_enb_o => i2c_sda_enb_o(0),
+         ipbus_o       => ipbr(N_SLV_I2C_0)
+    );
+    slave7 : i2c_master
+    PORT MAP (
+         i2c_scl_i     => i2c_scl_i(1),
+         i2c_sda_i     => i2c_sda_i(1),
+         ipbus_clk_i   => ipb_clk,
+         ipbus_i       => ipbw(N_SLV_I2C_1),
+         ipbus_reset_i => ipb_rst,
+         i2c_scl_enb_o => i2c_scl_enb_o(1),
+         i2c_sda_enb_o => i2c_sda_enb_o(1),
+         ipbus_o       => ipbr(N_SLV_I2C_1)
+    );
+    slave8 : i2c_master
+    PORT MAP (
+         i2c_scl_i     => i2c_scl_i(2),
+         i2c_sda_i     => i2c_sda_i(2),
+         ipbus_clk_i   => ipb_clk,
+         ipbus_i       => ipbw(N_SLV_I2C_2),
+         ipbus_reset_i => ipb_rst,
+         i2c_scl_enb_o => i2c_scl_enb_o(2),
+         i2c_sda_enb_o => i2c_sda_enb_o(2),
+         ipbus_o       => ipbr(N_SLV_I2C_2)
+    );
+end rtl;
diff --git a/legacy/TLU_v1c/common/ipbus_fabric_sel.vhd b/legacy/TLU_v1c/common/ipbus_fabric_sel.vhd
new file mode 100644
index 00000000..86d2fa7a
--- /dev/null
+++ b/legacy/TLU_v1c/common/ipbus_fabric_sel.vhd
@@ -0,0 +1,61 @@
+-- The ipbus bus fabric, address select logic, data multiplexers
+--
+-- This version selects the addressed slave depending on the state
+-- of incoming control lines
+--
+-- Dave Newbold, February 2011
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+use ieee.numeric_std.all;
+use work.ipbus.ALL;
+
+entity ipbus_fabric_sel is
+  generic(
+    NSLV: positive;
+    STROBE_GAP: boolean := false;
+    SEL_WIDTH: positive
+   );
+  port(
+  	sel: in std_logic_vector(SEL_WIDTH - 1 downto 0);
+    ipb_in: in ipb_wbus;
+    ipb_out: out ipb_rbus;
+    ipb_to_slaves: out ipb_wbus_array(NSLV - 1 downto 0);
+    ipb_from_slaves: in ipb_rbus_array(NSLV - 1 downto 0) := (others => IPB_RBUS_NULL)
+   );
+
+end ipbus_fabric_sel;
+
+architecture rtl of ipbus_fabric_sel is
+
+	signal sel_i: integer range 0 to NSLV := 0;
+	signal ored_ack, ored_err: std_logic_vector(NSLV downto 0);
+	signal qstrobe: std_logic;
+
+begin
+
+	sel_i <= to_integer(unsigned(sel));
+
+	ored_ack(NSLV) <= '0';
+	ored_err(NSLV) <= '0';
+	
+	qstrobe <= ipb_in.ipb_strobe when STROBE_GAP = false else
+	 ipb_in.ipb_strobe and not (ored_ack(0) or ored_err(0));
+
+	busgen: for i in NSLV-1 downto 0 generate
+	begin
+
+		ipb_to_slaves(i).ipb_addr <= ipb_in.ipb_addr;
+		ipb_to_slaves(i).ipb_wdata <= ipb_in.ipb_wdata;
+		ipb_to_slaves(i).ipb_strobe <= qstrobe when sel_i = i else '0';
+		ipb_to_slaves(i).ipb_write <= ipb_in.ipb_write;
+		ored_ack(i) <= ored_ack(i+1) or ipb_from_slaves(i).ipb_ack;
+		ored_err(i) <= ored_err(i+1) or ipb_from_slaves(i).ipb_err;		
+
+	end generate;
+
+  ipb_out.ipb_rdata <= ipb_from_slaves(sel_i).ipb_rdata when sel_i /= NSLV else (others => '0');
+  ipb_out.ipb_ack <= ored_ack(0);
+  ipb_out.ipb_err <= ored_err(0);
+  
+end rtl;
diff --git a/legacy/TLU_v1c/common/ipbus_slaves.vhd b/legacy/TLU_v1c/common/ipbus_slaves.vhd
new file mode 100644
index 00000000..e0ee08ff
--- /dev/null
+++ b/legacy/TLU_v1c/common/ipbus_slaves.vhd
@@ -0,0 +1,170 @@
+-- ipbus_example
+--
+-- selection of different IPBus slaves without actual function,
+-- just for performance evaluation of the IPbus/uhal system
+--
+-- Kristian Harder, March 2014
+-- based on code by Dave Newbold, February 2011
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+use work.ipbus.all;
+use work.ipbus_reg_types.all;
+use work.ipbus_decode_ipbus_example.all;
+
+entity ipbus_slaves is
+	port(
+		ipb_clk: in std_logic;
+		ipb_rst: in std_logic;
+		ipb_in: in ipb_wbus;
+		ipb_out: out ipb_rbus;
+		nuke: out std_logic;
+		soft_rst: out std_logic;
+		--i2c_scl_b: INOUT  std_logic;
+        --i2c_sda_b: INOUT  std_logic;
+        
+        --i2c_sda_i: IN std_logic;
+        --i2c_scl_i: IN std_logic;
+        --i2c_scl_enb_o: OUT std_logic;
+        --i2c_sda_enb_o: OUT std_logic;
+                
+        i2c_sda_i: IN std_logic_vector(N_I2C_CORES - 1 downto 0);
+        i2c_scl_i: IN std_logic_vector(N_I2C_CORES - 1 downto 0);
+        i2c_scl_enb_o: OUT std_logic_vector(N_I2C_CORES - 1 downto 0);
+        i2c_sda_enb_o: OUT std_logic_vector(N_I2C_CORES - 1 downto 0);
+        userled: out std_logic
+	);
+
+end ipbus_slaves;
+
+architecture rtl of ipbus_slaves is
+
+	signal ipbw: ipb_wbus_array(N_SLAVES - 1 downto 0);
+	signal ipbr: ipb_rbus_array(N_SLAVES - 1 downto 0);
+	signal ctrl, stat: ipb_reg_v(0 downto 0);
+    --SIGNAL s_i2c_scl_enb         : std_logic;
+    --SIGNAL s_i2c_sda_enb         : std_logic;
+           
+    -->P
+    COMPONENT i2c_master
+    PORT (
+       i2c_scl_i     : IN     std_logic;
+       i2c_sda_i     : IN     std_logic;
+       ipbus_clk_i   : IN     std_logic;
+       ipbus_i       : IN     ipb_wbus;
+       ipbus_reset_i : IN     std_logic;
+       i2c_scl_enb_o : OUT    std_logic;
+       i2c_sda_enb_o : OUT    std_logic;
+       ipbus_o       : OUT    ipb_rbus
+    );
+    END COMPONENT i2c_master;
+    FOR ALL : i2c_master USE ENTITY work.i2c_master;--<P
+begin
+
+-- ipbus address decode
+    --i2c_scl_b <= '0' when (s_i2c_scl_enb = '0') else 'Z';
+    --i2c_sda_b <= '0' when (s_i2c_sda_enb = '0') else 'Z';
+		
+	fabric: entity work.ipbus_fabric_sel
+    generic map(
+    	NSLV => N_SLAVES,
+    	SEL_WIDTH => IPBUS_SEL_WIDTH)
+    port map(
+      ipb_in => ipb_in,
+      ipb_out => ipb_out,
+      sel => ipbus_sel_ipbus_example(ipb_in.ipb_addr),
+      ipb_to_slaves => ipbw,
+      ipb_from_slaves => ipbr
+    );
+
+-- Slave 0: id / rst reg
+
+	slave0: entity work.ipbus_ctrlreg_v
+		port map(
+			clk => ipb_clk,
+			reset => ipb_rst,
+			ipbus_in => ipbw(N_SLV_CTRL_REG),
+			ipbus_out => ipbr(N_SLV_CTRL_REG),
+			d => stat,
+			q => ctrl
+		);
+		stat(0) <= X"abcdfedc";
+		soft_rst <= ctrl(0)(0);
+		nuke <= ctrl(0)(1);
+
+-- Slave 1: register
+	slave1: entity work.ipbus_reg_v
+		port map(
+			clk => ipb_clk,
+			reset => ipb_rst,
+			ipbus_in => ipbw(N_SLV_REG),
+			ipbus_out => ipbr(N_SLV_REG),
+			q => open
+		);
+
+-- Slave 2: 1kword RAM
+--	slave4: entity work.ipbus_ram
+--		generic map(ADDR_WIDTH => 10)
+--		port map(
+--			clk => ipb_clk,
+--			reset => ipb_rst,
+--			ipbus_in => ipbw(N_SLV_RAM),
+--			ipbus_out => ipbr(N_SLV_RAM)
+--		);
+	
+-- Slave 3: peephole RAM
+--	slave5: entity work.ipbus_peephole_ram
+--		generic map(ADDR_WIDTH => 10)
+--		port map(
+--			clk => ipb_clk,
+--			reset => ipb_rst,
+--			ipbus_in => ipbw(N_SLV_PRAM),
+--			ipbus_out => ipbr(N_SLV_PRAM)
+--		);
+--    slave6 : i2c_master
+--    PORT MAP (
+--         i2c_scl_i     => i2c_scl_b,
+--         i2c_sda_i     => i2c_sda_b,
+--         ipbus_clk_i   => ipb_clk,
+--         ipbus_i       => ipbw(N_SLV_I2C),
+--         ipbus_reset_i => ipb_rst,
+--         i2c_scl_enb_o => s_i2c_scl_enb,
+--         i2c_sda_enb_o => s_i2c_sda_enb,
+--         ipbus_o       => ipbr(N_SLV_I2C)
+--    );
+
+    -- Instantiate a I2C core for the EEPROM
+    slave6 : i2c_master
+    PORT MAP (
+         i2c_scl_i     => i2c_scl_i(0),
+         i2c_sda_i     => i2c_sda_i(0),
+         ipbus_clk_i   => ipb_clk,
+         ipbus_i       => ipbw(N_SLV_I2C_0),
+         ipbus_reset_i => ipb_rst,
+         i2c_scl_enb_o => i2c_scl_enb_o(0),
+         i2c_sda_enb_o => i2c_sda_enb_o(0),
+         ipbus_o       => ipbr(N_SLV_I2C_0)
+    );
+    slave7 : i2c_master
+    PORT MAP (
+         i2c_scl_i     => i2c_scl_i(1),
+         i2c_sda_i     => i2c_sda_i(1),
+         ipbus_clk_i   => ipb_clk,
+         ipbus_i       => ipbw(N_SLV_I2C_1),
+         ipbus_reset_i => ipb_rst,
+         i2c_scl_enb_o => i2c_scl_enb_o(1),
+         i2c_sda_enb_o => i2c_sda_enb_o(1),
+         ipbus_o       => ipbr(N_SLV_I2C_1)
+    );
+    slave8 : i2c_master
+    PORT MAP (
+         i2c_scl_i     => i2c_scl_i(2),
+         i2c_sda_i     => i2c_sda_i(2),
+         ipbus_clk_i   => ipb_clk,
+         ipbus_i       => ipbw(N_SLV_I2C_2),
+         ipbus_reset_i => ipb_rst,
+         i2c_scl_enb_o => i2c_scl_enb_o(2),
+         i2c_sda_enb_o => i2c_sda_enb_o(2),
+         ipbus_o       => ipbr(N_SLV_I2C_2)
+    );
+end rtl;
diff --git a/legacy/TLU_v1c/common/ipbus_ver.vhd b/legacy/TLU_v1c/common/ipbus_ver.vhd
new file mode 100644
index 00000000..068f126f
--- /dev/null
+++ b/legacy/TLU_v1c/common/ipbus_ver.vhd
@@ -0,0 +1,46 @@
+--=============================================================================
+--! @file  ipbus_ver.vhd
+--=============================================================================
+
+-- Version register, returns a fixed value
+--
+-- To be replaced by a more coherent versioning mechanism later
+--
+-- Dave Newbold, August 2011
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+use work.ipbus.all;
+
+--! @brief IPBus fixed register returning Firmware version number
+entity ipbus_ver is
+	port(
+		ipbus_in: in ipb_wbus;
+		ipbus_out: out ipb_rbus
+	);
+	
+end ipbus_ver;
+
+architecture rtl of ipbus_ver is
+
+begin
+
+  ipbus_out.ipb_rdata <= X"a622" & X"1008"; -- Lower 16b are ipbus firmware build ID (temporary arrangement).
+  ipbus_out.ipb_ack <= ipbus_in.ipb_strobe;
+  ipbus_out.ipb_err <= '0';
+
+end rtl;
+
+-- Build log
+--
+-- build 0x1000 : 22/08/11 : Starting build ID
+-- build 0x1001 : 29/08/11 : Version for SPI testing
+-- build 0x1002 : 27/09/11 : Bug fixes, new transactor code; v1.3 candidate
+-- build 0x1003 : buggy
+-- build 0x1004 : 18/10/11 : New mini-t top level, bug fixes, 1.3 codebase
+-- build 0x1005 : 20/10/11 : ipbus address config testing in mini-t
+-- build 0x1006 : 26/10/11 : trying with jumbo frames
+-- build 0x1007 : 27/10/11 : new slaves / address map + rhino frames
+-- build 0x1008 : 31/10/11 : rhino frames + multibus demo
+
+
diff --git a/legacy/TLU_v1c/common/led_stretcher.vhd b/legacy/TLU_v1c/common/led_stretcher.vhd
new file mode 100644
index 00000000..c8af6c68
--- /dev/null
+++ b/legacy/TLU_v1c/common/led_stretcher.vhd
@@ -0,0 +1,74 @@
+-- stretcher
+--
+-- Stretches a single clock pulse so it's visible on an LED
+--
+-- Dave Newbold, January 2013
+--
+-- $Id$
+
+library ieee;
+use ieee.std_logic_1164.all;
+use ieee.numeric_std.all;
+
+entity led_stretcher is
+	generic(
+		WIDTH: positive := 1
+	);
+	port(
+		clk: in std_logic; -- Assumed to be 125MHz ipbus clock
+		d: in std_logic_vector(WIDTH - 1 downto 0); -- Input (edge detected)
+		q: out std_logic_vector(WIDTH - 1 downto 0) -- LED output, ~250ms pulse
+	);
+
+end led_stretcher;
+
+architecture rtl of led_stretcher is
+
+	signal d17, d17_d: std_logic;
+	
+begin
+	
+	clkdiv: entity work.ipbus_clock_div
+		port map(
+			clk => clk,
+			d17 => d17
+		);
+
+	process(clk)
+	begin
+		if rising_edge(clk) then
+			d17_d <= d17;
+		end if;
+	end process;
+	
+	lgen: for i in WIDTH - 1 downto 0 generate
+	
+		signal s, sd, e, e_d, sl: std_logic;
+		signal scnt: unsigned(6 downto 0);
+	
+	begin
+	
+		process(clk)
+		begin
+			if rising_edge(clk) then
+				s <= d(i); -- Possible clock domain crossing from slower clock (sync not important)
+				sd <= s;
+				e <= (e or (s and not sd)) and not e_d;
+				if d17 = '1' and d17_d = '0' then
+					e_d <= e;
+					if e = '1' then
+						scnt <= "0000001";
+					elsif sl = '0' then
+						scnt <= scnt + 1;
+					end if;					
+				end if;
+			end if;
+		end process;
+
+		sl <= '1' when scnt = "0000000" else '0';
+		
+		q(i) <= not sl;
+		
+	end generate;
+	
+end rtl;
diff --git a/legacy/TLU_v1c/common/logic_clocks_rtl.vhd b/legacy/TLU_v1c/common/logic_clocks_rtl.vhd
new file mode 100644
index 00000000..631007a5
--- /dev/null
+++ b/legacy/TLU_v1c/common/logic_clocks_rtl.vhd
@@ -0,0 +1,344 @@
+--=============================================================================
+--! @file logic_clocks_rtl.vhd
+--=============================================================================
+--
+-------------------------------------------------------------------------------
+-- --
+-- University of Bristol, High Energy Physics Group.
+-- --
+------------------------------------------------------------------------------- --
+-- VHDL Architecture fmc_mTLU_lib.logic_clocks.rtl
+--
+--------------------------------------------------------------------------------
+-- 
+-- Created using using Mentor Graphics HDL Designer(TM) 2010.3 (Build 21)
+--
+-- Based on output of Xilinx Coregen and Alvro Dosil TLU code.
+------------------------------------------------------------------------------
+-- "Output    Output      Phase     Duty      Pk-to-Pk        Phase"
+-- "Clock    Freq (MHz) (degrees) Cycle (%) Jitter (ps)  Error (ps)"
+------------------------------------------------------------------------------
+-- CLK_OUT1___640.000______0.000______50.0______175.916____213.982
+-- CLK_OUT2___160.000______0.000______50.0______223.480____213.982
+-- CLK_OUT3____40.000______0.000______50.0______306.416____213.982
+--
+------------------------------------------------------------------------------
+-- "Input Clock   Freq (MHz)    Input Jitter (UI)"
+------------------------------------------------------------------------------
+-- __primary__________40.000____________0.010
+
+LIBRARY ieee;
+USE ieee.std_logic_1164.all;
+USE ieee.numeric_std.all;
+
+USE work.ipbus.all;
+
+library unisim;
+use unisim.vcomponents.all;
+
+--! @brief Generates 160MHz , 640MHz clocks from an incoming 40MHz clock.
+--! Can switch between clock generated from on-board Xtal ( clk_logic_xtal ) and external clock.
+--! Can also output clock to external clock pins.
+--!
+--! @author David Cussans , David.Cussans@bristol.ac.uk
+--
+--! @date 14:20:26 11/14/12
+--
+--! @version v0.1
+--
+--! @details
+--! \br <b> IPBus Address map:</b>
+--! \br (decode 2 bits)
+--! \li 0x00000000 - control/status register:
+--! \li             bit-0 - PLL locked ( 1 = locked )
+--! \li              bit-1 - buff-PLL locked ( 1 = locked )
+--! \li             bit-2 - use xtal for logic ( 1 = xtal , 0= external)
+--! \li             bit-3 - clock connector is an input ( 1=input , 0 = output)
+--! \li 0x00000001 - reset logic. Write to bit-zero to send reset.
+--!
+--!
+ENTITY logic_clocks IS
+    GENERIC( 
+        g_USE_EXTERNAL_CLK : integer := 1
+    );
+    PORT( 
+        ipbus_clk_i           : IN     std_logic;
+        ipbus_i               : IN     ipb_wbus;
+        ipbus_reset_i         : IN     std_logic;
+        Reset_i               : IN     std_logic;
+        clk_logic_xtal_i      : IN     std_logic;   --! 40MHz clock derived from onboard xtal
+        clk_8x_logic_o       : OUT    std_logic;   --! 640MHz clock
+        clk_4x_logic_o        : OUT    std_logic;   --! 160MHz clock
+        ipbus_o               : OUT    ipb_rbus;
+        strobe_8x_logic_o    : OUT    std_logic;   --! strobes once every 4 cycles of clk_16x
+        strobe_4x_logic_o     : OUT    std_logic;   --! one pulse every 4 cycles of clk_4x
+        DUT_clk_o             : OUT    std_logic;   --! 40MHz to DUTs
+        logic_clocks_locked_o : OUT    std_logic;   --! Goes high if clocks locked.
+        logic_reset_o         : OUT    std_logic    --! Goes high to reset counters etc. Sync with clk_4x_logic
+    );
+
+-- Declarations
+END ENTITY logic_clocks ;
+
+--
+ARCHITECTURE rtl OF logic_clocks IS
+    signal s_clk40 , s_clk40_internal : std_logic;
+    signal s_clk160 ,s_clk160_internal : std_logic;
+    signal ryanclock : std_logic;
+    signal s_clk320 , s_clk320_internal : std_logic;
+    signal s_clk40_out : std_logic;       -- Clock generated by DDR register to feed out of chip.
+    signal s_clk_is_xtal, s_clk_is_ext_buf : std_logic := '0'; -- default to
+                                                             -- input from ext
+    --  signal s_logic_clk_rst : std_logic := '0';
+    signal s_locked_pll, s_locked_bufpll : std_logic;
+    
+    signal s_clk : std_logic;
+    signal s_DUT_Clk, s_DUT_Clk_o, s_DUT_ClkG : std_logic;
+    signal s_extclk, s_extclkG : std_logic;
+    -- signal s_clk_d1 , s_strobe_4x_p1 , s_strobe_4x_logic  : std_logic;
+    signal s_clkfbout_buf , s_clkfbout : std_logic;
+    
+    signal s_strobe_generator  : std_logic_vector(3 downto 0) := "1000";  -- ! Store state of ring buffer to generate strobe
+    signal s_logic_clk_generator : std_logic_vector(3 downto 0) := "1100";  --! Stores state of 40MHz "clock"
+    --signal s_strobe_generator  : std_logic_vector(15 downto 0) := "1111000000000000";  -- ! Store state of ring buffer to generate strobe
+    --signal s_logic_clk_generator : std_logic_vector(15 downto 0) := "1111111100000000";  --! Stores state of 40MHz "clock"
+    signal s_strobe160 :std_logic_vector(15 downto 0) := "1000000000000000"; -- 160 strobe ring
+    signal s_strobe_fb : std_logic := '0';
+    
+    signal s_logic_reset_ipb, s_logic_reset_ipb_d1 : std_logic := '0';  
+                                        -- ! Reset signal in IPBus clock domain
+    signal s_logic_reset , s_logic_reset_d1 , s_logic_reset_d2 , s_logic_reset_d3 , s_logic_reset_d4 : std_logic := '0';  
+                                        -- ! reset signal clocked onto logic-clock domain.
+    attribute SHREG_EXTRACT: string;
+    attribute SHREG_EXTRACT of s_logic_reset_d1: signal is "no"; -- Synchroniser not to be optimised into shre
+    attribute SHREG_EXTRACT of s_logic_reset_d2: signal is "no"; -- Synchroniser not to be optimised into shreg
+    attribute SHREG_EXTRACT of s_logic_reset_d3: signal is "no"; -- Synchroniser not to be optimised into shreg
+    attribute SHREG_EXTRACT of s_logic_reset_d4: signal is "no"; -- Synchroniser not to be optimised into shreg
+    signal s_ipbus_ack : std_logic := '0';
+    signal s_reset_pll : std_logic := '0';
+    
+    
+    -- ! Global Reset signal
+    signal  s_extclk_internal  : std_logic := '0';
+    signal s_clock_status_ipb : std_logic_vector( ipbus_o.ipb_rdata'range );   --! Hold status of clocks
+  
+BEGIN
+    -----------------------------------------------------------------------------
+    -- IPBus write
+    -----------------------------------------------------------------------------
+    ipbus_write: process (ipbus_clk_i)
+    begin  -- process ipb_clk_i
+    if rising_edge(ipbus_clk_i) then
+        s_logic_reset_ipb <= '0';
+        if (ipbus_i.ipb_strobe = '1' and ipbus_i.ipb_write = '1') then
+            case ipbus_i.ipb_addr(1 downto 0) is
+            when "00" =>
+             s_clk_is_xtal <= ipbus_i.ipb_wdata(2) ; -- select clock source
+             
+            when "01" =>
+             s_logic_reset_ipb <= ipbus_i.ipb_wdata(0) ; -- write to reset
+            when others => null;
+            end case;
+       end if;
+
+        -- register reset signal to aid timing.
+        s_logic_reset_ipb_d1 <= s_logic_reset_ipb;
+        s_ipbus_ack <= ipbus_i.ipb_strobe and not s_ipbus_ack;
+        -- register the clock status signals onto IPBus domain.
+        --s_clock_status_ipb <=  x"0000000" & '0' & s_clk_is_xtal & s_locked_bufpll & s_locked_pll;
+        s_clock_status_ipb <=  x"0000000" & '0' & '0' & '0' & s_locked_pll; -- The only useful bit is not the PLL lock status. 
+    end if;
+    end process ipbus_write;
+
+    ipbus_o.ipb_ack <= s_ipbus_ack;
+    ipbus_o.ipb_err <= '0';
+
+    -----------------------------------------------------------------------------
+    -- IPBUS read
+    -----------------------------------------------------------------------------
+    with ipbus_i.ipb_addr(1 downto 0) select
+    ipbus_o.ipb_rdata <=
+        s_clock_status_ipb  when "00",
+        (others => '1')      when others;
+
+
+    -----------------------------------------------------------------------------
+    -- Generate reset signal on logic-clock domain
+    -- This relies on the IPBus clock being much slower than the 4x logic clock.
+    -----------------------------------------------------------------------------
+    p_reset: process (s_clk160_internal)
+    begin  -- process p_reset
+    if rising_edge(s_clk160_internal) then
+        s_logic_reset_d1 <= s_logic_reset_ipb_d1;
+        s_logic_reset_d2 <= s_logic_reset_d1;
+        s_logic_reset_d3 <= s_logic_reset_d2;
+        s_logic_reset_d4 <= s_logic_reset_d2 and ( not s_logic_reset_d3); 
+        s_logic_reset <= s_logic_reset_d4;
+    end if;
+    end process p_reset;
+    
+    logic_reset_o <= s_logic_reset;
+    logic_clocks_locked_o <= s_locked_bufpll and s_locked_pll;
+
+
+    -- Use Generate, since can't figure out how BUFGMUX works    
+    --  gen_extclk_input: if ( g_USE_EXTERNAL_CLK = 1) generate
+    --    s_DUT_Clk <= s_extclkG; -- Hard wire for now.    
+    --  end generate gen_extclk_input;
+    --  gen_intclk_input: if ( g_USE_EXTERNAL_CLK = 0) generate
+    s_DUT_Clk <= clk_logic_xtal_i; 
+    --  end generate gen_intclk_input;  
+  
+
+  
+    --! Clocking primitive
+    -------------------------------------
+    --! Instantiation of the PLL primitive
+    pll_base_inst : PLL_BASE
+    generic map
+       (BANDWIDTH            => "OPTIMIZED",
+        --CLK_FEEDBACK         => "CLKOUT0", --"CLKFBOUT",
+        CLK_FEEDBACK         => "CLKFBOUT",
+        COMPENSATION         => "SYSTEM_SYNCHRONOUS",
+        DIVCLK_DIVIDE        => 1,
+        CLKFBOUT_MULT        => 16,
+        CLKFBOUT_PHASE       => 0.000,
+        CLKOUT0_DIVIDE       => 2, -- 1-->2 move from 640 to 320
+        CLKOUT0_PHASE        => 0.000,
+        CLKOUT0_DUTY_CYCLE   => 0.500,
+        CLKOUT1_DIVIDE       => 4, -- 4-->8 move from 160 to 80
+        CLKOUT1_PHASE        => 0.000,
+        CLKOUT1_DUTY_CYCLE   => 0.500,
+        CLKOUT2_DIVIDE       => 16, -- 16--> 32 move from 40 to 20
+        CLKOUT2_PHASE        => 0.000,
+        CLKOUT2_DUTY_CYCLE   => 0.500,
+        CLKIN_PERIOD         => 25.000,
+        REF_JITTER           => 0.010)
+    port map(
+        -- Output clocks
+        CLKFBOUT            => s_clkfbout,
+        CLKOUT0             => s_clk320,
+        CLKOUT1             => s_clk160,
+        CLKOUT2             => s_clk40,
+        CLKOUT3             => open,
+        CLKOUT4             => open,
+        CLKOUT5             => open,
+        -- Status and control signals
+        LOCKED              => s_locked_pll,
+        --    RST                 => s_logic_clk_rst,
+        RST                 => s_reset_pll,
+        -- Input clock control
+        --    CLKFBIN             => s_clkfbout_buf,
+        CLKFBIN             => s_clkfbout,
+        CLKIN               => s_DUT_clk);
+        --      CLKIN               => clk_logic_xtal_i);
+
+    s_reset_pll <= Reset_i or s_logic_reset; 
+
+-----------------------------------------------
+--BUFPLL not supported by 7 Series. We need to replace it with BUFIO+BUFR 
+  -- Buffer the 16x clock and generate the ISERDES strobe signal
+--   BUFPLL_inst : BUFPLL
+--   generic map (
+--      DIVIDE => 4)
+--   port map (
+--      IOCLK  => s_clk640_internal,          -- 1-bit output: Output I/O clock
+--      LOCK   => s_locked_bufpll,            -- 1-bit output: Synchronized LOCK output
+--      SERDESSTROBE => strobe_16x_logic_O,   -- 1-bit output: Output SERDES strobe (connect to ISERDES2/OSERDES2)
+--      GCLK   => s_clk160_internal,          -- 1-bit input: BUFG clock input
+--      LOCKED => s_locked_pll,               -- 1-bit input: LOCKED input from PLL
+--      PLLIN  => s_clk640                    -- 1-bit input: Clock input from PLL
+--   );
+
+    BUFG_inst: BUFG
+    port map (
+        I => s_clk320,
+        O => s_clk320_internal    
+    );
+    
+--    BUFR_inst: BUFR
+--    generic map (
+--        BUFR_DIVIDE => "4"
+--    )
+--    port map (
+--        I   => s_clk160_internal,
+--        CE  => '1',
+--        CLR => '0',
+--        O   => ryanclock
+--    );
+    
+--    BUFG_inst2: BUFG
+--    port map (
+--        I => ryanclock,
+--        O => strobe_16x_logic_O    -- Not sure this is actually a strobe... Check
+--    );
+-----------------------------------------------
+
+	clk_8x_logic_o <= s_clk320_internal;
+	DUT_clk_o <= s_DUT_clk;
+
+
+  
+  -- Generate a strobe signal every 4 clocks. 
+  -- Can't use a clock signal as a combinatorial signal. Hence the baroque
+  -- method of generating a strobe. Add a mechanism to restart if the '1' gets
+  -- lost ....
+    
+    ------------------
+    generate_4x_strobe: process (s_clk160_internal)-- , s_clk40_out)
+    begin  -- process generate_4x_strobe
+    if rising_edge(s_clk160_internal) then
+        if s_logic_reset = '1' then
+            s_strobe_generator <= "1000";
+            s_logic_clk_generator <= "1100";
+            --s_strobe160 <= "1000000000000000";
+        elsif (s_locked_pll ='1') then
+            s_strobe_generator <= s_strobe_generator(2 downto 0) & s_strobe_generator(3); -- <- bit shift left      
+            s_logic_clk_generator <= s_logic_clk_generator(2 downto 0) & s_logic_clk_generator(3); -- <- bit shift left 
+            --s_strobe160 <= s_strobe160(14 downto 0) & s_strobe160(15);
+        end if;
+    end if;
+    end process generate_4x_strobe;
+    strobe_4x_logic_o <=  s_strobe_generator(3); -- Every 4 clocks this gets to 1 for one pulse
+    s_clk40_out <= s_logic_clk_generator(3); -- Every 4 clocks this gets to 1 for two pulses (so half F of the original clock? But then it is a clk80 not clk40.) Not used it seems.
+    ---------------
+    
+    generate_8x_strobe: process (s_clk320_internal)
+    begin
+    if rising_edge(s_clk320_internal) then
+        if s_logic_reset = '1' then
+            s_strobe160 <= "1000000000000000"; 
+            --s_strobe_generator <= "1111000000000000";--
+            --s_logic_clk_generator <= "1111111100000000";--
+        elsif (s_locked_pll ='1') then
+            s_strobe160 <= s_strobe160(14 downto 0) & s_strobe160(15);
+            --s_strobe_generator <= s_strobe_generator(14 downto 0) & s_strobe_generator(15); --       
+            --s_logic_clk_generator <= s_logic_clk_generator(14 downto 0) & s_logic_clk_generator(15); -- <- bit shift left
+        end if;
+    end if;
+    end process generate_8x_strobe;
+    strobe_8x_logic_O <= s_strobe160(15);
+    --strobe_4x_logic_o <=  s_strobe_generator(15); -- 
+    --s_clk40_out <= s_logic_clk_generator(15); -- 
+        
+
+  -- buffer 160MHz (4x) clock
+  --------------------------------------
+    clk160_o_buf : BUFG
+    port map(
+        O   => s_clk160_internal,
+        I   => s_clk160);
+    
+    clk_4x_logic_o <= s_clk160_internal;
+ 
+--   -- buffer 40MHz (1x) clock
+--  --------------------------------------
+--  clk40_o_buf : BUFG
+--  port map(
+--    O   => s_clk40_internal,
+--    I   => s_clk40);
+
+--  clk_logic_o <= s_clk40_out;
+
+END ARCHITECTURE rtl;
+
diff --git a/legacy/TLU_v1c/common/pulseClockDomainCrossing_rtl.vhd b/legacy/TLU_v1c/common/pulseClockDomainCrossing_rtl.vhd
new file mode 100644
index 00000000..663cac3b
--- /dev/null
+++ b/legacy/TLU_v1c/common/pulseClockDomainCrossing_rtl.vhd
@@ -0,0 +1,100 @@
+--=============================================================================
+--! @file pulseClockDomainCrossing_rtl.vhd
+--=============================================================================
+--
+-------------------------------------------------------------------------------
+-- --
+-- University of Bristol, High Energy Physics Group.
+-- --
+------------------------------------------------------------------------------- --
+-- VHDL Architecture worklib.pulseClockDomainCrossing.rtl
+--
+--! @brief Takes a pulse synchronized with one clock and produces a
+--! pulse synchronized to another clock.
+--
+--! @author David Cussans , David.Cussans@bristol.ac.uk
+--
+--! @date September/2012
+--
+--! @version v0.1
+--
+--! @details A "ring" of D-type flip-flops is used to transfer a strobe
+--! from the input clock domain to the output clock domain and then back again.
+--! The time taken to transit from input to output is approximately
+--! two clock cycles of clock_output_i .
+--! After an additional two cycles of clk_input_i another pulse can be sent
+--!
+--!
+--! <b>Dependencies:</b>\n
+--!
+--! <b>References:</b>\n
+--!
+--! <b>Modified by:</b>\n
+--! Author: 
+-------------------------------------------------------------------------------
+--! \n\n<b>Last changes:</b>\n
+-------------------------------------------------------------------------------
+--! @todo <next thing to do> \n
+--! <another thing to do> \n
+--
+--------------------------------------------------------------------------------
+
+library ieee;
+use ieee.std_logic_1164.all;
+
+entity pulseClockDomainCrossing is
+  port (
+    clk_input_i : in std_logic;         --! clock for input
+    pulse_i     : in std_logic;         --! input pulse. Active high
+    clk_output_i: in std_logic;         --! clock for output
+    pulse_o     : out std_logic         --! Single cycle pulse synchronized to clock_output_i
+    );
+
+end pulseClockDomainCrossing;
+
+architecture rtl of pulseClockDomainCrossing is
+
+  signal s_pulse_out , s_pulse_out_d1 , s_pulse_out_d2 , s_pulse_out_d3 , s_pulse_out_d4 , s_pulse_back_d1 , s_pulse_back_d2: std_logic := '0';
+  
+begin  -- rtl
+
+  -- purpose: registers and flip-flop on clk_input_i
+  p_input_clock_logic: process (clk_input_i)
+  begin  
+    if rising_edge(clk_input_i) then
+
+      -- Register signals coming from output clock domain back to the
+      -- input clock domain
+      s_pulse_back_d1 <= s_pulse_out_d2;
+      s_pulse_back_d2 <= s_pulse_back_d1;
+
+      -- JK flip-flop
+      if (s_pulse_back_d2 = '1')  then
+        s_pulse_out <= '0';
+      elsif (pulse_i = '1')  then
+        s_pulse_out <= '1';
+      end if;
+
+    end if;
+  end process p_input_clock_logic;
+
+  -- purpose: registers and flip-flop on clk_output_o
+  p_output_clock_logic: process (clk_output_i)
+  begin  
+    if rising_edge(clk_output_i) then
+
+      -- Register signal on input clock domain onto output clock domain
+      s_pulse_out_d1 <= s_pulse_out;
+      s_pulse_out_d2 <= s_pulse_out_d1;
+
+      s_pulse_out_d3 <= s_pulse_out_d2;
+      s_pulse_out_d4 <= s_pulse_out_d3;
+
+      -- Generate single clock-cycle pulse on pulse_o
+      pulse_o <= s_pulse_out_d3 and ( not s_pulse_out_d4 );
+
+    end if;
+  end process p_output_clock_logic;
+
+
+end rtl;
diff --git a/legacy/TLU_v1c/common/registerCounter_rtl.vhd b/legacy/TLU_v1c/common/registerCounter_rtl.vhd
new file mode 100644
index 00000000..de5587cd
--- /dev/null
+++ b/legacy/TLU_v1c/common/registerCounter_rtl.vhd
@@ -0,0 +1,113 @@
+--=============================================================================
+--! @file registerCounter_rtl.vhd
+--=============================================================================
+--
+-------------------------------------------------------------------------------
+-- --
+-- University of Bristol, High Energy Physics Group.
+-- --
+------------------------------------------------------------------------------- --
+-- VHDL Architecture worklib.registerCounter.rtl
+--
+--! @brief Regularly transfers the input to the output.\n
+--! One clock for input , one clock for output\n
+--! Can't just put entire bus through a couple of register stages,\n
+--! Since this will just swap meta-stability issues for race issues.
+--
+--! @author David Cussans , David.Cussans@bristol.ac.uk
+--
+--! @date 24/Nov/12
+--
+--! @version v0.1
+--
+--! @details A six stage "ring oscillator" is used to generate two strobes.
+--! One reads data into a register. The other registers the data to the output
+--! Three stages are clocked on clk_write_i , three stages are clocked on clk_read_i
+--! We could use gray-scale and put through registers, but this method
+--! should work well enough at the expense of latency.\n
+--! \n
+--! The time taken for an edge to travel round the complete loop is
+--! 2 cycles of clk_read_i and 2 cycles of clk_write_i plus two intervals
+--! that depend on the relative phase of clk_read_i and clk_write_i
+--!
+--!
+--!
+--! <b>Dependencies:</b>\n
+--!
+--! <b>References:</b>\n
+--!
+--! <b>Modified by:</b>\n
+--! Author:
+--! David Cussans, 26/2/14 - Added registers to output to aid timing closure.
+-------------------------------------------------------------------------------
+--! \n\n<b>Last changes:</b>\n
+-------------------------------------------------------------------------------
+--! @todo <next thing to do> \n
+--! <another thing to do> \n
+--
+--------------------------------------------------------------------------------
+
+library ieee;
+use ieee.std_logic_1164.all;
+
+entity registerCounter is
+  
+  generic (
+    g_DATA_WIDTH : positive := 15);     -- ! Width of counter
+
+  port (
+    clk_input_i : in std_logic;         -- ! clock for input
+    data_i      : in std_logic_vector(g_DATA_WIDTH-1 downto 0);  -- ! data to transfer to output
+    data_o     : out std_logic_vector(g_DATA_WIDTH-1 downto 0);  -- ! Data now in clk_read_i domain
+    clk_output_i  : in std_logic);        -- ! clock for output
+
+end registerCounter;
+
+architecture rtl of registerCounter is
+  signal s_ring_d0 , s_ring_d1 , s_ring_d2 , s_ring_d3 , s_ring_d4, s_ring_d5: std_logic := '0';  -- stages in "ring oscillator" used to generate strobes
+  signal s_registered_data : std_logic_vector(data_i'range) := ( others => '0');  -- ! Register to store data between clock domains
+
+  signal s_read_strobe , s_write_strobe : std_logic := '0';  -- ! Strobes high to register data from input and to output
+  
+begin  -- rtl
+
+  -- purpose: part of "ring oscillator" transfering strobe between clock domains
+  -- type   : combinational
+  -- inputs : clk_read_i
+  -- outputs: 
+  p_gen_capture_strobe: process (clk_input_i)
+  begin  -- process p_gen_capture_strobe
+    if rising_edge(clk_input_i) then
+      s_ring_d0 <= not s_ring_d5;
+      s_ring_d1 <= s_ring_d0;
+      s_ring_d2 <= s_ring_d1;
+
+      if s_read_strobe = '1' then
+        s_registered_data <= data_i;
+      end if;
+    end if;    
+  end process p_gen_capture_strobe;
+
+  s_read_strobe <= s_ring_d1 xor s_ring_d2;  --! Generate a strobe with
+                                                --width one clk_read_i
+  
+  -- purpose: part of "ring oscillator" transfering strobe between clock domains
+  -- type   : combinational
+  -- inputs : clk_output_i
+  -- outputs: 
+  p_gen_output_strobe: process (clk_output_i)
+  begin  -- process p_gen_output_strobe
+    if rising_edge(clk_output_i) then
+      s_ring_d3 <= s_ring_d2;
+      s_ring_d4 <= s_ring_d3;
+      s_ring_d5 <= s_ring_d4;
+
+      if s_write_strobe = '1' then
+        data_o <= s_registered_data;
+      end if;
+    end if;    
+  end process p_gen_output_strobe;
+
+  s_write_strobe <= s_ring_d4 xor s_ring_d5;  --! Generate a strobe
+                                                  --
+end rtl;
diff --git a/legacy/TLU_v1c/common/serdes_1_to_n_SDR.vhd b/legacy/TLU_v1c/common/serdes_1_to_n_SDR.vhd
new file mode 100644
index 00000000..a0a119e3
--- /dev/null
+++ b/legacy/TLU_v1c/common/serdes_1_to_n_SDR.vhd
@@ -0,0 +1,235 @@
+------------------------------------------------------------------------------/
+-- Copyright (c) 2009 Xilinx, Inc.
+-- This design is confidential and proprietary of Xilinx, All Rights Reserved.
+------------------------------------------------------------------------------/
+--   ____  ____
+--  /   /\/   /
+-- /___/  \  /   Vendor: Xilinx
+-- \   \   \/    Version: 1.0
+--  \   \        Filename: top_nto1_ddr_diff_rx.vhd
+--  /   /        Date Last Modified:  November 5 2009
+-- /___/   /\    Date Created: June 1 2009
+-- \   \  /  \
+--  \___\/\___\
+-- 
+--Device:   Spartan 6
+--Purpose:    Example differential input receiver for DDR clock and data using 2 x BUFIO2
+--    Serdes factor and number of data lines are set by constants in the code
+--Reference:
+--    
+--Revision History:
+--    Rev 1.0 - First created (nicks)
+--
+------------------------------------------------------------------------------/
+--
+--  Disclaimer: 
+--
+--    This disclaimer is not a license and does not grant any rights to the materials 
+--              distributed herewith. Except as otherwise provided in a valid license issued to you 
+--              by Xilinx, and to the maximum extent permitted by applicable law: 
+--              (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND WITH ALL FAULTS, 
+--              AND XILINX HEREBY DISCLAIMS ALL WARRANTIES AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, 
+--              INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-INFRINGEMENT, OR 
+--              FITNESS FOR ANY PARTICULAR PURPOSE; and (2) Xilinx shall not be liable (whether in contract 
+--              or tort, including negligence, or under any other theory of liability) for any loss or damage 
+--              of any kind or nature related to, arising under or in connection with these materials, 
+--              including for any direct, or any indirect, special, incidental, or consequential loss 
+--              or damage (including loss of data, profits, goodwill, or any type of loss or damage suffered 
+--              as a result of any action brought by a third party) even if such damage or loss was 
+--              reasonably foreseeable or Xilinx had been advised of the possibility of the same.
+--
+--  Critical Applications:
+--
+--    Xilinx products are not designed or intended to be fail-safe, or for use in any application 
+--    requiring fail-safe performance, such as life-support or safety devices or systems, 
+--    Class III medical devices, nuclear facilities, applications related to the deployment of airbags,
+--    or any other applications that could lead to death, personal injury, or severe property or 
+--    environmental damage (individually and collectively, "Critical Applications"). Customer assumes 
+--    the sole risk and liability of any use of Xilinx products in Critical Applications, subject only 
+--    to applicable laws and signalulations governing limitations on product liability.
+--
+--  THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS PART OF THIS FILE AT ALL TIMES.
+--
+------------------------------------------------------------------------------
+-------------------------------------------------------
+--! @file
+--! @brief Serdes 1 to n SDR
+--! @author Alvaro Dosil
+-------------------------------------------------------
+
+library IEEE;
+use IEEE.std_logic_1164.all;
+use IEEE.std_logic_unsigned.all ;
+
+library unisim ;
+use unisim.vcomponents.all ;
+
+entity serdes_1_to_n_SDR is 
+generic ( g_S : integer := 4);       --! Parameter to set the serdes factor 1..8
+port( clk_i  : in std_logic;         --! Fast clock to sample data (640MHz)
+      hclk_i   : in std_logic;       --! A quarter frequency clock (160MHz)
+      reset_i  : in std_logic;       --! reset signal
+      Data_i   : in std_logic;       --! 1-Bit Input data
+      strobe_i : in std_logic;       --! Iserdes strobe_i
+      Data_o   : out std_logic_vector(2*g_S-1 downto 0)  --! data output
+		);
+    
+end serdes_1_to_n_SDR;
+
+
+architecture Behavioral of serdes_1_to_n_SDR is
+
+signal s_Data_i_d_m  : std_logic;     -- Data_i delayed master
+signal s_Data_i_d_2m : std_logic;     -- Data_i delayed master second signal
+signal s_Data_i_d_s  : std_logic;     -- Data_i delayed slave
+signal s_Data_i_d_2s : std_logic;     -- Data_i delayed slave second signal
+signal s_Data_o      : std_logic_vector(2*g_S-1 downto 0);
+
+--signal s_clk_b       : std_logic;
+--signal s_ISERDES_STROBE : std_logic;
+
+begin
+	
+---- Generate the ISERDES strobe signal
+--
+--   BUFPLL_inst : BUFPLL
+--   generic map (
+--      DIVIDE => 4)
+--   port map (
+--      IOCLK => s_clk_b,                -- 1-bit output: Output I/O clock
+--      LOCK => open,                     -- 1-bit output: Synchronized LOCK output
+--      SERDESSTROBE => s_ISERDES_STROBE, -- 1-bit output: Output SERDES strobe (connect to ISERDES2/OSERDES2)
+--      GCLK => hclk_i,                     -- 1-bit input: BUFG clock input
+--      LOCKED => locked_pll_i,                  -- 1-bit input: LOCKED input from PLL
+--      PLLIN => clk_i                -- 1-bit input: Clock input from PLL
+--   );
+	
+
+  IODELAY2_M : IODELAY2
+  generic map (
+    COUNTER_WRAPAROUND => "WRAPAROUND",     -- "STAY_AT_LIMIT" or "WRAPAROUND" 
+    DATA_RATE          => "SDR",            -- "SDR" or "DDR" 
+    DELAY_SRC          => "IDATAIN",        -- "IO", "ODATAIN" or "IDATAIN" 
+    IDELAY_MODE        => "NORMAL",         -- "NORMAL" or "PCI" 
+    IDELAY_TYPE        => "FIXED",          -- "FIXED", "DEFAULT", "VARIABLE_FROM_ZERO", "VARIABLE_FROM_HALF_MAX" 
+                              --  or "DIFF_PHASE_DETECTOR" 
+    IDELAY_VALUE     => 0,                -- Amount of taps for fixed input delay (0-255)
+    IDELAY2_VALUE    => 0,                -- Delay value when IDELAY_MODE="PCI" (0-255)
+    ODELAY_VALUE     => 0,                -- Amount of taps fixed output delay (0-255)
+    SERDES_MODE      => "NONE"            -- "NONE", "MASTER" or "SLAVE" 
+--    SIM_TAPDELAY_VALUE=> 43                -- Per tap delay used for simulation in ps
+   )
+  port map (
+    BUSY     => open,          -- 1-bit output: Busy output after CAL
+    DATAOUT  => s_Data_i_d_m,     -- 1-bit output: Delayed data output to ISERDES/input register
+    DATAOUT2 => s_Data_i_d_2m,    -- 1-bit output: Delayed data output to general FPGA fabric
+    DOUT     => open,          -- 1-bit output: Delayed data output
+    TOUT     => open,          -- 1-bit output: Delayed 3-state output
+    CAL      => '0',           -- 1-bit input: Initiate calibration input
+    CE       => '0',           -- 1-bit input: Enable INC input
+    CLK      => '0',           -- 1-bit input: Clock input
+    IDATAIN  => Data_i,        -- 1-bit input: Data input (connect to top-level port or I/O buffer)
+    INC      => '0',           -- 1-bit input: Increment / decrement input
+    IOCLK0   => '0',           -- 1-bit input: Input from the I/O clock network
+    IOCLK1   => '0',           -- 1-bit input: Input from the I/O clock network
+    ODATAIN  => '0',           -- 1-bit input: Output data input from output register or OSERDES2.
+    RST      => reset_i,         -- 1-bit input: reset_i to zero or 1/2 of total delay period
+    T        => '0'            -- 1-bit input: 3-state input signal
+   );
+
+
+  IODELAY2_S : IODELAY2
+  generic map (
+    COUNTER_WRAPAROUND => "WRAPAROUND",  -- "STAY_AT_LIMIT" or "WRAPAROUND" 
+    DATA_RATE          => "SDR",         -- "SDR" or "DDR" 
+    DELAY_SRC          => "IDATAIN",     -- "IO", "ODATAIN" or "IDATAIN" 
+    IDELAY_MODE        => "NORMAL",      -- "NORMAL" or "PCI" 
+    IDELAY_TYPE        => "FIXED",       -- "FIXED", "DEFAULT", "VARIABLE_FROM_ZERO", "VARIABLE_FROM_HALF_MAX" 
+                              --  or "DIFF_PHASE_DETECTOR" 
+    IDELAY_VALUE       => 10,--29,            -- Amount of taps for fixed input delay (0-255) 10->0.75nS, 11->0.825nS
+    IDELAY2_VALUE      => 0,             -- Delay value when IDELAY_MODE="PCI" (0-255)
+    ODELAY_VALUE       => 0,             -- Amount of taps fixed output delay (0-255)
+    SERDES_MODE        => "NONE"         -- "NONE", "MASTER" or "SLAVE" 
+    --SIM_TAPDELAY_VALUE => 43              -- Per tap delay used for simulation in ps
+   )
+  port map (
+    BUSY     => open,             -- 1-bit output: Busy output after CAL
+    DATAOUT  => s_Data_i_d_s,        -- 1-bit output: Delayed data output to ISERDES/input register
+    DATAOUT2 => s_Data_i_d_2s,       -- 1-bit output: Delayed data output to general FPGA fabric
+    DOUT     => open,             -- 1-bit output: Delayed data output
+    TOUT     => open,             -- 1-bit output: Delayed 3-state output
+    CAL      => '0',              -- 1-bit input: Initiate calibration input
+    CE       => '0',              -- 1-bit input: Enable INC input
+    CLK      => '0',              -- 1-bit input: Clock input
+    IDATAIN  => Data_i,           -- 1-bit input: Data input (connect to top-level port or I/O buffer)
+    INC      => '0',              -- 1-bit input: Increment / decrement input
+    IOCLK0   => '0',              -- 1-bit input: Input from the I/O clock network
+    IOCLK1   => '0',              -- 1-bit input: Input from the I/O clock network
+    ODATAIN  => '0',              -- 1-bit input: Output data input from output register or OSERDES2.
+    RST      => reset_i,            -- 1-bit input: reset_i to zero or 1/2 of total delay period
+    T        => '0'               -- 1-bit input: 3-state input signal
+   );
+
+
+  ISERDES2_M : ISERDES2
+  generic map (
+    BITSLIP_ENABLE => FALSE,         -- Enable Bitslip Functionality (TRUE/FALSE)
+    DATA_RATE      => "SDR",         -- Data-rate ("SDR" or "DDR")
+    DATA_WIDTH     => g_S,             -- Parallel data width selection (2-8)
+    INTERFACE_TYPE => "NETWORKING_PIPELINED", -- "NETWORKING", "NETWORKING_PIPELINED" or "RETIMED" 
+    SERDES_MODE    => "NONE"         -- "NONE", "MASTER" or "SLAVE" 
+   )
+  port map (
+    -- Q1 - Q4: 1-bit (each) output Registered outputs to FPGA logic
+    Q1     => s_Data_o(1),
+    Q2     => s_Data_o(3),
+    Q3     => s_Data_o(5),
+    Q4     => s_Data_o(7), 
+    --SHIFTOUT => SHIFTOUTsig,       -- 1-bit output Cascade output signal for master/slave I/O
+    VALID   => open,                 -- 1-bit output Output status of the phase detector
+    BITSLIP => '0',                  -- 1-bit input Bitslip enable input
+    CE0     => '1',                  -- 1-bit input Clock enable input
+	 CLK0    => clk_i,                -- 1-bit input I/O clock network input
+    CLK1    => '0',                  -- 1-bit input Secondary I/O clock network input
+    CLKDIV  => hclk_i,               -- 1-bit input FPGA logic domain clock input
+    D       => s_Data_i_d_m,         -- 1-bit input Input data
+    IOCE    => strobe_i,             -- 1-bit input Data strobe_i input
+    RST     => reset_i,              -- 1-bit input Asynchronous reset_i input
+    SHIFTIN => '0'                   -- 1-bit input Cascade input signal for master/slave I/O
+   );
+
+  ISERDES2_S : ISERDES2
+  generic map (
+    BITSLIP_ENABLE => FALSE,          -- Enable Bitslip Functionality (TRUE/FALSE)
+    DATA_RATE      => "SDR",       -- Data-rate ("SDR" or "DDR")
+    DATA_WIDTH     => g_S,             -- Parallel data width selection (2-8)
+    INTERFACE_TYPE => "NETWORKING_PIPELINED", -- "NETWORKING", "NETWORKING_PIPELINED" or "RETIMED" 
+    SERDES_MODE    => "NONE"          -- "NONE", "MASTER" or "SLAVE" 
+   )
+  port map (
+    -- Q1 - Q4: 1-bit (each) output Registered outputs to FPGA logic
+    Q1     => s_Data_o(0),
+    Q2     => s_Data_o(2),
+    Q3     => s_Data_o(4),
+    Q4     => s_Data_o(6),
+    --SHIFTOUT => SHIFTOUTsig,     -- 1-bit output Cascade output signal for master/slave I/O
+    VALID   => open,               -- 1-bit output Output status of the phase detector
+    BITSLIP => '0',                -- 1-bit input Bitslip enable input
+    CE0     => '1',                -- 1-bit input Clock enable input
+	 CLK0    => clk_i,              -- 1-bit input I/O clock network input
+    CLK1    => '0',                -- 1-bit input Secondary I/O clock network input
+    CLKDIV  => hclk_i,             -- 1-bit input FPGA logic domain clock input
+    D       => s_Data_i_d_s,       -- 1-bit input Input data
+    IOCE    => strobe_i,           -- 1-bit input Data strobe_i input
+    RST     => reset_i,            -- 1-bit input Asynchronous reset_i input
+    SHIFTIN => '0'                 -- 1-bit input Cascade input signal for master/slave I/O
+   );
+
+reg_out : process(hclk_i)
+begin
+  if rising_edge(hclk_i) then
+    Data_o <= s_Data_o;
+  end if;
+end process;
+
+end Behavioral;
diff --git a/legacy/TLU_v1c/common/single_pulse_rtl.vhd b/legacy/TLU_v1c/common/single_pulse_rtl.vhd
new file mode 100644
index 00000000..e5da6214
--- /dev/null
+++ b/legacy/TLU_v1c/common/single_pulse_rtl.vhd
@@ -0,0 +1,93 @@
+-------------------------------------------------------------------------------
+--! @file
+-------------------------------------------------------------------------------
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+
+-------------------------------------------------------------------------------
+--
+-- VHDL for producing a single clock low-high-low pulse on the rising edge
+-- of input signal (LEVEL)
+--
+-- David Cussans, Ocala, April 2005
+--
+-- LEVEL (input) - when LEVEL goes high, PULSE goes high for one clock cycle
+--               - on next rising edge of CLK
+-- CLK (input)   - rising edge active
+-- PULSE         - changes on rising edge of clk
+--
+--! @brief gives a single cycle pulse ( high active) following the rising edge of LEVEL
+
+entity single_pulse is
+  generic (
+    g_PRE_REGISTER  : boolean := false;  -- --! Set true to put a register before rising edge detect
+    g_POST_REGISTER : boolean := false);  -- --! Set tru to put a register after rising edge detect
+  port (
+    level : in  std_logic; --! When LEVEL goes high, PULSE goes high for one clock cycle
+    clk : in  std_logic; --! rising edge active
+    pulse : out  std_logic              --! Pulses high for one cycle
+    );
+end entity single_pulse;
+
+architecture rtl of single_pulse is
+
+  signal pre_level, pre_pulse , x, v : std_logic;
+  
+begin  -- architecture rtl
+
+  -----------------------------------------------
+  -- Optional register on input
+  -----------------------------------------------
+  gen_pre_ff: if g_PRE_REGISTER=true generate
+    ffpre: process (clk , level) is
+    begin  -- process ff1
+      if rising_edge(clk) then
+        pre_level <= level;
+      end if;
+    end process ffpre;
+  end generate gen_pre_ff;
+
+  gen_no_pre_ff: if g_PRE_REGISTER=false generate
+    pre_level <= level;
+  end generate gen_no_pre_ff;
+
+  -----------------------------------------------
+  -- Register signal
+  -----------------------------------------------  
+  ff1: process (clk , level) is
+  begin  -- process ff1
+    if rising_edge(clk) then
+      x <= pre_level;
+    end if;
+  end process ff1;
+
+  -----------------------------------------------
+  -- Edge detection logic
+  -----------------------------------------------  
+  ff2: process (clk , x) is
+  begin  -- process ff2
+    if rising_edge(clk) then
+      v <= not x;
+    end if;
+  end process ff2;                           
+                           
+  pre_pulse <= ( x and v );
+
+
+  -----------------------------------------------
+  -- Optional register on output
+  -----------------------------------------------
+  gen_post_ff: if g_POST_REGISTER=true generate
+    ffpost: process (clk , level) is
+    begin  -- process ff1
+      if rising_edge(clk) then
+        pulse <= pre_pulse;
+      end if;
+    end process ffpost;
+  end generate gen_post_ff;
+
+  gen_no_post_ff: if g_POST_REGISTER=false generate
+    pulse <= pre_pulse;
+  end generate gen_no_post_ff;
+  
+end architecture rtl;
diff --git a/legacy/TLU_v1c/common/stretchPulse_rtl.vhd b/legacy/TLU_v1c/common/stretchPulse_rtl.vhd
new file mode 100644
index 00000000..957a4c6d
--- /dev/null
+++ b/legacy/TLU_v1c/common/stretchPulse_rtl.vhd
@@ -0,0 +1,92 @@
+--=============================================================================
+--! @file stretchPulse_rtl.vhd
+--=============================================================================
+--
+-------------------------------------------------------------------------------
+-- --
+-- University of Bristol, High Energy Physics Group.
+-- --
+------------------------------------------------------------------------------- --
+-- VHDL Architecture fmc_mTLU_lib.triggerLogic.rtl
+--
+--! @brief Takes a pulse on input, stretches it and delays it.
+--
+-------------------------------------------------------------------------------
+
+LIBRARY ieee;
+USE ieee.std_logic_1164.all;
+USE ieee.numeric_std.all;
+
+--! Definition of trigger time
+USE work.fmcTLU.all;                    
+
+entity stretchPulse is
+  
+  generic (
+    g_PARAM_WIDTH : positive := 5);  --! number of bits in parameters (width,  delay)
+
+  port (
+    clk_i        : in  std_logic;       --! Active high
+    pulse_i      : in  std_logic;       --! Active high
+    pulse_o      : out std_logic;       --! delayed and stretched
+    triggerTime_i : in t_triggerTime;   --! 5-bit time
+    triggerTime_o : out t_triggerTime;  --! Delayed by same amount as pulse
+    
+    pulseWidth_i : in  std_logic_vector(g_PARAM_WIDTH-1 downto 0);  --! Minimum pulse width ( in clock cycles )
+    pulseDelay_i : in  std_logic_vector(g_PARAM_WIDTH-1 downto 0) --! Delay is pulseDelay_i +1 clock cycles
+    );      
+
+end entity stretchPulse;
+
+-- For now just delay the pulse.
+architecture rtl of stretchPulse is
+
+  signal s_delaySR : std_logic_vector( (2**g_PARAM_WIDTH) -1 downto 0) := ( others => '0' );  -- --! Shift register to generate delay
+  signal s_stretchSR : std_logic_vector( (2**g_PARAM_WIDTH) -1 downto 0) := ( others => '0' );  -- --! Shift register to generate stretch
+  signal s_delayedPulse : std_logic := '0';  -- delayed pulse before stretch
+
+  signal s_triggerTimeSR : t_triggerTimeArray ( (2**g_PARAM_WIDTH)-1 downto 0) := ( others => ( others => '0'));  -- array of trigger times
+  signal s_triggerTime_d1 : t_triggerTime := ( others => '0');  -- shim out by one more clock cycle...
+  signal s_stretchedTriggerTime : t_triggerTime := ( others => '0');  -- shim out by one more clock cycle...
+  
+begin  -- architecture rtl
+
+  
+  --! Delay pulse
+  p_delayPulse: process (clk_i , pulse_i) is
+  begin  -- process p_delayPulse
+    if rising_edge(clk_i) then
+      s_delaySR <= s_delaySR( (s_delaySR'left -1) downto 0 ) & pulse_i;
+      s_delayedPulse <= s_delaySR( to_integer(unsigned(pulseDelay_i)) );
+
+      -- delay the trigger time to match trigger delay
+      s_triggerTimeSR <=  s_triggerTimeSR( (s_triggerTimeSR'left -1)  downto 0 ) & triggerTime_i;
+      s_triggerTime_d1 <=  s_triggerTimeSR( to_integer(unsigned(pulseDelay_i)) ); 
+--      triggerTime_o <= s_triggerTime_d1 ;
+      
+    end if;
+  end process p_delayPulse;
+
+  --! Stretch pulse. the output pulse is always at least as long as the input pulse
+  p_stretchPulse: process (clk_i , pulse_i) is
+  begin  -- process p_stretchPulse
+    if rising_edge(clk_i) then
+      if s_delayedPulse = '1' then
+        s_stretchSR <= ( others => '1' ) ;
+        pulse_o <= s_delayedPulse ;
+      else
+        s_stretchSR <= s_stretchSR( (s_stretchSR'left -1) downto 0 ) & '0';
+        pulse_o <= s_stretchSR( to_integer(unsigned(pulseWidth_i)) );
+      end if;
+
+      if s_stretchSR( to_integer(unsigned(pulseWidth_i)) ) = '0' then
+        --s_stretchedTriggerTime <= s_triggerTimeSR( to_integer(unsigned(pulseDelay_i)) );
+        triggerTime_o <= s_triggerTime_d1;
+      end if;
+      --triggerTime_o <= s_stretchedTriggerTime ;
+      
+    end if;
+  end process p_stretchPulse;
+
+end architecture rtl;
+
diff --git a/legacy/TLU_v1c/common/sychronizedIPBusCtrlRegV_rtl.vhd b/legacy/TLU_v1c/common/sychronizedIPBusCtrlRegV_rtl.vhd
new file mode 100644
index 00000000..1e1d7512
--- /dev/null
+++ b/legacy/TLU_v1c/common/sychronizedIPBusCtrlRegV_rtl.vhd
@@ -0,0 +1,83 @@
+--=============================================================================
+--! @file 
+--=============================================================================
+--
+-------------------------------------------------------------------------------
+-- --
+-- University of Bristol, High Energy Physics Group.
+-- --
+------------------------------------------------------------------------------- --
+LIBRARY ieee;
+USE ieee.std_logic_1164.all;
+
+USE work.ipbus.all;
+use work.ipbus_reg_types.all;
+
+--! @brief IPBus registers synchronzied onto logic clock
+--!
+--! @details Uses DMN ipbus_ctrlreg_v - originally tried to use
+--! ipbus_ctrlreg_sync, but had poor results and added own synchronzier.
+
+entity synchronizedIPBusCtrlRegV_rtl is
+	generic(
+		N_CTRL: positive := 1;
+		N_STAT: positive := 1
+	);
+	port(
+		ipbus_clk_i: in std_logic;
+		ipbus_reset_i: in std_logic;
+		ipbus_i: in ipb_wbus;
+		ipbus_o: out ipb_rbus;
+                logic_clk_i: in std_logic;
+		status_to_ipbus_i: in ipb_reg_v(N_STAT - 1 downto 0); --! Synchronized to logic_clk_i       
+		sync_control_from_ipbus_o: out ipb_reg_v(N_CTRL - 1 downto 0); --! Synchronized to logic_clk_i
+		stb_o: out std_logic_vector(N_CTRL - 1 downto 0) --! high when change made to a control register. Broken ( needs to be retimed )
+	);
+	
+end synchronizedIPBusCtrlRegV_rtl;
+
+
+architecture rtl of synchronizedIPBusCtrlRegV_rtl is
+
+  signal s_sync_status_to_ipbus : ipb_reg_v(c_N_STAT-1 downto 0);
+  signal s_control_from_ipbus   : ipb_reg_v(c_N_CTRL-1 downto 0);
+ 
+begin  -- architecture rtl
+
+  
+  ipbus_registers: entity work.ipbus_ctrlreg_v
+    generic map(
+      N_CTRL => c_N_CTRL,
+      N_STAT => c_N_STAT
+      )
+    port map(
+      clk => ipbus_clk_i,
+      reset=> ipbus_reset_i ,
+      ipbus_in=>  ipbus_i,
+      ipbus_out=> ipbus_o,
+      d=>  s_sync_status_to_ipbus,
+      q=>  s_control_from_ipbus,
+      stb=>  stb_o
+      );
+
+  -- Synchronize registers from logic clock to ipbus.
+    sync_status: entity work.synchronizeRegisters
+    generic map (
+      g_NUM_REGISTERS => c_N_STAT )
+    port map (
+      clk_input_i => clk_4x_logic_i,
+      data_i      =>  status_to_ipbus_i,
+      data_o      => s_sync_status_to_ipbus,
+      clk_output_i => ipbus_clk_i);
+
+    -- Synchronize registers from logic clock to ipbus.
+    sync_ctrl: entity work.synchronizeRegisters
+    generic map (
+      g_NUM_REGISTERS => c_N_CTRL )
+    port map (
+      clk_input_i => ipbus_clk_i,
+      data_i      =>  s_control_from_ipbus,
+      data_o      => sync_control_from_ipbus_o,
+      clk_output_i => clk_4x_logic_i);
+
+end architecture rtl;
diff --git a/legacy/TLU_v1c/common/sync_reg.vhd b/legacy/TLU_v1c/common/sync_reg.vhd
new file mode 100644
index 00000000..e88eb54b
--- /dev/null
+++ b/legacy/TLU_v1c/common/sync_reg.vhd
@@ -0,0 +1,50 @@
+----------------------------------------------------------------------------------
+-- Company: Universidade de Santiago de Compostela
+-- Engineer: Alvaro Dosil
+-- 
+-- Create Date:    15/08/2012 
+-- Module Name:    Conf_Regs - Behavioral 
+-- Revision 1.00 - File Created
+-- Additional Comments: 
+----------------------------------------------------------------------------------
+-------------------------------------------------------
+--! @file
+--! @brief Synchronization module 32b
+--! @author Alvaro Dosil
+-------------------------------------------------------
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+
+
+entity sync_reg is
+  generic(g_Data_width : positive := 32);
+  port(
+    clk_i : in std_logic;  --! synchronous clock
+    Async_i : in std_logic_vector(g_Data_width-1 downto 0); --! Asynchronous input data
+	 Sync_o : out std_logic_vector(g_Data_width-1 downto 0)); --! Synchronous output data
+  
+end sync_reg;
+
+--! @brief
+--! @details Synchronize words (n bits)of data 
+
+architecture Behavioral of sync_reg is
+
+signal s_async_i : std_logic_vector(g_Data_width-1 downto 0);
+signal s_sync_o : std_logic_vector(g_Data_width-1 downto 0);
+begin
+  
+loop0: for i in 0 to g_Data_width-1 generate
+  begin
+  reg: entity work.Reg_2clks
+    port map(
+	   clk_i => clk_i,
+		async_i => s_async_i(i),
+		sync_o => s_sync_o(i));
+  end generate;
+ 
+s_async_i <= Async_i; 
+Sync_o <= s_sync_o;
+
+end Behavioral;
+
diff --git a/legacy/TLU_v1c/common/synchronizeRegisters_fifo.vhd b/legacy/TLU_v1c/common/synchronizeRegisters_fifo.vhd
new file mode 100644
index 00000000..ebae77b4
--- /dev/null
+++ b/legacy/TLU_v1c/common/synchronizeRegisters_fifo.vhd
@@ -0,0 +1,110 @@
+--=============================================================================
+--! @file synchronizeRegisters_rtl.vhd
+--=============================================================================
+--
+-------------------------------------------------------------------------------
+-- --
+-- University of Bristol, High Energy Physics Group.
+-- --
+------------------------------------------------------------------------------- --
+-- VHDL Architecture worklib.synchronizeRegisters.rtl
+--
+--------------------------------------------------------------------------------
+
+library ieee;
+use ieee.std_logic_1164.all;
+
+use work.ipbus_reg_types.all;
+
+
+
+entity synchronizeRegisters_fifo is
+  
+  generic (
+    --g_DATA_WIDTH : positive := 15;
+    g_NUM_REGISTERS : positive := 1);     --! Number of registers to synchronize
+
+  port (
+    clk_input_i : in std_logic;         --! clock for input
+    data_i      : in ipb_reg_v(g_NUM_REGISTERS-1 downto 0);  --! array of registers to transfer to output
+    data_o     : out ipb_reg_v(g_NUM_REGISTERS-1 downto 0);  --! Data now in clk_output_i domain
+    clk_output_i  : in std_logic);        --! clock for output
+
+end synchronizeRegisters_fifo;
+
+architecture rtl of synchronizeRegisters_fifo is
+  signal s_ring_d0 , s_ring_d1 , s_ring_d2 , s_ring_d3 , s_ring_d4, s_ring_d5: std_logic := '0';  -- stages in "ring oscillator" used to generate strobes
+  signal s_registered_data : ipb_reg_v(data_i'range) := ( others => ( others => '0'));  --! Register to store data between clock domains
+
+  signal s_read_strobe , s_write_strobe : std_logic := '0';  --! Strobes high to register data from input and to output
+  
+  COMPONENT sync_fifo
+    PORT (
+      rst : IN STD_LOGIC;
+      wr_clk : IN STD_LOGIC;
+      rd_clk : IN STD_LOGIC;
+      din : IN STD_LOGIC_VECTOR(31 DOWNTO 0);
+      wr_en : IN STD_LOGIC;
+      rd_en : IN STD_LOGIC;
+      dout : OUT STD_LOGIC_VECTOR(31 DOWNTO 0);
+      full : OUT STD_LOGIC;
+      empty : OUT STD_LOGIC
+    );
+  END COMPONENT;
+  
+begin  -- rtl
+
+  --! purpose: part of "ring oscillator" transfering strobe between clock domains
+  -- type   : combinational
+  -- inputs : clk_read_i
+  -- outputs: 
+  gen_syncReg: for v_reg in 0 to g_NUM_REGISTERS-1 generate
+      mySynchReg : sync_fifo
+        PORT MAP (
+          rst => '0',
+          wr_clk => clk_input_i,
+          rd_clk => clk_output_i,
+          din => data_i(v_reg),
+          wr_en => '1',
+          rd_en => '1',
+          dout => data_o(v_reg),
+          full => open,
+          empty => open
+        );
+  end generate gen_syncReg;
+  
+--  p_gen_capture_strobe: process (clk_input_i)
+--  begin  -- process p_gen_capture_strobe
+--    if rising_edge(clk_input_i) then
+--      s_ring_d0 <= not s_ring_d5;
+--      s_ring_d1 <= s_ring_d0;
+--      s_ring_d2 <= s_ring_d1;
+
+--      if s_read_strobe = '1' then
+--        s_registered_data <= data_i;
+--      end if;
+--    end if;    
+--  end process p_gen_capture_strobe;
+
+--  s_read_strobe <= s_ring_d1 xor s_ring_d2; --! Generate a strobe (with width one clk_read_i) that captures data at input
+  
+--  --! purpose: part of "ring oscillator" transfering strobe between clock domains
+--  -- type   : combinational
+--  -- inputs : clk_output_i
+--  -- outputs: 
+--  p_gen_output_strobe: process (clk_output_i)
+--  begin  -- process p_gen_output_strobe
+--    if rising_edge(clk_output_i) then
+--      s_ring_d3 <= s_ring_d2;
+--      s_ring_d4 <= s_ring_d3;
+--      s_ring_d5 <= s_ring_d4;
+
+--      if s_write_strobe = '1' then
+--        data_o <= s_registered_data;
+--      end if;
+--    end if;    
+--  end process p_gen_output_strobe;
+
+--  s_write_strobe <= s_ring_d4 xor s_ring_d5; --! Generate the strobe that causes data to be written to output
+
+end rtl;
diff --git a/legacy/TLU_v1c/common/synchronizeRegisters_rtl.vhd b/legacy/TLU_v1c/common/synchronizeRegisters_rtl.vhd
new file mode 100644
index 00000000..bb7d59a7
--- /dev/null
+++ b/legacy/TLU_v1c/common/synchronizeRegisters_rtl.vhd
@@ -0,0 +1,103 @@
+--=============================================================================
+--! @file synchronizeRegisters_rtl.vhd
+--=============================================================================
+--
+-------------------------------------------------------------------------------
+-- --
+-- University of Bristol, High Energy Physics Group.
+-- --
+------------------------------------------------------------------------------- --
+-- VHDL Architecture worklib.synchronizeRegisters.rtl
+--
+--------------------------------------------------------------------------------
+
+library ieee;
+use ieee.std_logic_1164.all;
+
+use work.ipbus_reg_types.all;
+
+--! @brief Regularly transfers the input to the output.
+--! One clock for input , one clock for output
+--! Can't just put entire bus through a couple of register stages,
+--! Since this will just swap meta-stability issues for race issues.
+--!
+--! @author David Cussans , David.Cussans@bristol.ac.uk
+--!
+--! @date 24/Nov/12
+--!
+--! @version v0.1
+--!
+--! @details A six stage "ring oscillator" is used to generate two strobes.
+--! One reads data into a register. The other registers the data to the output
+--! Three stages are clocked on clk_write_i , three stages are clocked on clk_read_i
+--! The time taken for an edge to travel round the complete loop is
+--! 2 cycles of clk_read_i and 2 cycles of clk_write_i plus two intervals
+--! that depend on the relative phase of clk_read_i and clk_write_i
+--!
+--! Based on registerCounters
+--!
+--! <b>Modified by:</b>\n
+--! Author:
+--! David Cussans, 26/2/14 - Added registers to output to aid timing closure.
+
+entity synchronizeRegisters is
+  
+  generic (
+    --g_DATA_WIDTH : positive := 15;
+    g_NUM_REGISTERS : positive := 1);     --! Number of registers to synchronize
+
+  port (
+    clk_input_i : in std_logic;         --! clock for input
+    data_i      : in ipb_reg_v(g_NUM_REGISTERS-1 downto 0);  --! array of registers to transfer to output
+    data_o     : out ipb_reg_v(g_NUM_REGISTERS-1 downto 0);  --! Data now in clk_output_i domain
+    clk_output_i  : in std_logic);        --! clock for output
+
+end synchronizeRegisters;
+
+architecture rtl of synchronizeRegisters is
+  signal s_ring_d0 , s_ring_d1 , s_ring_d2 , s_ring_d3 , s_ring_d4, s_ring_d5: std_logic := '0';  -- stages in "ring oscillator" used to generate strobes
+  signal s_registered_data : ipb_reg_v(data_i'range) := ( others => ( others => '0'));  --! Register to store data between clock domains
+
+  signal s_read_strobe , s_write_strobe : std_logic := '0';  --! Strobes high to register data from input and to output
+  
+begin  -- rtl
+
+  --! purpose: part of "ring oscillator" transfering strobe between clock domains
+  -- type   : combinational
+  -- inputs : clk_read_i
+  -- outputs: 
+  p_gen_capture_strobe: process (clk_input_i)
+  begin  -- process p_gen_capture_strobe
+    if rising_edge(clk_input_i) then
+      s_ring_d0 <= not s_ring_d5;
+      s_ring_d1 <= s_ring_d0;
+      s_ring_d2 <= s_ring_d1;
+
+      if s_read_strobe = '1' then
+        s_registered_data <= data_i;
+      end if;
+    end if;    
+  end process p_gen_capture_strobe;
+
+  s_read_strobe <= s_ring_d1 xor s_ring_d2; --! Generate a strobe (with width one clk_read_i) that captures data at input
+  
+  --! purpose: part of "ring oscillator" transfering strobe between clock domains
+  -- type   : combinational
+  -- inputs : clk_output_i
+  -- outputs: 
+  p_gen_output_strobe: process (clk_output_i)
+  begin  -- process p_gen_output_strobe
+    if rising_edge(clk_output_i) then
+      s_ring_d3 <= s_ring_d2;
+      s_ring_d4 <= s_ring_d3;
+      s_ring_d5 <= s_ring_d4;
+
+      if s_write_strobe = '1' then
+        data_o <= s_registered_data;
+      end if;
+    end if;    
+  end process p_gen_output_strobe;
+
+  s_write_strobe <= s_ring_d4 xor s_ring_d5; --! Generate the strobe that causes data to be written to output
+
+end rtl;
diff --git a/legacy/TLU_v1c/common/test_inToOut.vhd b/legacy/TLU_v1c/common/test_inToOut.vhd
new file mode 100644
index 00000000..91b60eec
--- /dev/null
+++ b/legacy/TLU_v1c/common/test_inToOut.vhd
@@ -0,0 +1,106 @@
+----------------------------------------------------------------------------------
+-- Company: 
+-- Engineer: 
+-- 
+-- Create Date: 09.02.2017 14:45:31
+-- Design Name: 
+-- Module Name: test_inToOut - Behavioral
+-- Project Name: 
+-- Target Devices: 
+-- Tool Versions: 
+-- Description: 
+-- 
+-- Dependencies: 
+-- 
+-- Revision:
+-- Revision 0.01 - File Created
+-- Additional Comments:
+-- 
+----------------------------------------------------------------------------------
+
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+
+-- Uncomment the following library declaration if using
+-- arithmetic functions with Signed or Unsigned values
+use IEEE.NUMERIC_STD.ALL;
+
+-- Uncomment the following library declaration if instantiating
+-- any Xilinx leaf cells in this code.
+library UNISIM;
+use UNISIM.VComponents.all;
+
+entity test_inToOut is
+    Generic(
+        DUT_TOGGLE : integer  :=1; --HDMI that toggles
+        DUT_OUT : integer := 2; --HDMI used as input
+        DUT_IN : integer := 0; --HDMI used as output
+        DUT_DULL : integer := 3 --HDMI not used
+    );
+    Port ( clk_in : in STD_LOGIC;
+           busy_in : in STD_LOGIC_VECTOR (3 downto 0);
+           control_in : in STD_LOGIC_VECTOR (3 downto 0);
+           trig_in : in STD_LOGIC_VECTOR (3 downto 0);
+           clkDut_in : in STD_LOGIC_VECTOR (3 downto 0);
+           spare_in : in STD_LOGIC_VECTOR (3 downto 0);
+           busy_out : out STD_LOGIC_VECTOR (3 downto 0);
+           control_out : out STD_LOGIC_VECTOR (3 downto 0);
+           trig_out : out STD_LOGIC_VECTOR (3 downto 0);
+           clkDut_out : out STD_LOGIC_VECTOR (3 downto 0);
+           spare_out : out STD_LOGIC_VECTOR (3 downto 0));
+end test_inToOut;
+
+architecture Behavioral of test_inToOut is
+
+    signal prescaler : unsigned(23 downto 0);
+    signal outcounter: unsigned(4 downto 0);
+    signal clk_slow_i : std_logic_vector(4 downto 0);
+    signal placeholder: std_logic_vector(4 downto 0);
+
+begin
+
+    gen_clk : process (clk_in)
+    begin  -- process gen_clk
+    if rising_edge(clk_in) then   -- rising clock edge
+      if prescaler = X"30D40" then     -- 200 000 in hex
+        prescaler   <= (others => '0');
+        --clk_slow_i   <= not clk_slow_i;
+        outcounter <= outcounter +1;
+        clk_slow_i(0) <= outcounter(0);
+        clk_slow_i(1) <= outcounter(1);
+        clk_slow_i(2) <= outcounter(2);
+        clk_slow_i(3) <= outcounter(3);
+        clk_slow_i(4) <= outcounter(4);
+      else
+        prescaler <= prescaler + "1";
+      end if;
+      clkDut_out(DUT_TOGGLE) <= clk_slow_i(0);
+      busy_out(DUT_TOGGLE) <= clk_slow_i(1);
+      control_out(DUT_TOGGLE) <= clk_slow_i(2);
+      trig_out(DUT_TOGGLE) <= clk_slow_i(3);
+      spare_out(DUT_TOGGLE) <= clk_slow_i(4);
+      
+      clkDut_out(DUT_TOGGLE) <= clk_slow_i(0);
+      busy_out(DUT_TOGGLE) <= clk_slow_i(1);
+      control_out(DUT_TOGGLE) <= clk_slow_i(2);
+      trig_out(DUT_TOGGLE) <= clk_slow_i(3);
+      spare_out(DUT_TOGGLE) <= clk_slow_i(4);
+  
+      clkDut_out(DUT_OUT) <= clkDut_in(DUT_IN);
+      busy_out(DUT_OUT) <= busy_in(DUT_IN);
+      control_out(DUT_OUT) <= control_in(DUT_IN);
+      trig_out(DUT_OUT) <= trig_in(DUT_IN);
+      spare_out(DUT_OUT) <= spare_in(DUT_IN);
+      
+      clkDut_out(DUT_DULL) <= '0';
+      busy_out(DUT_DULL) <= '0';
+      control_out(DUT_DULL) <= '0';
+      trig_out(DUT_DULL) <= '0';
+      spare_out(DUT_DULL) <= '0';
+    end if;
+    end process gen_clk;
+    
+
+
+end Behavioral;
diff --git a/legacy/TLU_v1c/common/test_inputToOutput.vhd b/legacy/TLU_v1c/common/test_inputToOutput.vhd
new file mode 100644
index 00000000..b8cbb1d9
--- /dev/null
+++ b/legacy/TLU_v1c/common/test_inputToOutput.vhd
@@ -0,0 +1,53 @@
+----------------------------------------------------------------------------------
+-- Company: 
+-- Engineer: 
+-- 
+-- Create Date: 09.02.2017 12:54:36
+-- Design Name: 
+-- Module Name: test_inputToOutput - Behavioral
+-- Project Name: 
+-- Target Devices: 
+-- Tool Versions: 
+-- Description: 
+-- 
+-- Dependencies: 
+-- 
+-- Revision:
+-- Revision 0.01 - File Created
+-- Additional Comments:
+-- 
+----------------------------------------------------------------------------------
+
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+
+-- Uncomment the following library declaration if using
+-- arithmetic functions with Signed or Unsigned values
+--use IEEE.NUMERIC_STD.ALL;
+
+-- Uncomment the following library declaration if instantiating
+-- any Xilinx leaf cells in this code.
+library UNISIM;
+use UNISIM.VComponents.all;
+
+entity test_inputToOutput is
+    Port ( clk_i : in STD_LOGIC;
+           test_i : in STD_LOGIC_VECTOR (3 downto 0);
+           test_o : out STD_LOGIC_VECTOR (3 downto 0));
+end test_inputToOutput;
+
+architecture Behavioral of test_inputToOutput is
+    signal synch_lines : std_logic_vector(3 downto 0);
+begin
+    synch_io : process (clk_i)
+    begin
+        if rising_edge(clk_i) then
+            synch_lines <= test_i;
+            test_o(1) <= synch_lines(0);
+            test_o(3) <= synch_lines(2);
+            test_o(0) <= '0';
+            test_o(2) <= '1';
+        end if;
+    end process synch_io;
+end Behavioral;
diff --git a/legacy/TLU_v1c/common/test_toggleLines.vhd b/legacy/TLU_v1c/common/test_toggleLines.vhd
new file mode 100644
index 00000000..ed585cdb
--- /dev/null
+++ b/legacy/TLU_v1c/common/test_toggleLines.vhd
@@ -0,0 +1,70 @@
+----------------------------------------------------------------------------------
+-- Company: 
+-- Engineer: 
+-- 
+-- Create Date: 06.02.2017 10:09:26
+-- Design Name: 
+-- Module Name: test_toggleLines - Behavioral
+-- Project Name: 
+-- Target Devices: 
+-- Tool Versions: 
+-- Description: 
+-- 
+-- Dependencies: 
+-- 
+-- Revision:
+-- Revision 0.01 - File Created
+-- Additional Comments:
+-- 
+----------------------------------------------------------------------------------
+
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+
+-- Uncomment the following library declaration if using
+-- arithmetic functions with Signed or Unsigned values
+use IEEE.NUMERIC_STD.ALL;
+
+-- Uncomment the following library declaration if instantiating
+-- any Xilinx leaf cells in this code.
+--library UNISIM;
+--use UNISIM.VComponents.all;
+
+entity test_toggleLines is
+    Port (
+        clk_in : in STD_LOGIC;
+        toggle_o : out std_logic_vector(3 downto 0)
+        );
+end test_toggleLines;
+
+architecture Behavioral of test_toggleLines is
+
+    signal prescaler : unsigned(23 downto 0);
+    signal outcounter: unsigned(3 downto 0);
+    signal clk_slow_i : std_logic_vector(3 downto 0);
+    
+begin
+
+  gen_clk : process (clk_in)
+  begin  -- process gen_clk
+    if rising_edge(clk_in) then   -- rising clock edge
+      if prescaler = X"30D40" then     -- 200 000 in hex
+        prescaler   <= (others => '0');
+        --clk_slow_i   <= not clk_slow_i;
+        outcounter <= outcounter +1;
+        clk_slow_i(0) <= outcounter(0);
+        clk_slow_i(1) <= outcounter(1);
+        clk_slow_i(2) <= outcounter(2);
+        clk_slow_i(3) <= outcounter(3);
+      else
+        prescaler <= prescaler + "1";
+      end if;
+    end if;
+  end process gen_clk;
+
+  toggle_o <= clk_slow_i;
+
+
+
+end Behavioral;
diff --git a/legacy/TLU_v1c/common/testbench_clocks.vhd b/legacy/TLU_v1c/common/testbench_clocks.vhd
new file mode 100644
index 00000000..052b220c
--- /dev/null
+++ b/legacy/TLU_v1c/common/testbench_clocks.vhd
@@ -0,0 +1,43 @@
+----------------------------------------------------------------------------------
+-- Company: 
+-- Engineer: 
+-- 
+-- Create Date: 17.02.2017 11:26:56
+-- Design Name: 
+-- Module Name: testbench_clocks - Behavioral
+-- Project Name: 
+-- Target Devices: 
+-- Tool Versions: 
+-- Description: 
+-- 
+-- Dependencies: 
+-- 
+-- Revision:
+-- Revision 0.01 - File Created
+-- Additional Comments:
+-- 
+----------------------------------------------------------------------------------
+
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+
+-- Uncomment the following library declaration if using
+-- arithmetic functions with Signed or Unsigned values
+--use IEEE.NUMERIC_STD.ALL;
+
+-- Uncomment the following library declaration if instantiating
+-- any Xilinx leaf cells in this code.
+--library UNISIM;
+--use UNISIM.VComponents.all;
+
+entity testbench_clocks is
+--  Port ( );
+end testbench_clocks;
+
+architecture Behavioral of testbench_clocks is
+
+begin
+
+
+end Behavioral;
diff --git a/legacy/TLU_v1c/common/testbench_myclocks.vhd b/legacy/TLU_v1c/common/testbench_myclocks.vhd
new file mode 100644
index 00000000..c17c7db5
--- /dev/null
+++ b/legacy/TLU_v1c/common/testbench_myclocks.vhd
@@ -0,0 +1,99 @@
+----------------------------------------------------------------------------------
+-- Company: 
+-- Engineer: 
+-- 
+-- Create Date: 17.02.2017 11:31:53
+-- Design Name: 
+-- Module Name: testbench_myclocks - Behavioral
+-- Project Name: 
+-- Target Devices: 
+-- Tool Versions: 
+-- Description: 
+-- 
+-- Dependencies: 
+-- 
+-- Revision:
+-- Revision 0.01 - File Created
+-- Additional Comments:
+-- 
+----------------------------------------------------------------------------------
+
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+use work.ipbus.all;
+-- Uncomment the following library declaration if using
+-- arithmetic functions with Signed or Unsigned values
+--use IEEE.NUMERIC_STD.ALL;
+
+-- Uncomment the following library declaration if instantiating
+-- any Xilinx leaf cells in this code.
+--library UNISIM;
+--use UNISIM.VComponents.all;
+
+
+
+entity testbench_myclocks is
+end testbench_myclocks;
+
+architecture Behavioral of testbench_myclocks is
+
+ COMPONENT logic_clocks
+    GENERIC (
+        g_USE_EXTERNAL_CLK : integer := 1
+    );
+    PORT (
+        ipbus_clk_i           : IN     std_logic ;
+        ipbus_i               : IN     ipb_wbus ;
+        ipbus_reset_i         : IN     std_logic ;
+        Reset_i               : IN     std_logic ;
+        clk_logic_xtal_i      : IN     std_logic ; -- ! 40MHz clock from onboard xtal
+        clk_8x_logic_o       : OUT    std_logic ; -- 640MHz clock
+        clk_4x_logic_o        : OUT    std_logic ; -- 160MHz clock
+        ipbus_o               : OUT    ipb_rbus ;
+        strobe_8x_logic_o    : OUT    std_logic ; -- strobes once every 4 cycles of clk_16x
+        strobe_4x_logic_o     : OUT    std_logic ; -- one pulse every 4 cycles of clk_4x
+        --extclk_p_b            : INOUT  std_logic ; -- either external clock in, or a clock being driven out
+        --extclk_n_b            : INOUT  std_logic ;
+        DUT_clk_o             : OUT    std_logic ;
+        logic_clocks_locked_o : OUT    std_logic ;
+        logic_reset_o         : OUT    std_logic   -- Goes high TO reset counters etc. Sync with clk_4x_logic
+    );
+    END COMPONENT logic_clocks;
+    FOR ALL : logic_clocks USE ENTITY work.logic_clocks;
+    SIGNAL sysclk_40         : std_logic := '0';
+    SIGNAL clk_8x_logic         : std_logic := '0';
+    SIGNAL clk_4x_logic         : std_logic := '0';
+    SIGNAL strobe_8x_logic         : std_logic := '0';
+    SIGNAL strobe_4x_logic         : std_logic := '0';
+    SIGNAL logic_reset         : std_logic := '0';
+    signal ipbus_i_const             : ipb_wbus;
+
+
+begin
+    
+      ipbus_i_const.ipb_strobe <= '0';
+      ipbus_i_const.ipb_write <= '0';
+      ipbus_i_const.ipb_wdata <= (others => '0');
+    
+        I3_Clocks : logic_clocks
+    GENERIC MAP (
+        g_USE_EXTERNAL_CLK => 0
+    )
+    PORT MAP (
+        ipbus_clk_i           => '0',
+        ipbus_i               => ipbus_i_const,
+        ipbus_reset_i         => '0',
+        Reset_i               => '0',
+        clk_logic_xtal_i      => sysclk_40, -- Not sure this is correct
+        clk_8x_logic_o       => clk_8x_logic,
+        clk_4x_logic_o        => clk_4x_logic,
+        ipbus_o               => open,
+        strobe_8x_logic_o    => strobe_8x_logic,
+        strobe_4x_logic_o     => strobe_4x_logic,
+        DUT_clk_o             => open,
+        logic_clocks_locked_o => open,
+        logic_reset_o         => logic_reset
+    );  
+
+end Behavioral;
diff --git a/legacy/TLU_v1c/common/top_enclustra_ax3_pm3.vhd b/legacy/TLU_v1c/common/top_enclustra_ax3_pm3.vhd
new file mode 100644
index 00000000..589be2f2
--- /dev/null
+++ b/legacy/TLU_v1c/common/top_enclustra_ax3_pm3.vhd
@@ -0,0 +1,173 @@
+-- Top-level design for ipbus demo
+--
+-- This version is for Enclustra AX3 module, using the RGMII PHY on the PM3 baseboard
+--
+-- You must edit this file to set the IP and MAC addresses
+--
+-- Dave Newbold, 4/10/16--
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+--Library UNISIM;
+--use UNISIM.vcomponents.all;
+
+use work.ipbus.ALL;
+
+entity top is
+    generic(
+    g_NUM_DUTS  : positive := 3;
+    g_NUM_TRIG_INPUTS   :positive := 4;
+    g_NUM_EXT_SLAVES    :positive :=8;
+    g_EVENT_DATA_WIDTH  :positive := 64;
+    g_IPBUS_WIDTH   :positive := 32;
+    g_NUM_EDGE_INPUTS   :positive := 4;
+    g_SPILL_COUNTER_WIDTH   :positive := 12;
+    g_BUILD_SIMULATED_MAC   :integer := 0
+    );
+    port(
+        sysclk: in std_logic;
+        leds: out std_logic_vector(3 downto 0); -- status LEDs
+        dip_sw: in std_logic_vector(3 downto 0); -- switches
+        rgmii_txd: out std_logic_vector(3 downto 0);
+        rgmii_tx_ctl: out std_logic;
+        rgmii_txc: out std_logic;
+        rgmii_rxd: in std_logic_vector(3 downto 0);
+        rgmii_rx_ctl: in std_logic;
+        rgmii_rxc: in std_logic;
+        i2c_scl_b: inout std_logic_vector(2 downto 0);
+        i2c_sda_b: inout std_logic_vector(2 downto 0);
+        phy_rstn: out std_logic; --default example ends here
+        busy_n_i: in std_logic_vector(g_NUM_DUTS-1 downto 0);
+        busy_p_i: in std_logic_vector(g_NUM_DUTS-1 downto 0);
+        cfd_discr_n_i: in std_logic_vector(g_NUM_TRIG_INPUTS-1 downto 0);
+        cfd_discr_p_i: in std_logic_vector(g_NUM_TRIG_INPUTS-1 downto 0);
+        threshold_discr_n_i: in std_logic_vector(g_NUM_TRIG_INPUTS-1 downto 0);
+        threshold_discr_p_i: in std_logic_vector(g_NUM_TRIG_INPUTS-1 downto 0);
+        gpio_hdr: out std_logic_vector(3 downto 0);
+        reset_or_clk_n_o: out std_logic_vector(g_NUM_DUTS-1 downto 0);
+        reset_or_clk_p_o: out std_logic_vector(g_NUM_DUTS-1 downto 0);
+        shutter_to_dut_n_o: out std_logic_vector(g_NUM_DUTS-1 downto 1);
+        shutter_to_dut_p_o: out std_logic_vector(g_NUM_DUTS-1 downto 1)
+        );
+
+end top;
+
+architecture rtl of top is
+
+	signal clk_ipb, rst_ipb, nuke, soft_rst, phy_rst_e, userled: std_logic;
+	signal mac_addr: std_logic_vector(47 downto 0);
+	signal ip_addr: std_logic_vector(31 downto 0);
+	signal ipb_out: ipb_wbus;
+	signal ipb_in: ipb_rbus;
+	signal inf_leds: std_logic_vector(1 downto 0);
+	SIGNAL s_i2c_scl_enb         : std_logic_vector(2 downto 0);
+    SIGNAL s_i2c_sda_enb         : std_logic_vector(2 downto 0);
+	--signal s_i2c_sda_i : std_logic;
+	--signal s_i2c_scl_i : std_logic;
+	
+begin
+    
+--led_iic_test <= iic_test;
+
+--Implicit instantiation of output tristate buffers.
+    i2c_scl_b(0) <= '0' when (s_i2c_scl_enb(0) = '0') else 'Z';
+    i2c_sda_b(0) <= '0' when (s_i2c_sda_enb(0) = '0') else 'Z';
+    i2c_scl_b(1) <= '0' when (s_i2c_scl_enb(1) = '0') else 'Z';
+    i2c_sda_b(1) <= '0' when (s_i2c_sda_enb(1) = '0') else 'Z';
+    i2c_scl_b(2) <= '0' when (s_i2c_scl_enb(2) = '0') else 'Z';
+    i2c_sda_b(2) <= '0' when (s_i2c_sda_enb(2) = '0') else 'Z';
+-- Infrastructure
+
+
+
+
+	infra: entity work.enclustra_ax3_pm3_infra
+		port map(
+			sysclk => sysclk,
+			clk_ipb_o => clk_ipb,
+			rst_ipb_o => rst_ipb,
+			rst_125_o => phy_rst_e,
+			nuke => nuke,
+			soft_rst => soft_rst,
+			leds => inf_leds,
+			rgmii_txd => rgmii_txd,
+			rgmii_tx_ctl => rgmii_tx_ctl,
+			rgmii_txc => rgmii_txc,
+			rgmii_rxd => rgmii_rxd,
+			rgmii_rx_ctl => rgmii_rx_ctl,
+			rgmii_rxc => rgmii_rxc,
+			mac_addr => mac_addr,
+			ip_addr => ip_addr,
+			ipb_in => ipb_in,
+			ipb_out => ipb_out
+		);
+		
+	leds <= not ('0' & userled & inf_leds);
+	phy_rstn <= not phy_rst_e;
+		
+--	mac_addr <= X"020ddba1151" & dip_sw; -- Careful here, arbitrary addresses do not always work
+--	ip_addr <= X"c0a8c81" & dip_sw; -- 192.168.200.16+n
+	mac_addr <= X"020ddba1151f"; -- Careful here, arbitrary addresses do not always work
+	ip_addr <= X"c0a8c81f"; -- 192.168.200.16+n
+
+-- ipbus slaves live in the entity below, and can expose top-level ports
+-- The ipbus fabric is instantiated within.
+
+--	slaves: entity work.ipbus_example
+--		port map(
+--			ipb_clk => clk_ipb,
+--			ipb_rst => rst_ipb,
+--			ipb_in => ipb_out,
+--			ipb_out => ipb_in,
+--			nuke => nuke,
+--			soft_rst => soft_rst,
+--			i2c_scl_b => i2c_scl_b,
+--            i2c_sda_b => i2c_sda_b,
+--			userled => userled
+--		);
+    --OBUFT: Single-ended 3-state Output Buffer
+--7 Series
+-- Xilinx HDL Libraries Guide, version 2012.2
+
+--OBUFT_inst_scl : IOBUF
+--generic map (
+--	DRIVE => 12,
+--	IOSTANDARD => "DEFAULT",
+--	SLEW => "SLOW")
+--port map (
+--    IO => i2c_scl_b, -- Buffer output (connect directly to top-level port)
+--    I => '0', -- Buffer input
+--    T => s_i2c_scl_enb, -- 3-state enable input
+--    O =>  s_i2c_scl_i
+--); -- End of OBUFT_inst instantiation
+
+--OBUFT_inst_sda : IOBUF
+--generic map (
+--	DRIVE => 12,
+--	IOSTANDARD => "DEFAULT",
+--	SLEW => "SLOW")
+--port map (
+--    IO => i2c_sda_b, -- Buffer output (connect directly to top-level port)
+--    I => '0', -- Buffer input
+--    T => s_i2c_sda_enb, -- 3-state enable input
+--    O =>  s_i2c_sda_i
+--); -- End of OBUFT_inst instantiation
+    
+    slaves: entity work.ipbus_example
+    port map(
+        ipb_clk => clk_ipb,
+        ipb_rst => rst_ipb,
+        ipb_in => ipb_out,
+        ipb_out => ipb_in,
+        nuke => nuke,
+        soft_rst => soft_rst,
+        --i2c_scl_i => s_i2c_scl_i,
+        --i2c_sda_i => s_i2c_sda_i,
+        i2c_sda_i => i2c_sda_b,
+        i2c_scl_i => i2c_scl_b,
+        i2c_scl_enb_o => s_i2c_scl_enb,
+        i2c_sda_enb_o => s_i2c_sda_enb,
+        userled => userled
+    );
+
+end rtl;
diff --git a/legacy/TLU_v1c/common/top_enclustra_tlu.vhd b/legacy/TLU_v1c/common/top_enclustra_tlu.vhd
new file mode 100644
index 00000000..e14ae242
--- /dev/null
+++ b/legacy/TLU_v1c/common/top_enclustra_tlu.vhd
@@ -0,0 +1,752 @@
+-- Top-level design for TLU
+--
+-- This version is for Enclustra AX3 module, using the RGMII PHY on the PM3 baseboard
+--
+-- You must edit this file to set the IP and MAC addresses
+--
+-- Dave Newbold, 4/10/16--
+
+library IEEE;
+library UNISIM;
+use IEEE.STD_LOGIC_1164.ALL;
+use ieee.numeric_std.all;
+use work.fmcTLU.all;
+use work.ipbus_decode_tlu.all;
+use work.ipbus.all;
+use work.ipbus_reg_types.all;
+use UNISIM.vcomponents.all;
+
+--Library UNISIM;
+--use UNISIM.vcomponents.all;
+
+use work.ipbus.ALL;
+
+entity top_tlu is
+    generic(
+    constant FW_VERSION : unsigned(31 downto 0):= X"abcd000d"; -- Firmware revision. Remember to change this as needed.
+    g_NUM_DUTS  : positive := 4; -- <- was 3
+    g_NUM_TRIG_INPUTS   :positive := 6;-- <- was 4
+    g_NUM_EDGE_INPUTS   :positive := 6;--  <-- was 4
+    g_NUM_EXT_SLAVES    :positive :=8;--  <-- ??
+    g_EVENT_DATA_WIDTH  :positive := 64;--  <-- ??
+    g_IPBUS_WIDTH   :positive := 32;--  <-- was 32 
+    g_SPILL_COUNTER_WIDTH   :positive := 12;--  <-- ??
+    g_BUILD_SIMULATED_MAC   :integer := 0
+    );
+    port(
+    --Clock
+        --sysclk: in std_logic; --50 MHz clock input from FPGA
+        clk_enclustra: in std_logic; --Enclustra onboard oscillator 40 MHz. Used for the IPBus block
+        sysclk_50_o_p : out std_logic; --50 MHz clock output to FMC pins
+        sysclk_50_o_n : out std_logic; --50 MHz clock output to FMC pins
+        sysclk_40_i_p: in std_logic;
+        sysclk_40_i_n: in std_logic;
+    --Misc
+        leds: out std_logic_vector(3 downto 0); -- status LEDs
+        dip_sw: in std_logic_vector(3 downto 0); -- switches
+        gpio: out std_logic; -- gpio pin on J1 (eventually make it inout)
+    --RGMII interface signals
+        rgmii_txd: out std_logic_vector(3 downto 0);
+        rgmii_tx_ctl: out std_logic;
+        rgmii_txc: out std_logic;
+        rgmii_rxd: in std_logic_vector(3 downto 0);
+        rgmii_rx_ctl: in std_logic;
+        rgmii_rxc: in std_logic;
+        phy_rstn: out std_logic; 
+    --I2C bus
+        i2c_scl_b: inout std_logic;
+        i2c_sda_b: inout std_logic;
+        i2c_reset: out std_logic; --Reset line for the expander serial lines
+    --Clock generator controls
+        clk_gen_rst: out std_logic; --Reset line for the Si5345 clock generator (active low)
+        --clk_gen_lol: in std_logic; --LOL signal. Do not use for now as it is connected to CONT_FROM_FPGA<0>
+    --TLU signals for DUTs
+        busy_i: in std_logic_vector(g_NUM_DUTS-1 downto 0);-- Busy lines from DUTs (active high) (busy to FPGA)
+        busy_o: out std_logic_vector(g_NUM_DUTS-1 downto 0);-- Busy lines to DUTs (active high) (busy from FPGA)
+        cont_i: in std_logic_vector(g_NUM_DUTS-1 downto 0); --Control lines from DUTs
+        cont_o: out std_logic_vector(g_NUM_DUTS-1 downto 0); --Control lines to DUTs
+        spare_i: in std_logic_vector(g_NUM_DUTS-1 downto 0); --Spare lines from DUTs
+        spare_o: out std_logic_vector(g_NUM_DUTS-1 downto 0); --Spare lines to DUTs
+        triggers_i: in std_logic_vector(g_NUM_DUTS-1 downto 0); --Trigger lines from DUTs
+        triggers_o: out std_logic_vector(g_NUM_DUTS-1 downto 0); --Trigger lines to DUTs
+        dut_clk_i: in std_logic_vector(g_NUM_DUTS-1 downto 0); --Clock from DUTs
+        dut_clk_o: out std_logic_vector(g_NUM_DUTS-1 downto 0); --Clock to DUTs
+        
+        --reset_or_clk_n_o: out std_logic_vector(g_NUM_DUTS-1 downto 0); --T0 synchronization signal
+        --reset_or_clk_p_o: out std_logic_vector(g_NUM_DUTS-1 downto 0);
+        --shutter_to_dut_n_o: out std_logic_vector(g_NUM_DUTS-1 downto 0); --Shutter output
+        --shutter_to_dut_p_o: out std_logic_vector(g_NUM_DUTS-1 downto 0);
+                
+     --TLU trigger inputs   
+        threshold_discr_n_i: in std_logic_vector(g_NUM_TRIG_INPUTS-1 downto 0);
+        threshold_discr_p_i: in std_logic_vector(g_NUM_TRIG_INPUTS-1 downto 0)
+        --gpio_hdr: out std_logic_vector(3 downto 0);
+        --extclk_n_b: inout std_logic; --External clock in or clock output
+        --extclk_p_b: inout std_logic
+    );
+
+end top_tlu;
+
+architecture rtl of top_tlu is
+
+	signal clk_ipb, rst_ipb, nuke, soft_rst, phy_rst_e, clk_200, sysclk_40, clk_encl_buf, userled: std_logic;
+	signal mac_addr: std_logic_vector(47 downto 0);
+	signal ip_addr: std_logic_vector(31 downto 0);
+	signal ipb_out: ipb_wbus;
+	signal ipb_in: ipb_rbus;
+	signal inf_leds: std_logic_vector(1 downto 0);
+	signal s_i2c_scl_enb         : std_logic;
+    signal s_i2c_sda_enb         : std_logic;
+    signal encl_clock50: std_logic; -- This is a 50 MHz clock generated from the Enclustra onboard oscillator (rather than the clock input)
+    
+	--signal s_i2c_sda_i : std_logic;
+	--signal s_i2c_scl_i : std_logic;
+	------------------------------------------
+	-- Internal signal declarations
+    SIGNAL T0_o                  : std_logic;
+    SIGNAL buffer_full_o         : std_logic;                                             --! Goes high when event buffer almost full
+    SIGNAL clk_8x_logic         : std_logic;                                             -- 320MHz clock
+    SIGNAL clk_4x_logic          : std_logic;                                             --! normally 160MHz
+    SIGNAL clk_logic_xtal        : std_logic;                                             -- ! 40MHz clock from onboard xtal
+    SIGNAL data_strobe           : std_logic;                                             -- goes high when data ready to load into event buffer
+    SIGNAL dout                  : std_logic;
+    SIGNAL dout1                 : std_logic;
+    SIGNAL event_data            : std_logic_vector(g_EVENT_DATA_WIDTH-1 DOWNTO 0);
+    signal ipbww: ipb_wbus_array(N_SLAVES - 1 downto 0);
+    signal ipbrr: ipb_rbus_array(N_SLAVES - 1 downto 0);
+    SIGNAL logic_clocks_reset    : std_logic;                                             -- Goes high to reset counters etc. Sync with clk_4x_logic
+    SIGNAL logic_reset           : std_logic;
+    SIGNAL overall_trigger       : std_logic;                                             --! goes high to load trigger data
+    SIGNAL overall_veto          : std_logic;                                             --! Halts triggers when high
+    SIGNAL postVetoTrigger_times : t_triggerTimeArray(g_NUM_TRIG_INPUTS-1 DOWNTO 0);      -- ! trigger arrival time ( w.r.t. logic_strobe)
+    SIGNAL postVetotrigger       : std_logic_vector(g_NUM_TRIG_INPUTS-1 DOWNTO 0);        -- ! High when trigger from input connector active and enabled
+    --trigger_count_i   : IN     std_logic_vector (g_IPBUS_WIDTH-1 DOWNTO 0); --! Not used yet.
+    SIGNAL rst_fifo_o            : std_logic;                                             --! rst signal to first level fifos
+    SIGNAL s_edge_fall_times     : t_triggerTimeArray(g_NUM_EDGE_INPUTS-1 DOWNTO 0);      -- Array of edge times ( w.r.t. logic_strobe)
+    SIGNAL s_edge_falling        : std_logic_vector(g_NUM_EDGE_INPUTS-1 DOWNTO 0);        -- ! High when falling edge
+    SIGNAL s_edge_rise_times     : t_triggerTimeArray(g_NUM_EDGE_INPUTS-1 DOWNTO 0);      -- Array of edge times ( w.r.t. logic_strobe)
+    SIGNAL s_edge_rising         : std_logic_vector(g_NUM_EDGE_INPUTS-1 DOWNTO 0);        -- ! High when rising edge
+    --SIGNAL s_i2c_scl_enb         : std_logic;
+    --SIGNAL s_i2c_sda_enb         : std_logic;
+    SIGNAL s_shutter             : std_logic;                                             --! shutter signal from TimePix, retimed onto local clock
+    SIGNAL s_triggerLogic_reset  : std_logic;
+    SIGNAL shutter_cnt_i         : std_logic_vector(g_SPILL_COUNTER_WIDTH-1 DOWNTO 0);
+    SIGNAL shutter_i             : std_logic;
+    SIGNAL spill_cnt_i           : std_logic_vector(g_SPILL_COUNTER_WIDTH-1 DOWNTO 0);
+    SIGNAL spill_i               : std_logic;
+    SIGNAL strobe_8x_logic      : std_logic;                                             --! Pulses one cycle every 4 of 16x clock.
+    SIGNAL strobe_4x_logic       : std_logic;                                             -- one pulse every 4 cycles of clk_4x
+    SIGNAL trigger_count         : std_logic_vector(g_IPBUS_WIDTH-1 DOWNTO 0);
+    SIGNAL trigger_times         : t_triggerTimeArray(g_NUM_TRIG_INPUTS-1 DOWNTO 0);      -- ! trigger arrival time ( w.r.t. logic_strobe)
+    SIGNAL triggers              : std_logic_vector(g_NUM_TRIG_INPUTS-1 DOWNTO 0);
+    SIGNAL veto_o                : std_logic;                                             --! goes high when one or more DUT are busy
+	signal ctrl, stat: ipb_reg_v(0 downto 0);
+	--My signals
+	--SIGNAL busy_toggle_o         : std_logic_vector(g_NUM_DUTS-1 downto 0);
+	
+----------------------------------------------
+----------------------------------------------
+    component DUTInterfaces
+    generic(
+	   g_NUM_DUTS : positive := 4;-- <- was 3
+	   g_IPBUS_WIDTH : positive := 32
+	   );
+    port (
+        clk_4x_logic_i          : IN     std_logic ;
+        strobe_4x_logic_i       : IN     std_logic ;                                  --! goes high every 4th clock cycle
+        trigger_counter_i       : IN     std_logic_vector (g_IPBUS_WIDTH-1 DOWNTO 0); --! Number of trigger events since last reset
+        trigger_i               : IN     std_logic ;                                  --! goes high when trigger logic issues a trigger
+        reset_or_clk_to_dut_i   : IN     std_logic ;                                  --! Synchronization signal. Passed TO DUT pins
+        shutter_to_dut_i        : IN     std_logic ;                                  --! Goes high TO indicate data-taking active. DUTs report busy unless ignoreShutterVeto IPBus flag is set high
+        -- IPBus signals.
+        ipbus_clk_i             : IN     std_logic ;
+        ipbus_i                 : IN     ipb_wbus ;                                   --! Signals from IPBus core TO slave
+        ipbus_reset_i           : IN     std_logic ;
+        ipbus_o                 : OUT    ipb_rbus ;                                   --! signals from slave TO IPBus core
+        -- Signals to/from DUT
+        busy_from_dut       : IN     std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);    --! BUSY input from DUTs
+        clk_from_dut  : IN std_logic_vector(g_NUM_DUTS-1 DOWNTO 0); --new signal for TLU, replace differential I/O
+        clk_to_dut : OUT std_logic_vector(g_NUM_DUTS-1 DOWNTO 0); --new signal for TLU, replace differential I/O
+        reset_to_dut: OUT    std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);     --! Replaces reset_or_clk_to_dut
+        trigger_to_dut : OUT    std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);     --! Trigger output
+        shutter_to_dut      : OUT    std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);     --! Shutter output
+        veto_o                  : OUT    std_logic   
+    );
+    end component DUTInterfaces;
+----------------------------------------------
+----------------------------------------------
+    COMPONENT T0_Shutter_Iface
+    PORT (
+        clk_4x_i      : IN     std_logic;
+        clk_4x_strobe : IN     std_logic;
+        ipbus_clk_i   : IN     std_logic;
+        ipbus_i       : IN     ipb_wbus;
+        T0_o          : OUT    std_logic;
+        ipbus_o       : OUT    ipb_rbus;
+        shutter_o     : OUT    std_logic
+    );
+    END COMPONENT T0_Shutter_Iface;
+----------------------------------------------
+----------------------------------------------
+
+   COMPONENT eventBuffer
+   GENERIC (
+        g_EVENT_DATA_WIDTH   : positive := 64;
+        g_IPBUS_WIDTH        : positive := 32;
+        g_READ_COUNTER_WIDTH : positive := 16
+   );
+   PORT (
+        clk_4x_logic_i    : IN     std_logic ;
+        data_strobe_i     : IN     std_logic ;                                     -- Indicates data TO transfer
+        event_data_i      : IN     std_logic_vector (g_EVENT_DATA_WIDTH-1 DOWNTO 0);
+        ipbus_clk_i       : IN     std_logic ;
+        ipbus_i           : IN     ipb_wbus ;
+        ipbus_reset_i     : IN     std_logic ;
+        strobe_4x_logic_i : IN     std_logic ;
+        --trigger_count_i   : IN     std_logic_vector (g_IPBUS_WIDTH-1 DOWNTO 0); --! Not used yet.
+        rst_fifo_o        : OUT    std_logic ;                                     --! rst signal TO first level fifos
+        buffer_full_o     : OUT    std_logic ;                                     --! Goes high when event buffer almost full
+        ipbus_o           : OUT    ipb_rbus ;
+        logic_reset_i     : IN     std_logic                                       -- reset buffers when high. Synch withclk_4x_logic
+   );
+   END COMPONENT eventBuffer;
+----------------------------------------------
+----------------------------------------------
+    COMPONENT eventFormatter
+    GENERIC (
+        g_EVENT_DATA_WIDTH   : positive := 64;
+        g_IPBUS_WIDTH        : positive := 32;
+        g_COUNTER_TRIG_WIDTH : positive := 32;
+        g_COUNTER_WIDTH      : positive := 12;
+        g_EVTTYPE_WIDTH      : positive := 4;      --! Width of the event type word
+        --g_NUM_INPUT_TYPES     : positive := 4;               -- Number of different input types (trigger, shutter, edge...)
+        g_NUM_EDGE_INPUTS    : positive := 4;      --! Number of edge inputs
+        g_NUM_TRIG_INPUTS    : positive := 6       --! Number of trigger inputs (POSSIBLY WRONG!)
+    );
+    PORT (
+        clk_4x_logic_i         : IN     std_logic ;                                         --! Rising edge active
+        ipbus_clk_i            : IN     std_logic ;
+        logic_strobe_i         : IN     std_logic ;                                         --! Pulses high once every 4 cycles of clk_4x_logic
+        logic_reset_i          : IN     std_logic ;                                         --! goes high TO reset counters. Synchronous with clk_4x_logic
+        rst_fifo_i             : IN     std_logic ;                                         --! Goes high TO reset FIFOs
+        buffer_full_i          : IN     std_logic ;                                         --! Goes high when output fifo full
+        trigger_i              : IN     std_logic ;                                         --! goes high TO load trigger data. One cycle of clk_4x_logic
+        trigger_times_i        : IN     t_triggerTimeArray (g_NUM_TRIG_INPUTS-1 DOWNTO 0);  --! Array of trigger times ( w.r.t. logic_strobe)
+        trigger_inputs_fired_i : IN     std_logic_vector (g_NUM_TRIG_INPUTS-1 DOWNTO 0);    --! high for each input that "fired"
+        trigger_cnt_i          : IN     std_logic_vector (g_COUNTER_TRIG_WIDTH-1 DOWNTO 0); --! Trigger count
+        shutter_i              : IN     std_logic ;
+        shutter_cnt_i          : IN     std_logic_vector (g_COUNTER_WIDTH-1 DOWNTO 0);
+        spill_i                : IN     std_logic ;
+        spill_cnt_i            : IN     std_logic_vector (g_COUNTER_WIDTH-1 DOWNTO 0);
+        edge_rise_i            : IN     std_logic_vector (g_NUM_EDGE_INPUTS-1 DOWNTO 0);    --! High when rising edge
+        edge_fall_i            : IN     std_logic_vector (g_NUM_EDGE_INPUTS-1 DOWNTO 0);    --! High when falling edge
+        edge_rise_time_i       : IN     t_triggerTimeArray (g_NUM_EDGE_INPUTS-1 DOWNTO 0);  --! Array of edge times ( w.r.t. logic_strobe)
+        edge_fall_time_i       : IN     t_triggerTimeArray (g_NUM_EDGE_INPUTS-1 DOWNTO 0);  --! Array of edge times ( w.r.t. logic_strobe)
+        ipbus_i                : IN     ipb_wbus ;
+        ipbus_o                : OUT    ipb_rbus ;
+        data_strobe_o          : OUT    std_logic ;                                         --! goes high when data ready TO load into event buffer
+        event_data_o           : OUT    std_logic_vector (g_EVENT_DATA_WIDTH-1 DOWNTO 0);
+        reset_timestamp_i      : IN     std_logic ;                                         --! Taking high causes timestamp TO be reset. Combined with internal timestmap reset and written to reset_timestamp_o
+        reset_timestamp_o      : OUT    std_logic                                           --! Goes high for one clock cycle of clk_4x_logic when timestamp reset
+    );
+    END COMPONENT eventFormatter;   
+----------------------------------------------
+----------------------------------------------
+    COMPONENT logic_clocks
+    GENERIC (
+        g_USE_EXTERNAL_CLK : integer := 1
+    );
+    PORT (
+        ipbus_clk_i           : IN     std_logic ;
+        ipbus_i               : IN     ipb_wbus ;
+        ipbus_reset_i         : IN     std_logic ;
+        Reset_i               : IN     std_logic ;
+        clk_logic_xtal_i      : IN     std_logic ; -- ! 40MHz clock from onboard xtal
+        clk_8x_logic_o       : OUT    std_logic ; -- 640MHz clock
+        clk_4x_logic_o        : OUT    std_logic ; -- 160MHz clock
+        ipbus_o               : OUT    ipb_rbus ;
+        strobe_8x_logic_o    : OUT    std_logic ; -- strobes once every 4 cycles of clk_16x
+        strobe_4x_logic_o     : OUT    std_logic ; -- one pulse every 4 cycles of clk_4x
+        --extclk_p_b            : INOUT  std_logic ; -- either external clock in, or a clock being driven out
+        --extclk_n_b            : INOUT  std_logic ;
+        DUT_clk_o             : OUT    std_logic ;
+        logic_clocks_locked_o : OUT    std_logic ;
+        logic_reset_o         : OUT    std_logic   -- Goes high TO reset counters etc. Sync with clk_4x_logic
+    );
+    END COMPONENT logic_clocks;
+----------------------------------------------
+----------------------------------------------
+    COMPONENT triggerInputs_newTLU
+    GENERIC (
+        g_NUM_INPUTS  : natural  := 1;
+        g_IPBUS_WIDTH : positive := 32
+    );
+    PORT (
+        --cfd_discr_p_i        : IN     std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);        --! Inputs from constant-fraction discriminators
+        --cfd_discr_n_i        : IN     std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);        --! Input from CFD
+        clk_4x_logic         : IN     std_logic ;                                        --! Rising edge active. By default = 4*40MHz = 160MHz
+        clk_200_i : IN     std_logic ;
+        strobe_4x_logic_i    : IN     std_logic ;                                        --! Pulses high once every 4 cycles of clk_4x_logic
+        threshold_discr_p_i  : IN     std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);        --! inputs from threshold comparators
+        threshold_discr_n_i  : IN     std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);        --! inputs from threshold comparators
+        reset_i              : IN     std_logic ;
+        trigger_times_o      : OUT    t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);      --! trigger arrival time ( w.r.t. logic_strobe)
+        trigger_o            : OUT    std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);        --!  Goes high on leading edge of trigger, in sync with clk_4x_logic_i
+        --trigger_debug_o      : OUT    std_logic_vector ( ((2*g_NUM_INPUTS)-1) DOWNTO 0); --! Copy of input trigger level. High bits CFD, Low threshold
+        edge_rising_times_o  : OUT    t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);      --! edge arrival time ( w.r.t. logic_strobe)
+        edge_falling_times_o : OUT    t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);      --! edge arrival time ( w.r.t. logic_strobe)
+        edge_rising_o        : OUT    std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);        --! High when rising edge. Syncronous with clk_4x_logic_i
+        edge_falling_o       : OUT    std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);        --! High when falling edge
+        ipbus_clk_i          : IN     std_logic ;
+        ipbus_reset_i        : IN     std_logic ;
+        ipbus_i              : IN     ipb_wbus ;                                         --! Signals from IPBus core TO slave
+        ipbus_o              : OUT    ipb_rbus ;                                         --! signals from slave TO IPBus core
+        clk_8x_logic_i      : IN     std_logic ;                                        --! 640MHz clock ( 16x 40MHz )
+        strobe_8x_logic_i   : IN     std_logic                                          --! Pulses one cycle every 4 of 8x clock.
+    );
+    END COMPONENT triggerInputs_newTLU;
+----------------------------------------------
+----------------------------------------------
+    COMPONENT triggerLogic
+    GENERIC (
+        g_NUM_INPUTS  : positive := 4;
+        g_IPBUS_WIDTH : positive := 32
+    );
+    PORT (
+        clk_4x_logic_i      : IN     std_logic ;                                   -- ! Rising edge active
+        ipbus_clk_i         : IN     std_logic ;
+        ipbus_i             : IN     ipb_wbus ;                                    -- Signals from IPBus core TO slave
+        ipbus_reset_i       : IN     std_logic ;
+        logic_reset_i       : IN     std_logic ;                                   -- active high. Synchronous with clk_4x_logic
+        logic_strobe_i      : IN     std_logic ;                                   -- ! Pulses high once every 4 cycles of clk_4x_logic
+        trigger_i           : IN     std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);   -- ! High when trigger from input connector active
+        trigger_times_i     : IN     t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0); --! trigger arrival time
+        veto_i              : IN     std_logic ;                                   -- ! Halts triggers when high
+        trigger_o           : OUT    std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);   -- ! High when trigger from input connector active and enabled
+        trigger_times_o     : OUT    t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0); --! trigger arrival time
+        event_number_o      : OUT    std_logic_vector (g_IPBUS_WIDTH-1 DOWNTO 0);  -- starts at one. Increments for each post_veto_trigger
+        ipbus_o             : OUT    ipb_rbus ;                                    -- signals from slave TO IPBus core
+        post_veto_trigger_o : OUT    std_logic ;                                   -- ! goes high when trigger passes
+        pre_veto_trigger_o  : OUT    std_logic ;
+        trigger_active_o    : OUT    std_logic                                     --! Goes high when triggers are active ( ie. not veoted)
+    );
+    END COMPONENT triggerLogic;
+    
+    COMPONENT i2c_master
+        PORT (
+           i2c_scl_i     : IN     std_logic;
+           i2c_sda_i     : IN     std_logic;
+           ipbus_clk_i   : IN     std_logic;
+           ipbus_i       : IN     ipb_wbus;
+           ipbus_reset_i : IN     std_logic;
+           i2c_scl_enb_o : OUT    std_logic;
+           i2c_sda_enb_o : OUT    std_logic;
+           ipbus_o       : OUT    ipb_rbus
+    );
+    END COMPONENT i2c_master;
+    
+    component clk_wiz_0
+    port
+     (-- Clock in ports
+      clk_in1           : in     std_logic;
+      -- Clock out ports
+      clk_out1          : out    std_logic;
+      -- Status and control signals
+      reset             : in     std_logic;
+      locked            : out    std_logic
+     );
+    end component;
+    
+
+    -- Optional embedded configurations
+    -- pragma synthesis_off
+    FOR ALL : DUTInterfaces USE ENTITY work.DUTInterfaces;
+    --FOR ALL : IPBusInterface USE ENTITY work.IPBusInterface;
+    FOR ALL : T0_Shutter_Iface USE ENTITY work.T0_Shutter_Iface;
+    FOR ALL : eventBuffer USE ENTITY work.eventBuffer;
+    FOR ALL : eventFormatter USE ENTITY work.eventFormatter;
+    FOR ALL : i2c_master USE ENTITY work.i2c_master;--<P
+    FOR ALL : logic_clocks USE ENTITY work.logic_clocks;
+    FOR ALL : triggerInputs_newTLU USE ENTITY work.triggerInputs_newTLU;
+    FOR ALL : triggerLogic USE ENTITY work.triggerLogic;
+    -- pragma synthesis_on 
+      	
+begin
+    
+--led_iic_test <= iic_test;
+
+--Implicit instantiation of output tristate buffers.
+    i2c_scl_b <= '0' when (s_i2c_scl_enb = '0') else 'Z';
+    i2c_sda_b <= '0' when (s_i2c_sda_enb = '0') else 'Z';
+
+    
+    
+    -- Infrastructure
+    -- ModuleWare code(v1.12) for instance 'I9' of 'gnd'
+    logic_clocks_reset <= '0';
+    -- ModuleWare code(v1.12) for instance 'I11' of 'gnd'
+    spill_i <= '0';
+    -- ModuleWare code(v1.12) for instance 'I12' of 'gnd'
+    spill_cnt_i <= (OTHERS => '0');
+    -- ModuleWare code(v1.12) for instance 'I13' of 'gnd'
+    shutter_i <= '0';
+    -- ModuleWare code(v1.12) for instance 'I14' of 'gnd'
+    shutter_cnt_i <= (OTHERS => '0');
+    -- ModuleWare code(v1.12) for instance 'I17' of 'gnd'
+    dout1 <= '0';
+    -- ModuleWare code(v1.12) for instance 'I18' of 'gnd'
+    dout <= '0';
+    -- ModuleWare code(v1.12) for instance 'I19' of 'merge'
+    --gpio_hdr <= dout1 & dout & s_shutter & T0_o;
+    -- ModuleWare code(v1.12) for instance 'I8' of 'sor'
+    overall_veto <= buffer_full_o OR veto_o;
+    -- ModuleWare code(v1.12) for instance 'I16' of 'sor'
+    s_triggerLogic_reset <= logic_reset OR T0_o;
+
+    i2c_reset <= '1';
+    clk_gen_rst <= '1';
+    gpio <= strobe_8x_logic;
+    sysclk_50_o_p <= '0';
+    sysclk_50_o_n <= '0';
+    busy_o <= std_logic_vector(to_unsigned(0,    busy_o'length));
+    --busy_o <= '000000';
+    --sysclk_40_o_p <= sysclk;
+
+------------------------------------------
+	infra: entity work.enclustra_ax3_pm3_infra
+		port map(
+			sysclk => clk_encl_buf,
+			clk_ipb_o => clk_ipb,
+			rst_ipb_o => rst_ipb,
+			rst_125_o => phy_rst_e,
+			clk_200_o => clk_200,
+			nuke => nuke,
+			soft_rst => soft_rst,
+			leds => inf_leds,
+			rgmii_txd => rgmii_txd,
+			rgmii_tx_ctl => rgmii_tx_ctl,
+			rgmii_txc => rgmii_txc,
+			rgmii_rxd => rgmii_rxd,
+			rgmii_rx_ctl => rgmii_rx_ctl,
+			rgmii_rxc => rgmii_rxc,
+			mac_addr => mac_addr,
+			ip_addr => ip_addr,
+			ipb_in => ipb_in,
+			ipb_out => ipb_out
+		);
+		
+	--leds <= not ('0' & userled & inf_leds); -- Check this.
+	phy_rstn <= not phy_rst_e;
+		
+--	mac_addr <= X"020ddba1151" & dip_sw; -- Careful here, arbitrary addresses do not always work
+--	ip_addr <= X"c0a8c81" & dip_sw; -- 192.168.200.16+n
+	mac_addr <= X"020ddba1151f"; -- Careful here, arbitrary addresses do not always work
+	ip_addr <= X"c0a8c81f"; -- 192.168.200.16+n
+
+------------------------------------------
+    I1 : entity work.ipbus_ctrlreg_v
+    port map(
+        clk => clk_ipb,
+        reset => rst_ipb,
+        ipbus_in => ipbww(N_SLV_CTRL_REG),
+        ipbus_out => ipbrr(N_SLV_CTRL_REG),
+        d => stat,
+        q => ctrl
+    );
+    stat(0) <= std_logic_vector(FW_VERSION);-- <-Let's use this as firmware revision number
+    soft_rst <= ctrl(0)(0);
+    nuke <= ctrl(0)(1);
+    
+------------------------------------------
+	I2 : entity work.ipbus_fabric_sel
+    generic map(
+    	NSLV => N_SLAVES,
+    	SEL_WIDTH => IPBUS_SEL_WIDTH)
+    port map(
+      ipb_in => ipb_out,
+      ipb_out => ipb_in,
+      sel => ipbus_sel_ipbus_example(ipb_out.ipb_addr),
+      ipb_to_slaves => ipbww,
+      ipb_from_slaves => ipbrr
+    );
+
+------------------------------------------
+    I3 : i2c_master
+    PORT MAP (
+        i2c_scl_i     => i2c_scl_b,
+        i2c_sda_i     => i2c_sda_b,
+        ipbus_clk_i   => clk_ipb,
+        ipbus_i       => ipbww(N_SLV_I2C_0),
+        ipbus_reset_i => rst_ipb,
+        i2c_scl_enb_o => s_i2c_scl_enb,
+        i2c_sda_enb_o => s_i2c_sda_enb,
+        ipbus_o       => ipbrr(N_SLV_I2C_0)
+    );
+    
+----------------------------------------------
+    I4 : logic_clocks
+    GENERIC MAP (
+        g_USE_EXTERNAL_CLK => 0
+    )
+    PORT MAP (
+        ipbus_clk_i           => clk_ipb,
+        ipbus_i               => ipbww(N_SLV_LGCCLK),
+        ipbus_reset_i         => rst_ipb,
+        Reset_i               => logic_clocks_reset,
+        clk_logic_xtal_i      => sysclk_40, -- Not sure this is correct
+        clk_8x_logic_o       => clk_8x_logic,
+        clk_4x_logic_o        => clk_4x_logic,
+        ipbus_o               => ipbrr(N_SLV_LGCCLK),
+        strobe_8x_logic_o    => strobe_8x_logic,
+        strobe_4x_logic_o     => strobe_4x_logic,
+        DUT_clk_o             => open,
+        logic_clocks_locked_o => leds(3),
+        logic_reset_o         => logic_reset
+    );    
+
+----------------------------------------------
+    I5 : triggerInputs_newTLU 
+    GENERIC MAP (
+        g_NUM_INPUTS  => g_NUM_TRIG_INPUTS,
+        g_IPBUS_WIDTH => 32
+    )
+    PORT MAP (
+        clk_4x_logic         => clk_4x_logic,
+        clk_200_i => clk_200,
+        strobe_4x_logic_i    => strobe_4x_logic,
+        threshold_discr_p_i  => threshold_discr_p_i,
+        threshold_discr_n_i  => threshold_discr_n_i,
+        reset_i              => logic_reset,
+        trigger_times_o      => trigger_times,
+        trigger_o            => triggers,
+        --trigger_debug_o      => OPEN,
+        edge_rising_times_o  => s_edge_rise_times,
+        edge_falling_times_o => s_edge_fall_times,
+        edge_rising_o        => s_edge_rising,
+        edge_falling_o       => s_edge_falling,
+        ipbus_clk_i          => clk_ipb,
+        ipbus_reset_i        => rst_ipb,
+        ipbus_i              => ipbww(N_SLV_TRGIN),
+        ipbus_o              => ipbrr(N_SLV_TRGIN),
+        clk_8x_logic_i      => clk_8x_logic,
+        strobe_8x_logic_i   => strobe_8x_logic
+    );
+
+------------------------------------------      
+    I6 : eventFormatter
+    GENERIC MAP (
+        g_EVENT_DATA_WIDTH   => g_EVENT_DATA_WIDTH,
+        g_IPBUS_WIDTH        => g_IPBUS_WIDTH,
+        g_COUNTER_TRIG_WIDTH => g_IPBUS_WIDTH,
+        g_COUNTER_WIDTH      => 12,
+        g_EVTTYPE_WIDTH      => 4,                         --! Width of the event type word
+        --g_NUM_INPUT_TYPES     : positive := 4;               -- Number of different input types (trigger, shutter, edge...)
+        g_NUM_EDGE_INPUTS    => g_NUM_EDGE_INPUTS,         --! Number of edge inputs
+        g_NUM_TRIG_INPUTS    => g_NUM_TRIG_INPUTS          --! Number of trigger inputs
+    )
+    PORT MAP (
+        clk_4x_logic_i         => clk_4x_logic,
+        ipbus_clk_i            => clk_ipb,
+        logic_strobe_i         => strobe_4x_logic,
+        logic_reset_i          => logic_reset,
+        rst_fifo_i             => rst_fifo_o,
+        buffer_full_i          => buffer_full_o,
+        trigger_i              => overall_trigger,
+        trigger_times_i        => postVetoTrigger_times,
+        trigger_inputs_fired_i => postVetotrigger,
+        trigger_cnt_i          => trigger_count,
+        shutter_i              => shutter_i,
+        shutter_cnt_i          => shutter_cnt_i,
+        spill_i                => spill_i,
+        spill_cnt_i            => spill_cnt_i,
+        edge_rise_i            => s_edge_rising,
+        edge_fall_i            => s_edge_falling,
+        edge_rise_time_i       => s_edge_rise_times,
+        edge_fall_time_i       => s_edge_fall_times,
+        ipbus_i                => ipbww(N_SLV_EVFMT),
+        ipbus_o                => ipbrr(N_SLV_EVFMT),
+        data_strobe_o          => data_strobe,
+        event_data_o           => event_data,
+        reset_timestamp_i      => T0_o,
+        reset_timestamp_o      => OPEN
+    );
+
+------------------------------------------
+    I7 : eventBuffer
+    GENERIC MAP (
+        g_EVENT_DATA_WIDTH   => g_EVENT_DATA_WIDTH,
+        g_IPBUS_WIDTH        => g_IPBUS_WIDTH,
+        g_READ_COUNTER_WIDTH => 14
+        
+    )
+    PORT MAP (
+        clk_4x_logic_i    => clk_4x_logic,
+        data_strobe_i     => data_strobe,
+        event_data_i      => event_data,
+        ipbus_clk_i       => clk_ipb,
+        ipbus_i           => ipbww(N_SLV_EVBUF),
+        ipbus_reset_i     => rst_ipb,
+        strobe_4x_logic_i => strobe_4x_logic,
+        rst_fifo_o        => rst_fifo_o,
+        buffer_full_o     => buffer_full_o,
+        ipbus_o           => ipbrr(N_SLV_EVBUF),
+        logic_reset_i     => logic_reset
+    );
+    
+------------------------------------------
+    I8 : T0_Shutter_Iface
+    PORT MAP (
+        clk_4x_i      => clk_4x_logic,
+        clk_4x_strobe => strobe_4x_logic,
+        T0_o          => T0_o,
+        shutter_o     => s_shutter,
+        ipbus_clk_i   => clk_ipb,
+        ipbus_i       => ipbww(N_SLV_SHUT),
+        ipbus_o       => ipbrr(N_SLV_SHUT)
+    );
+
+------------------------------------------
+    I9 : DUTInterfaces
+    GENERIC MAP (
+        g_NUM_DUTS    => g_NUM_DUTS,
+        g_IPBUS_WIDTH => g_IPBUS_WIDTH
+    )
+    PORT MAP (
+         clk_4x_logic_i          => clk_4x_logic,
+         strobe_4x_logic_i       => strobe_4x_logic,
+         trigger_counter_i       => trigger_count,
+         trigger_i               => overall_trigger,
+         reset_or_clk_to_dut_i   => T0_o,
+         shutter_to_dut_i        => s_shutter,
+         ipbus_clk_i             => clk_ipb,
+         ipbus_i                 => ipbww(N_SLV_DUT),
+         ipbus_reset_i           => rst_ipb,
+         ipbus_o                 => ipbrr(N_SLV_DUT),
+         busy_from_dut       => busy_i, 
+         clk_from_dut => dut_clk_i,
+         clk_to_dut => dut_clk_o,
+         --reset_or_clk_to_dut_n_o => reset_or_clk_n_o,
+         --reset_or_clk_to_dut_p_o => reset_or_clk_p_o,
+         reset_to_dut => spare_o,
+         trigger_to_dut => triggers_o,
+         --shutter_to_dut_n_o      => shutter_to_dut_n_o,
+         --shutter_to_dut_p_o      => shutter_to_dut_p_o,
+         shutter_to_dut  => cont_o,
+         veto_o                  => veto_o
+    );
+    
+------------------------------------------ 
+        I10 : triggerLogic
+        GENERIC MAP (
+            g_NUM_INPUTS  => g_NUM_TRIG_INPUTS,
+            g_IPBUS_WIDTH => g_IPBUS_WIDTH
+        )
+        PORT MAP (
+            clk_4x_logic_i      => clk_4x_logic,
+            ipbus_clk_i         => clk_ipb,
+            ipbus_i             => ipbww(N_SLV_TRGLGC),
+            ipbus_reset_i       => rst_ipb,
+            logic_reset_i       => s_triggerLogic_reset,
+            logic_strobe_i      => strobe_4x_logic,
+            trigger_i           => triggers,
+            trigger_times_i     => trigger_times,
+            veto_i              => overall_veto,
+            trigger_o           => postVetotrigger,
+            trigger_times_o     => postVetoTrigger_times,
+            event_number_o      => trigger_count,
+            ipbus_o             => ipbrr(N_SLV_TRGLGC),
+            post_veto_trigger_o => overall_trigger,
+            pre_veto_trigger_o  => OPEN,
+            trigger_active_o    => leds(2)
+        );     
+         
+-------------TEST AREA------------    
+--    test0: entity work.test_inToOut
+--    port map(
+--        clk_in => clk_200,
+--        busy_in=> busy_i,
+--        control_in=> cont_i,
+--        trig_in=> triggers_i,
+--        clkDut_in=> dut_clk_i,
+--        spare_in=> spare_i,
+--        busy_out=> busy_o,
+--        control_out=> cont_o,
+--        trig_out=> triggers_o,
+--        clkDut_out=> dut_clk_o,
+--        spare_out=> spare_o
+--    );
+
+--    dutout0: entity work.DUTs_outputs
+--    port map(
+--        clk_in => encl_clock50, 
+--        d_clk_o => dut_clk_o,
+--        d_trg_o => triggers_o,
+--        d_busy_o => busy_o,
+--        d_cont_o => cont_o,
+--        d_spare_o => spare_o
+--    );
+   
+--    clk50_o_fromEnclustra : clk_wiz_0
+--       port map ( 
+--       -- Clock in ports
+--       clk_in1 => clk_encl_buf, --sysclk_40,
+--      -- Clock out ports  
+--       clk_out1 => encl_clock50,
+--      -- Status and control signals                
+--       reset => '0',
+--       locked =>  open          
+--     );
+
+    
+----------------------------------------------
+
+
+
+
+
+
+
+
+
+
+    
+
+------------------------------------------      
+
+
+------------------------------------------
+    IBUFGDS_inst: IBUFGDS
+    generic map (
+        IBUF_LOW_PWR=> false
+    )
+    port map (
+        O => sysclk_40,
+        I => sysclk_40_i_p,
+        IB => sysclk_40_i_n
+    );
+    
+------------------------------------------
+    IBUFG_inst: IBUFG
+    port map (
+        O => clk_encl_buf,
+        I => clk_enclustra--sysclk
+    );    
+
+------------------------------------------
+-- Do not use this: we need differential 3.3 V, not available.
+--    OBUFDS_inst : OBUFDS
+--    generic map (
+--        SLEW => "FAST") -- Specify the output slew rate
+--    port map (
+--        O => sysclk_50_o_p, -- Diff_p output (connect directly to top-level port)
+--        OB => sysclk_50_o_n, -- Diff_n output (connect directly to top-level port)
+--        I => encl_clock50 -- Buffer input
+--    );
+    -- This might not work: these are just two single ended. If we remove R coupling maybe?
+    --sysclk_50_o_p <= encl_clock50;
+    --sysclk_50_o_n <= not encl_clock50;
+
+      
+
+
+end rtl;
diff --git a/legacy/TLU_v1c/common/triggerInputs_newTLU_rtl.vhd b/legacy/TLU_v1c/common/triggerInputs_newTLU_rtl.vhd
new file mode 100644
index 00000000..4443faf0
--- /dev/null
+++ b/legacy/TLU_v1c/common/triggerInputs_newTLU_rtl.vhd
@@ -0,0 +1,291 @@
+--=============================================================================
+--! @file triggerInputs_rtl.vhd
+--=============================================================================
+--
+-------------------------------------------------------------------------------
+-- --
+-- University of Bristol, High Energy Physics Group.
+-- --
+------------------------------------------------------------------------------- --
+-- VHDL Architecture fmc_mTLU_lib.triggerInputs.rtl
+--
+--------------------------------------------------------------------------------
+-- 
+-- Created using using Mentor Graphics HDL Designer(TM) 2010.3 (Build 21)
+--
+LIBRARY ieee;
+USE ieee.std_logic_1164.all;
+USE ieee.numeric_std.all;
+USE work.ipbus.all;
+USE work.ipbus_reg_types.all;
+USE work.fmcTLU.all;
+
+
+library unisim ;
+use unisim.vcomponents.all;
+
+--! @brief Measures arrival time of trigger pulses using two deserializers
+--! clocked on 14x clock ( 640MHz) 
+--! Based on TDC code by Alvaro Dosil
+--!
+--! @author David Cussans , David.Cussans@bristol.ac.uk
+--!
+--!
+--! @date 15:43:57 11/08/12
+--!
+--! @version v0.1
+--!
+--! @details
+--! \li IPBus address 0 = control and status
+--!  \li bit0 = reset serdes
+--!  \li bit1 = reset counter
+--!  \li bit2 = calibrate IDELAYs
+--!  \li bit3 = not connected
+--!  \li bit4 = Thresh discr  IDelay(0) status prompt
+--!  \li bit5 = Thresh discr  IDelay(0) status delayed
+--!  \li bit6 = Thresh discr  IDelay(1) status prompt
+--!  \li bit7 = Thresh discr  IDelay(1) status delayed
+--!  \li bit8 = Thresh discr  IDelay(2) status prompt
+--!  \li bit9 = Thresh discr  IDelay(2) status delayed
+--!  \li bit10= Thresh discr  IDelay(3) status prompt
+--!  \li bit11= Thresh discr  IDelay(3) status delayed
+--!  \li bit12= CFD discr  IDelay(0) status prompt
+--!  \li bit13= CFD discr  IDelay(0) status delayed
+--!  \li bit14= CFD discr  IDelay(1) status prompt
+--!  \li bit15= CFD discr  IDelay(1) status delayed
+--!  \li bit16= CFD discr  IDelay(2) status prompt
+--!  \li bit17= CFD discr  IDelay(2) status delayed
+--!  \li bit18= CFD discr  IDelay(3) status prompt
+--!  \li bit19= CFD discr  IDelay(3) status delayed
+--!  \li bit20= Thresh deserialized data monitor(0)
+--!  \li bit21= Thresh deserialized data monitor(1)
+--!  \li bit22= Thresh deserialized data monitor(2)
+--!  \li bit23= Thresh deserialized data monitor(3)
+--!  \li bit24= CFD deserialized data monitor(0)
+--!  \li bit25= CFD deserialized data monitor(1)
+--!  \li bit26= CFD deserialized data monitor(2)
+--!  \li bit27= CFD deserialized data monitor(3)
+--!
+--! \li IPBus address 1 = edge rising(0) counter
+--! \li IPBus address 2 = edge rising(1) counter
+--! \li IPBus address 3 = edge rising(2) counter
+--! \li IPBus address 4 = edge rising(3) counter
+--!
+--!
+--! <b>Modified by: Alvaro Dosil , alvaro.dosil@usc.es </b>\n
+--! Author: 
+-------------------------------------------------------------------------------
+--! \n\n<b>Last changes:</b>\n
+-------------------------------------------------------------------------------
+--! @todo Implement a periodic calibration sequence 
+--
+
+ENTITY triggerInputs_newTLU IS
+   GENERIC( 
+      g_NUM_INPUTS  : natural  := 1;--1
+      g_IPBUS_WIDTH : positive := 32
+   );
+   PORT( 
+      --cfd_discr_p_i        : IN     std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);         --! Inputs from constant-fraction discriminators
+      --cfd_discr_n_i        : IN     std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);         --! Input from CFD
+      clk_4x_logic         : IN     std_logic;                                          --! Rising edge active. By default = 4*40MHz = 160MHz
+      clk_200_i : IN     std_logic;
+      strobe_4x_logic_i    : IN     std_logic;                                          --! Pulses high once every 4 cycles of clk_4x_logic
+      threshold_discr_p_i  : IN     std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);         --! inputs from threshold comparators
+      threshold_discr_n_i  : IN     std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);         --! inputs from threshold comparators
+      reset_i              : IN     std_logic;
+      trigger_times_o      : OUT    t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);       --! trigger arrival time ( w.r.t. logic_strobe)
+      trigger_o            : OUT    std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);         --!  Goes high on leading edge of trigger, in sync with clk_4x_logic_i
+      --trigger_debug_o      : OUT    std_logic_vector ( ((2*g_NUM_INPUTS)-1) DOWNTO 0);  --! Copy of input trigger level. High bits CFD, Low threshold
+      edge_rising_times_o  : OUT    t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);       --! edge arrival time ( w.r.t. logic_strobe)
+      edge_falling_times_o : OUT    t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);       --! edge arrival time ( w.r.t. logic_strobe)
+      edge_rising_o        : OUT    std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);         --! High when rising edge. Syncronous with clk_4x_logic_i
+      edge_falling_o       : OUT    std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);         --! High when falling edge
+      ipbus_clk_i          : IN     std_logic;
+      ipbus_reset_i        : IN     std_logic;
+      ipbus_i              : IN     ipb_wbus;                                           --! Signals from IPBus core to slave
+      ipbus_o              : OUT    ipb_rbus;                                           --! signals from slave to IPBus core
+      clk_8x_logic_i      : IN     std_logic;                                          --! 320MHz clock ( 8x 40MHz )
+      strobe_8x_logic_i   : IN     std_logic                                           --! Pulses one cycle every 4 of 8x clock.
+   );
+
+-- Declarations
+END triggerInputs_newTLU ;
+
+--
+ARCHITECTURE rtl OF triggerInputs_newTLU IS
+  
+    signal s_rst_iserdes : std_logic := '0'; --! Reset ISERDES and IDELAY
+    signal s_threshold_discr_input , s_thr_in_p, s_thr_in_n : std_logic_vector(g_NUM_INPUTS-1 downto 0);  --! inputs from comparator
+    type t_deserialized_trigger_data_array is array ( natural range <> ) of std_logic_vector(7 downto 0); --
+    signal s_deserialized_threshold_data, s_deserialized_threshold_data_d , s_deserialized_cfd_data, s_deserialized_cfd_data_d : t_deserialized_trigger_data_array(g_NUM_INPUTS-1 downto 0);
+    type t_deserialized_trigger_data_array_l is array ( natural range <> ) of std_logic_vector(8 downto 0); --
+    signal s_deserialized_threshold_data_l , s_deserialized_cfd_data_l : t_deserialized_trigger_data_array_l(g_NUM_INPUTS-1 downto 0);
+    signal s_threshold_previous_late_bit    : std_logic_vector(g_NUM_INPUTS-1 downto 0) := (others => '0');  -- last bit to arrive from previous 4
+    signal s_ipbus_ack                      : std_logic := '0';  -- used to produce a delayed IPBus ack signal
+    signal s_edge_rising_times:   t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);  --! edge arrival time ( w.r.t. logic_strobe)
+    signal s_edge_falling_times:  t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);  --! edge arrival time ( w.r.t. logic_strobe)
+    signal s_edge_rising:         std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);    --! High when rising edge
+    signal s_edge_falling:        std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);    --! High when falling edge
+    constant c_N_CTRL : positive := 1;
+    constant c_N_STAT : positive := g_NUM_INPUTS+1 ;
+    signal s_status_to_ipbus , s_sync_status_to_ipbus: ipb_reg_v(c_N_STAT-1 downto 0);
+    signal s_control_from_ipbus , s_sync_control_from_ipbus: ipb_reg_v(c_N_CTRL-1 downto 0);
+    --  signal s_reset_reg , s_status_reg: std_logic_vector(g_IPBUS_WIDTH-1 downto 0) := (others => '0');
+    signal s_counter_reset, s_calibrate_idelay: std_logic := '0';
+  
+BEGIN
+    -----------------------------------------------------------------------------
+    -- IPBus interface 
+    -----------------------------------------------------------------------------
+
+    -- Can't get ipbus_syncreg_v to meet timing. So use non-syncronized followed
+    -- by synchronizer.
+    ipbus_registers: entity work.ipbus_ctrlreg_v
+    generic map (
+        N_STAT =>  c_N_STAT )
+    port map(
+        clk=> ipbus_clk_i,
+        reset => ipbus_reset_i ,
+        ipbus_in =>  ipbus_i,
+        ipbus_out => ipbus_o,
+        d=>  s_sync_status_to_ipbus,
+        q=>  s_control_from_ipbus,
+        stb => open
+        );
+
+    -- sync data from I/O logic to IPBus
+    sync_registers: entity work.synchronizeRegisters
+    generic map (
+        g_NUM_REGISTERS => c_N_STAT )
+    port map (
+        clk_input_i => clk_4x_logic,
+        data_i      => s_status_to_ipbus,
+        data_o      => s_sync_status_to_ipbus,
+        clk_output_i => ipbus_clk_i);
+
+    -- sync data from I/O logic to IPBus
+    sync_ipbus: entity work.synchronizeRegisters
+    generic map (
+        g_NUM_REGISTERS => c_N_CTRL )
+    port map (
+        clk_input_i => ipbus_clk_i,
+        data_i      => s_control_from_ipbus,
+        data_o      => s_sync_control_from_ipbus,
+        clk_output_i => clk_4x_logic);
+
+    -- Map the control registers...
+    -- Register that controls IODELAY and ISERDES reset is at address 0
+    s_rst_iserdes <= reset_i or s_sync_control_from_ipbus(0)(0);
+    s_counter_reset <= s_sync_control_from_ipbus(0)(1);
+    s_calibrate_idelay <= s_sync_control_from_ipbus(0)(2);
+  
+    s_status_to_ipbus(0)(0) <= s_rst_iserdes;
+    s_status_to_ipbus(0)(1) <= s_counter_reset;
+    s_status_to_ipbus(0)(2) <= s_calibrate_idelay;
+    -- Connect up unused lines in status regiser to 0.
+    s_status_to_ipbus(0)(3) <= '0';
+    s_status_to_ipbus(0)(g_IPBUS_WIDTH-1 downto 28) <= (others => '0');
+
+    -----------------------------------------------------------------------------
+    -- Connect up trigger inputs to deserializers and a LUT to determine
+    -- arrival time
+    -----------------------------------------------------------------------------
+    idelaytriggers0: idelayctrl port map(
+          refclk => clk_200_i,
+          rst => reset_i
+    );
+ 
+    --BEGIN FOR LOOP
+    -- Instantiate one for each trigger input of the TLU
+    trigger_input_loop: for triggerInput in 0 to (g_NUM_INPUTS-1) generate
+
+        -- Differential buffer. Receives differential trigger input and produces a buffered differential signal.
+        IBUFDS_DIFF_OUT_inst : IBUFDS_DIFF_OUT
+        generic map (
+            IBUF_LOW_PWR => false,
+            IOSTANDARD       => "LVDS_25"
+        )
+        port map (
+            O => s_thr_in_p(triggerInput),
+            OB => s_thr_in_n(triggerInput),
+            I => threshold_discr_p_i(triggerInput),
+            IB => threshold_discr_n_i(triggerInput)
+        );
+        
+        -- Deserialize the trigger input    
+        thresholdDeserializer: entity work.dualSERDES_1to4
+        port map (
+            reset_i 			=> s_rst_iserdes,
+            --calibrate_i 		=> s_calibrate_idelay,
+            --data_i         => s_threshold_discr_input(triggerInput),
+            --data_i         => '0',
+            data_i_pos     => s_thr_in_p(triggerInput),
+            data_i_neg     => s_thr_in_n(triggerInput),
+            fastClk_i      => clk_8x_logic_i,
+            fabricClk_i    => clk_4x_logic,
+            strobe_i       => strobe_8x_logic_i,
+            data_o         => s_deserialized_threshold_data(triggerInput),
+            status_o       => s_status_to_ipbus(0)(5+(2*triggerInput) downto 4+(2*triggerInput))
+        );
+        
+        -- Add last bit from previous word to the new deserialized data.        
+        s_deserialized_threshold_data_l(triggerInput) <= s_deserialized_threshold_data(triggerInput) & s_threshold_previous_late_bit(triggerInput);
+        
+        -- Use a LUT to determine the leading/trailing edges of the trigger input
+        thresholdLUT : entity work.arrivalTimeLUT
+        port map (
+            clk_4x_logic_i      => clk_4x_logic,
+            strobe_4x_logic_i   => strobe_4x_logic_i,
+            deserialized_data_i => s_deserialized_threshold_data_l(triggerInput),
+            first_rising_edge_time_o => s_edge_rising_times(triggerInput), 
+            last_falling_edge_time_o => s_edge_falling_times(triggerInput), 
+            rising_edge_o       => s_edge_rising(triggerInput), 
+            falling_edge_o      => s_edge_falling(triggerInput),
+            multiple_edges_o    => open
+        );
+        
+        -- The leading edge may be a high-->low or a low-->high transition (
+        -- depending on polarity of input signal. ). For now assume that leading
+        -- edge is low-->high and connect trigger times and trigger output accordingly.
+        -- In the future have this selectable.
+        edge_rising_times_o(triggerInput) <= s_edge_rising_times(triggerInput);
+        edge_falling_times_o(triggerInput) <= s_edge_falling_times(triggerInput);
+        edge_rising_o(triggerInput) <= s_edge_rising(triggerInput);
+        edge_falling_o(triggerInput) <= s_edge_falling(triggerInput);
+        trigger_times_o(triggerInput) <= s_edge_rising_times(triggerInput);
+        trigger_o(triggerInput) <= s_edge_rising(triggerInput);
+            
+    
+        p_register_delayed_bits : process ( clk_4x_logic ) 
+        begin 
+            if rising_edge(clk_4x_logic) then
+                s_threshold_previous_late_bit(triggerInput) <= s_deserialized_threshold_data(triggerInput)(7);
+                --s_CFD_previous_late_bit(triggerInput) <= s_deserialized_CFD_data(triggerInput)(7);
+                -- Monitor output of serdes - just look at one per serdes
+                -- Don't care about latency so put a couple of registers in to aid
+                -- timing closure.
+                s_status_to_ipbus(0)(20+triggerInput) <= s_threshold_previous_late_bit(triggerInput);
+                --s_status_to_ipbus(0)(24+triggerInput) <= s_CFD_previous_late_bit(triggerInput);
+            end if ; 
+        end process;
+        
+        --! Instantiate counter for output triggers.
+        --! Input I is connected to address I+1
+        cmp_inputTriggerCounter : entity work.counterWithReset
+        generic map (
+            g_COUNTER_WIDTH => g_IPBUS_WIDTH)
+        port map (
+            clock_i  => clk_4x_logic,
+            reset_i  => s_counter_reset,
+            enable_i => s_edge_rising(triggerInput),
+            result_o => s_status_to_ipbus(triggerInput+1)
+        );
+    end generate trigger_input_loop;
+  --END FOR LOOP
+  
+  --trigger_debug_o( (g_NUM_INPUTS-1) downto 0) <= s_threshold_discr_input;
+  --trigger_debug_o( ((2*g_NUM_INPUTS)-1) downto g_NUM_INPUTS) <=  s_edge_rising;
+  
+END ARCHITECTURE rtl;
+
diff --git a/legacy/TLU_v1c/common/triggerInputs_newTLU_rtl_BKP.vhd b/legacy/TLU_v1c/common/triggerInputs_newTLU_rtl_BKP.vhd
new file mode 100644
index 00000000..106e7703
--- /dev/null
+++ b/legacy/TLU_v1c/common/triggerInputs_newTLU_rtl_BKP.vhd
@@ -0,0 +1,335 @@
+--=============================================================================
+--! @file triggerInputs_rtl.vhd
+--=============================================================================
+--
+-------------------------------------------------------------------------------
+-- --
+-- University of Bristol, High Energy Physics Group.
+-- --
+------------------------------------------------------------------------------- --
+-- VHDL Architecture fmc_mTLU_lib.triggerInputs.rtl
+--
+--------------------------------------------------------------------------------
+-- 
+-- Created using using Mentor Graphics HDL Designer(TM) 2010.3 (Build 21)
+--
+LIBRARY ieee;
+USE ieee.std_logic_1164.all;
+USE ieee.numeric_std.all;
+
+USE work.ipbus.all;
+use work.ipbus_reg_types.all;
+
+USE work.fmcTLU.all;
+
+
+library unisim ;
+use unisim.vcomponents.all;
+
+--! @brief Measures arrival time of trigger pulses using two deserializers
+--! clocked on 14x clock ( 640MHz) 
+--! Based on TDC code by Alvaro Dosil
+--!
+--! @author David Cussans , David.Cussans@bristol.ac.uk
+--!
+--!
+--! @date 15:43:57 11/08/12
+--!
+--! @version v0.1
+--!
+--! @details
+--! \li IPBus address 0 = control and status
+--!  \li bit0 = reset serdes
+--!  \li bit1 = reset counter
+--!  \li bit2 = calibrate IDELAYs
+--!  \li bit3 = not connected
+--!  \li bit4 = Thresh discr  IDelay(0) status prompt
+--!  \li bit5 = Thresh discr  IDelay(0) status delayed
+--!  \li bit6 = Thresh discr  IDelay(1) status prompt
+--!  \li bit7 = Thresh discr  IDelay(1) status delayed
+--!  \li bit8 = Thresh discr  IDelay(2) status prompt
+--!  \li bit9 = Thresh discr  IDelay(2) status delayed
+--!  \li bit10= Thresh discr  IDelay(3) status prompt
+--!  \li bit11= Thresh discr  IDelay(3) status delayed
+--!  \li bit12= CFD discr  IDelay(0) status prompt
+--!  \li bit13= CFD discr  IDelay(0) status delayed
+--!  \li bit14= CFD discr  IDelay(1) status prompt
+--!  \li bit15= CFD discr  IDelay(1) status delayed
+--!  \li bit16= CFD discr  IDelay(2) status prompt
+--!  \li bit17= CFD discr  IDelay(2) status delayed
+--!  \li bit18= CFD discr  IDelay(3) status prompt
+--!  \li bit19= CFD discr  IDelay(3) status delayed
+--!  \li bit20= Thresh deserialized data monitor(0)
+--!  \li bit21= Thresh deserialized data monitor(1)
+--!  \li bit22= Thresh deserialized data monitor(2)
+--!  \li bit23= Thresh deserialized data monitor(3)
+--!  \li bit24= CFD deserialized data monitor(0)
+--!  \li bit25= CFD deserialized data monitor(1)
+--!  \li bit26= CFD deserialized data monitor(2)
+--!  \li bit27= CFD deserialized data monitor(3)
+--!
+--! \li IPBus address 1 = edge rising(0) counter
+--! \li IPBus address 2 = edge rising(1) counter
+--! \li IPBus address 3 = edge rising(2) counter
+--! \li IPBus address 4 = edge rising(3) counter
+--!
+--!
+--! <b>Modified by: Alvaro Dosil , alvaro.dosil@usc.es </b>\n
+--! Author: 
+-------------------------------------------------------------------------------
+--! \n\n<b>Last changes:</b>\n
+-------------------------------------------------------------------------------
+--! @todo Implement a periodic calibration sequence 
+--
+
+ENTITY triggerInputs_newTLU IS
+   GENERIC( 
+      g_NUM_INPUTS  : natural  := 1;
+      g_IPBUS_WIDTH : positive := 32
+   );
+   PORT( 
+      --cfd_discr_p_i        : IN     std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);         --! Inputs from constant-fraction discriminators
+      --cfd_discr_n_i        : IN     std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);         --! Input from CFD
+      clk_4x_logic         : IN     std_logic;                                          --! Rising edge active. By default = 4*40MHz = 160MHz
+      strobe_4x_logic_i    : IN     std_logic;                                          --! Pulses high once every 4 cycles of clk_4x_logic
+      threshold_discr_p_i  : IN     std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);         --! inputs from threshold comparators
+      threshold_discr_n_i  : IN     std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);         --! inputs from threshold comparators
+      reset_i              : IN     std_logic;
+      trigger_times_o      : OUT    t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);       --! trigger arrival time ( w.r.t. logic_strobe)
+      trigger_o            : OUT    std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);         --!  Goes high on leading edge of trigger, in sync with clk_4x_logic_i
+      --trigger_debug_o      : OUT    std_logic_vector ( ((2*g_NUM_INPUTS)-1) DOWNTO 0);  --! Copy of input trigger level. High bits CFD, Low threshold
+      edge_rising_times_o  : OUT    t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);       --! edge arrival time ( w.r.t. logic_strobe)
+      edge_falling_times_o : OUT    t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);       --! edge arrival time ( w.r.t. logic_strobe)
+      edge_rising_o        : OUT    std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);         --! High when rising edge. Syncronous with clk_4x_logic_i
+      edge_falling_o       : OUT    std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);         --! High when falling edge
+      ipbus_clk_i          : IN     std_logic;
+      ipbus_reset_i        : IN     std_logic;
+      ipbus_i              : IN     ipb_wbus;                                           --! Signals from IPBus core to slave
+      ipbus_o              : OUT    ipb_rbus;                                           --! signals from slave to IPBus core
+      clk_16x_logic_i      : IN     std_logic;                                          --! 640MHz clock ( 16x 40MHz )
+      strobe_16x_logic_i   : IN     std_logic                                           --! Pulses one cycle every 4 of 16x clock.
+   );
+
+-- Declarations
+
+END triggerInputs_newTLU ;
+
+--
+ARCHITECTURE rtl OF triggerInputs_newTLU IS
+  
+  signal s_rst_iserdes : std_logic := '0'; --! Reset ISERDES and IDELAY
+  
+  signal s_threshold_discr_input , s_cfd_discr_input : std_logic_vector(g_NUM_INPUTS-1 downto 0);  --! inputs from comparator
+
+  type t_deserialized_trigger_data_array is array ( natural range <> ) of std_logic_vector(7 downto 0); --
+  signal s_deserialized_threshold_data, s_deserialized_threshold_data_d , s_deserialized_cfd_data, s_deserialized_cfd_data_d : t_deserialized_trigger_data_array(g_NUM_INPUTS-1 downto 0);
+
+  type t_deserialized_trigger_data_array_l is array ( natural range <> ) of std_logic_vector(8 downto 0); --
+  signal s_deserialized_threshold_data_l , s_deserialized_cfd_data_l : t_deserialized_trigger_data_array_l(g_NUM_INPUTS-1 downto 0);
+
+  --signal s_cfd_trigger_times              : t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);
+  
+  --signal s_CFD_rising_edge                : std_logic_vector(g_NUM_INPUTS-1 downto 0); 
+  --signal s_CFD_falling_edge               : std_logic_vector(g_NUM_INPUTS-1 downto 0); 
+  
+  signal s_threshold_previous_late_bit    : std_logic_vector(g_NUM_INPUTS-1 downto 0) := (others => '0');  -- last bit to arrive from previous 4
+  --signal s_CFD_previous_late_bit          : std_logic_vector(g_NUM_INPUTS-1 downto 0) := (others => '0');  -- last bit to arrive from previous 4
+  
+  signal s_ipbus_ack                      : std_logic := '0';  -- used to produce a delayed IPBus ack signal
+
+  signal s_edge_rising_times:   t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);  --! edge arrival time ( w.r.t. logic_strobe)
+  signal s_edge_falling_times:  t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);  --! edge arrival time ( w.r.t. logic_strobe)
+  signal s_edge_rising:         std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);    --! High when rising edge
+  signal s_edge_falling:        std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);    --! High when falling edge
+
+  constant c_N_CTRL : positive := 1;
+  constant c_N_STAT : positive := g_NUM_INPUTS+1 ;
+  signal s_status_to_ipbus , s_sync_status_to_ipbus: ipb_reg_v(c_N_STAT-1 downto 0);
+  signal s_control_from_ipbus , s_sync_control_from_ipbus: ipb_reg_v(c_N_CTRL-1 downto 0);
+--  signal s_reset_reg , s_status_reg: std_logic_vector(g_IPBUS_WIDTH-1 downto 0) := (others => '0');
+  signal s_counter_reset, s_calibrate_idelay: std_logic := '0';
+  
+BEGIN
+  -----------------------------------------------------------------------------
+  -- IPBus interface 
+  -----------------------------------------------------------------------------
+
+  -- Can't get ipbus_syncreg_v to meet timing. So use non-syncronized followed
+  -- by synchronizer.
+  ipbus_registers: entity work.ipbus_ctrlreg_v
+    generic map (
+      N_STAT =>  c_N_STAT )
+    port map(
+      clk=> ipbus_clk_i,
+      reset => ipbus_reset_i ,
+      ipbus_in =>  ipbus_i,
+      ipbus_out => ipbus_o,
+      d=>  s_sync_status_to_ipbus,
+      q=>  s_control_from_ipbus,
+      stb => open
+      );
+
+  -- sync data from I/O logic to IPBus
+  sync_registers: entity work.synchronizeRegisters
+    generic map (
+      g_NUM_REGISTERS => c_N_STAT )
+    port map (
+      clk_input_i => clk_4x_logic,
+      data_i      => s_status_to_ipbus,
+      data_o      => s_sync_status_to_ipbus,
+      clk_output_i => ipbus_clk_i);
+
+  -- sync data from I/O logic to IPBus
+  sync_ipbus: entity work.synchronizeRegisters
+    generic map (
+      g_NUM_REGISTERS => c_N_CTRL )
+    port map (
+      clk_input_i => ipbus_clk_i,
+      data_i      => s_control_from_ipbus,
+      data_o      => s_sync_control_from_ipbus,
+      clk_output_i => clk_4x_logic);
+
+  -- Map the control registers...
+  -- Register that controls IODELAY and ISERDES reset is at address 0
+  s_rst_iserdes <= reset_i or s_sync_control_from_ipbus(0)(0);
+  s_counter_reset <= s_sync_control_from_ipbus(0)(1);
+  s_calibrate_idelay <= s_sync_control_from_ipbus(0)(2);
+  
+  s_status_to_ipbus(0)(0) <= s_rst_iserdes;
+  s_status_to_ipbus(0)(1) <= s_counter_reset;
+  s_status_to_ipbus(0)(2) <= s_calibrate_idelay;
+  -- Connect up unused lines in status regiser to 0.
+  s_status_to_ipbus(0)(3) <= '0';
+  s_status_to_ipbus(0)(g_IPBUS_WIDTH-1 downto 28) <= (others => '0');
+
+  -----------------------------------------------------------------------------
+  -- Connect up trigger inputs to deserializers and a LUT to determine
+  -- arrival time
+  -----------------------------------------------------------------------------
+ 
+  --BEGIN FOR LOOP
+  trigger_input_loop: for triggerInput in 0 to (g_NUM_INPUTS-1) generate
+
+        thresholdInputBuffer: IBUFDS
+          generic map (
+            DIFF_TERM        => true,
+            IBUF_LOW_PWR     => false,
+            IOSTANDARD       => "LVDS_25")
+          port map (
+            O  => s_threshold_discr_input(triggerInput),
+            I  => threshold_discr_p_i(triggerInput),
+            IB => threshold_discr_n_i(triggerInput)
+            );
+    
+        thresholdDeserializer: entity work.dualSERDES_1to4
+          port map (
+            reset_i 			=> s_rst_iserdes,
+            --calibrate_i 		=> s_calibrate_idelay,
+            data_i         => s_threshold_discr_input(triggerInput),
+            data_i_pos     => threshold_discr_p_i(triggerInput),
+            data_i_neg     => threshold_discr_n_i(triggerInput),
+            fastClk_i      => clk_16x_logic_i,
+            fabricClk_i    => clk_4x_logic,
+            strobe_i       => strobe_16x_logic_i,
+            data_o         => s_deserialized_threshold_data(triggerInput),
+            status_o       => s_status_to_ipbus(0)(5+(2*triggerInput) downto 4+(2*triggerInput))
+            );
+              
+        s_deserialized_threshold_data_l(triggerInput) <= s_deserialized_threshold_data(triggerInput) & s_threshold_previous_late_bit(triggerInput);
+        
+        thresholdLUT : entity work.arrivalTimeLUT
+          port map (
+            clk_4x_logic_i      => clk_4x_logic,
+            strobe_4x_logic_i   => strobe_4x_logic_i,
+            deserialized_data_i => s_deserialized_threshold_data_l(triggerInput),
+            first_rising_edge_time_o => s_edge_rising_times(triggerInput), 
+            last_falling_edge_time_o => s_edge_falling_times(triggerInput), 
+            rising_edge_o       => s_edge_rising(triggerInput), 
+            falling_edge_o      => s_edge_falling(triggerInput),
+            multiple_edges_o    => open
+            );
+    
+        -- The leading edge may be a high-->low or a low-->high transition (
+        -- depending on polarity of input signal. ). For now assume that leading
+        -- edge is low-->high and connect trigger times and trigger output accordingly.
+        -- In the future have this selectable.
+        edge_rising_times_o(triggerInput) <= s_edge_rising_times(triggerInput);
+        edge_falling_times_o(triggerInput) <= s_edge_falling_times(triggerInput);
+        edge_rising_o(triggerInput) <= s_edge_rising(triggerInput);
+        edge_falling_o(triggerInput) <= s_edge_falling(triggerInput);
+        trigger_times_o(triggerInput) <= s_edge_rising_times(triggerInput);
+        trigger_o(triggerInput) <= s_edge_rising(triggerInput);
+        
+--REMOVE CFD        
+--        CFDInputBuffer: IBUFDS
+--          generic map (
+--            DIFF_TERM        => true,
+--            IBUF_LOW_PWR     => false,
+--            IOSTANDARD       => "LVDS_25")
+--          port map (
+--            O  => s_CFD_discr_input(triggerInput),
+--            I  => CFD_discr_p_i(triggerInput),
+--            IB => CFD_discr_n_i(triggerInput)
+--            );
+    
+--        CFDDeserializer: entity work.dualSERDES_1to4
+--          port map (
+--            reset_i => s_rst_iserdes,
+--            --calibrate_i => s_calibrate_idelay,
+--            data_i         => s_CFD_discr_input(triggerInput),
+--            fastClk_i      => clk_16x_logic_i,
+--            fabricClk_i    => clk_4x_logic,
+--            strobe_i       => strobe_16x_logic_i,
+--            data_o         => s_deserialized_CFD_data(triggerInput),
+--            status_o       => s_status_to_ipbus(0)(13+(2*triggerInput) downto 12+(2*triggerInput))
+--            );
+--        --s_deserialized_CFD_data(triggerInput) <= (others=>'0');
+          
+--        s_deserialized_CFD_data_l(triggerInput) <= s_deserialized_CFD_data(triggerInput) & s_CFD_previous_late_bit(triggerInput);
+--        CFDLUT : entity work.arrivalTimeLUT
+--          port map (
+--            clk_4x_logic_i      => clk_4x_logic,
+--            strobe_4x_logic_i   => strobe_4x_logic_i,
+--            deserialized_data_i => s_deserialized_CFD_data_l(triggerInput),
+--            first_rising_edge_time_o => s_cfd_trigger_times(triggerInput),
+--            last_falling_edge_time_o => open, 
+--            rising_edge_o       => s_CFD_rising_edge(triggerInput),
+--            falling_edge_o      => s_CFD_falling_edge(triggerInput),
+--            multiple_edges_o    => open
+--            );
+    
+        p_register_delayed_bits : process ( clk_4x_logic ) 
+        begin 
+          if rising_edge(clk_4x_logic) then
+            s_threshold_previous_late_bit(triggerInput) <= s_deserialized_threshold_data(triggerInput)(7);
+              
+            --s_CFD_previous_late_bit(triggerInput) <= s_deserialized_CFD_data(triggerInput)(7);
+    
+            -- Monitor output of serdes - just look at one per serdes
+            -- Don't care about latency so put a couple of registers in to aid
+            -- timing closure.
+            s_status_to_ipbus(0)(20+triggerInput) <= s_threshold_previous_late_bit(triggerInput);
+            --s_status_to_ipbus(0)(24+triggerInput) <= s_CFD_previous_late_bit(triggerInput);
+        
+          end if ; 
+        end process;
+    
+        --! Instantiate counter for output triggers.
+        --! Input I is connected to address I+1
+        cmp_inputTriggerCounter : entity work.counterWithReset
+          generic map (
+            g_COUNTER_WIDTH => g_IPBUS_WIDTH)
+        port map (
+          clock_i  => clk_4x_logic,
+          reset_i  => s_counter_reset,
+          enable_i => s_edge_rising(triggerInput),
+          result_o => s_status_to_ipbus(triggerInput+1));
+    
+  end generate trigger_input_loop;
+  --END FOR LOOP
+  
+  --trigger_debug_o( (g_NUM_INPUTS-1) downto 0) <= s_threshold_discr_input;
+  --trigger_debug_o( ((2*g_NUM_INPUTS)-1) downto g_NUM_INPUTS) <=  s_edge_rising;
+  
+END ARCHITECTURE rtl;
+
diff --git a/legacy/TLU_v1c/common/triggerInputs_newTLU_rtl_fastClock.vhd b/legacy/TLU_v1c/common/triggerInputs_newTLU_rtl_fastClock.vhd
new file mode 100644
index 00000000..9e3a01e1
--- /dev/null
+++ b/legacy/TLU_v1c/common/triggerInputs_newTLU_rtl_fastClock.vhd
@@ -0,0 +1,301 @@
+--=============================================================================
+--! @file triggerInputs_rtl.vhd
+--=============================================================================
+--
+-------------------------------------------------------------------------------
+-- --
+-- University of Bristol, High Energy Physics Group.
+-- --
+------------------------------------------------------------------------------- --
+-- VHDL Architecture fmc_mTLU_lib.triggerInputs.rtl
+--
+--------------------------------------------------------------------------------
+-- 
+-- Created using using Mentor Graphics HDL Designer(TM) 2010.3 (Build 21)
+--
+LIBRARY ieee;
+USE ieee.std_logic_1164.all;
+USE ieee.numeric_std.all;
+USE work.ipbus.all;
+USE work.ipbus_reg_types.all;
+USE work.fmcTLU.all;
+
+
+library unisim ;
+use unisim.vcomponents.all;
+
+--! @brief Measures arrival time of trigger pulses using two deserializers
+--! clocked on 14x clock ( 640MHz) 
+--! Based on TDC code by Alvaro Dosil
+--!
+--! @author David Cussans , David.Cussans@bristol.ac.uk
+--!
+--!
+--! @date 15:43:57 11/08/12
+--!
+--! @version v0.1
+--!
+--! @details
+--! \li IPBus address 0 = control and status
+--!  \li bit0 = reset serdes
+--!  \li bit1 = reset counter
+--!  \li bit2 = calibrate IDELAYs
+--!  \li bit3 = not connected
+--!  \li bit4 = Thresh discr  IDelay(0) status prompt
+--!  \li bit5 = Thresh discr  IDelay(0) status delayed
+--!  \li bit6 = Thresh discr  IDelay(1) status prompt
+--!  \li bit7 = Thresh discr  IDelay(1) status delayed
+--!  \li bit8 = Thresh discr  IDelay(2) status prompt
+--!  \li bit9 = Thresh discr  IDelay(2) status delayed
+--!  \li bit10= Thresh discr  IDelay(3) status prompt
+--!  \li bit11= Thresh discr  IDelay(3) status delayed
+--!  \li bit12= CFD discr  IDelay(0) status prompt
+--!  \li bit13= CFD discr  IDelay(0) status delayed
+--!  \li bit14= CFD discr  IDelay(1) status prompt
+--!  \li bit15= CFD discr  IDelay(1) status delayed
+--!  \li bit16= CFD discr  IDelay(2) status prompt
+--!  \li bit17= CFD discr  IDelay(2) status delayed
+--!  \li bit18= CFD discr  IDelay(3) status prompt
+--!  \li bit19= CFD discr  IDelay(3) status delayed
+--!  \li bit20= Thresh deserialized data monitor(0)
+--!  \li bit21= Thresh deserialized data monitor(1)
+--!  \li bit22= Thresh deserialized data monitor(2)
+--!  \li bit23= Thresh deserialized data monitor(3)
+--!  \li bit24= CFD deserialized data monitor(0)
+--!  \li bit25= CFD deserialized data monitor(1)
+--!  \li bit26= CFD deserialized data monitor(2)
+--!  \li bit27= CFD deserialized data monitor(3)
+--!
+--! \li IPBus address 1 = edge rising(0) counter
+--! \li IPBus address 2 = edge rising(1) counter
+--! \li IPBus address 3 = edge rising(2) counter
+--! \li IPBus address 4 = edge rising(3) counter
+--!
+--!
+--! <b>Modified by: Alvaro Dosil , alvaro.dosil@usc.es </b>\n
+--! Author: 
+-------------------------------------------------------------------------------
+--! \n\n<b>Last changes:</b>\n
+-------------------------------------------------------------------------------
+--! @todo Implement a periodic calibration sequence 
+--
+
+ENTITY triggerInputs_newTLU IS
+   GENERIC( 
+      g_NUM_INPUTS  : natural  := 1;--1
+      g_IPBUS_WIDTH : positive := 32
+   );
+   PORT( 
+      --cfd_discr_p_i        : IN     std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);         --! Inputs from constant-fraction discriminators
+      --cfd_discr_n_i        : IN     std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);         --! Input from CFD
+      clk_4x_logic         : IN     std_logic;                                          --! Rising edge active. By default = 4*40MHz = 160MHz
+      clk_200_i : IN     std_logic;
+      strobe_4x_logic_i    : IN     std_logic;                                          --! Pulses high once every 4 cycles of clk_4x_logic
+      threshold_discr_p_i  : IN     std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);         --! inputs from threshold comparators
+      threshold_discr_n_i  : IN     std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);         --! inputs from threshold comparators
+      reset_i              : IN     std_logic;
+      trigger_times_o      : OUT    t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);       --! trigger arrival time ( w.r.t. logic_strobe)
+      trigger_o            : OUT    std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);         --!  Goes high on leading edge of trigger, in sync with clk_4x_logic_i
+      --trigger_debug_o      : OUT    std_logic_vector ( ((2*g_NUM_INPUTS)-1) DOWNTO 0);  --! Copy of input trigger level. High bits CFD, Low threshold
+      edge_rising_times_o  : OUT    t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);       --! edge arrival time ( w.r.t. logic_strobe)
+      edge_falling_times_o : OUT    t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);       --! edge arrival time ( w.r.t. logic_strobe)
+      edge_rising_o        : OUT    std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);         --! High when rising edge. Syncronous with clk_4x_logic_i
+      edge_falling_o       : OUT    std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);         --! High when falling edge
+      ipbus_clk_i          : IN     std_logic;
+      ipbus_reset_i        : IN     std_logic;
+      ipbus_i              : IN     ipb_wbus;                                           --! Signals from IPBus core to slave
+      ipbus_o              : OUT    ipb_rbus;                                           --! signals from slave to IPBus core
+      clk_8x_logic_i      : IN     std_logic;                                          --! 320MHz clock ( 8x 40MHz )
+      strobe_8x_logic_i   : IN     std_logic                                           --! Pulses one cycle every 4 of 8x clock.
+   );
+
+-- Declarations
+END triggerInputs_newTLU ;
+
+--
+ARCHITECTURE rtl OF triggerInputs_newTLU IS
+  
+    signal s_rst_iserdes : std_logic := '0'; --! Reset ISERDES and IDELAY
+    signal s_threshold_discr_input , s_thr_in_p, s_thr_in_n : std_logic_vector(g_NUM_INPUTS-1 downto 0);  --! inputs from comparator
+    type t_deserialized_trigger_data_array is array ( natural range <> ) of std_logic_vector(7 downto 0); --
+    signal s_deserialized_threshold_data, s_deserialized_threshold_data_d , s_deserialized_cfd_data, s_deserialized_cfd_data_d : t_deserialized_trigger_data_array(g_NUM_INPUTS-1 downto 0);
+    type t_deserialized_trigger_data_array_l is array ( natural range <> ) of std_logic_vector(8 downto 0); --
+    signal s_deserialized_threshold_data_l , s_deserialized_cfd_data_l : t_deserialized_trigger_data_array_l(g_NUM_INPUTS-1 downto 0);
+    --signal s_cfd_trigger_times              : t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);
+    --signal s_CFD_rising_edge                : std_logic_vector(g_NUM_INPUTS-1 downto 0); 
+    --signal s_CFD_falling_edge               : std_logic_vector(g_NUM_INPUTS-1 downto 0); 
+    signal s_threshold_previous_late_bit    : std_logic_vector(g_NUM_INPUTS-1 downto 0) := (others => '0');  -- last bit to arrive from previous 4
+    --signal s_CFD_previous_late_bit          : std_logic_vector(g_NUM_INPUTS-1 downto 0) := (others => '0');  -- last bit to arrive from previous 4
+    signal s_ipbus_ack                      : std_logic := '0';  -- used to produce a delayed IPBus ack signal
+    signal s_edge_rising_times:   t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);  --! edge arrival time ( w.r.t. logic_strobe)
+    signal s_edge_falling_times:  t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);  --! edge arrival time ( w.r.t. logic_strobe)
+    signal s_edge_rising:         std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);    --! High when rising edge
+    signal s_edge_falling:        std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);    --! High when falling edge
+    constant c_N_CTRL : positive := 1;
+    constant c_N_STAT : positive := g_NUM_INPUTS+1 ;
+    signal s_status_to_ipbus , s_sync_status_to_ipbus: ipb_reg_v(c_N_STAT-1 downto 0);
+    signal s_control_from_ipbus , s_sync_control_from_ipbus: ipb_reg_v(c_N_CTRL-1 downto 0);
+    --  signal s_reset_reg , s_status_reg: std_logic_vector(g_IPBUS_WIDTH-1 downto 0) := (others => '0');
+    signal s_counter_reset, s_calibrate_idelay: std_logic := '0';
+  
+BEGIN
+    -----------------------------------------------------------------------------
+    -- IPBus interface 
+    -----------------------------------------------------------------------------
+
+    -- Can't get ipbus_syncreg_v to meet timing. So use non-syncronized followed
+    -- by synchronizer.
+    ipbus_registers: entity work.ipbus_ctrlreg_v
+    generic map (
+        N_STAT =>  c_N_STAT )
+    port map(
+        clk=> ipbus_clk_i,
+        reset => ipbus_reset_i ,
+        ipbus_in =>  ipbus_i,
+        ipbus_out => ipbus_o,
+        d=>  s_sync_status_to_ipbus,
+        q=>  s_control_from_ipbus,
+        stb => open
+        );
+
+    -- sync data from I/O logic to IPBus
+    sync_registers: entity work.synchronizeRegisters
+    generic map (
+        g_NUM_REGISTERS => c_N_STAT )
+    port map (
+        clk_input_i => clk_4x_logic,
+        data_i      => s_status_to_ipbus,
+        data_o      => s_sync_status_to_ipbus,
+        clk_output_i => ipbus_clk_i);
+
+    -- sync data from I/O logic to IPBus
+    sync_ipbus: entity work.synchronizeRegisters
+    generic map (
+        g_NUM_REGISTERS => c_N_CTRL )
+    port map (
+        clk_input_i => ipbus_clk_i,
+        data_i      => s_control_from_ipbus,
+        data_o      => s_sync_control_from_ipbus,
+        clk_output_i => clk_4x_logic);
+
+    -- Map the control registers...
+    -- Register that controls IODELAY and ISERDES reset is at address 0
+    s_rst_iserdes <= reset_i or s_sync_control_from_ipbus(0)(0);
+    s_counter_reset <= s_sync_control_from_ipbus(0)(1);
+    s_calibrate_idelay <= s_sync_control_from_ipbus(0)(2);
+  
+    s_status_to_ipbus(0)(0) <= s_rst_iserdes;
+    s_status_to_ipbus(0)(1) <= s_counter_reset;
+    s_status_to_ipbus(0)(2) <= s_calibrate_idelay;
+    -- Connect up unused lines in status regiser to 0.
+    s_status_to_ipbus(0)(3) <= '0';
+    s_status_to_ipbus(0)(g_IPBUS_WIDTH-1 downto 28) <= (others => '0');
+
+    -----------------------------------------------------------------------------
+    -- Connect up trigger inputs to deserializers and a LUT to determine
+    -- arrival time
+    -----------------------------------------------------------------------------
+    idelaytriggers0: idelayctrl port map(
+          refclk => clk_200_i,
+          rst => reset_i
+    );
+ 
+    --BEGIN FOR LOOP
+    trigger_input_loop: for triggerInput in 0 to (g_NUM_INPUTS-1) generate
+
+--        thresholdInputBuffer: IBUFDS
+--          generic map (
+--            DIFF_TERM        => true,
+--            IBUF_LOW_PWR     => false,
+--            IOSTANDARD       => "LVDS_25")
+--          port map (
+--            O  => s_threshold_discr_input(triggerInput),
+--            I  => threshold_discr_p_i(triggerInput),
+--            IB => threshold_discr_n_i(triggerInput)
+--            );
+    
+        IBUFDS_DIFF_OUT_inst : IBUFDS_DIFF_OUT
+        generic map (
+            IBUF_LOW_PWR => false,
+            IOSTANDARD       => "LVDS_25"
+        )
+        port map (
+            O => s_thr_in_p(triggerInput),
+            OB => s_thr_in_n(triggerInput),
+            I => threshold_discr_p_i(triggerInput),
+            IB => threshold_discr_n_i(triggerInput)
+        );
+            
+        thresholdDeserializer: entity work.dualSERDES_1to4
+        port map (
+            reset_i 			=> s_rst_iserdes,
+            --calibrate_i 		=> s_calibrate_idelay,
+            --data_i         => s_threshold_discr_input(triggerInput),
+            data_i         => '0',
+            data_i_pos     => s_thr_in_p(triggerInput),
+            data_i_neg     => s_thr_in_n(triggerInput),
+            fastClk_i      => clk_8x_logic_i,
+            fabricClk_i    => clk_4x_logic,
+            strobe_i       => strobe_8x_logic_i,
+            data_o         => s_deserialized_threshold_data(triggerInput),
+            status_o       => s_status_to_ipbus(0)(5+(2*triggerInput) downto 4+(2*triggerInput))
+        );
+                  
+        s_deserialized_threshold_data_l(triggerInput) <= s_deserialized_threshold_data(triggerInput) & s_threshold_previous_late_bit(triggerInput);
+            
+        thresholdLUT : entity work.arrivalTimeLUT
+        port map (
+            clk_4x_logic_i      => clk_4x_logic,
+            strobe_4x_logic_i   => strobe_4x_logic_i,
+            deserialized_data_i => s_deserialized_threshold_data_l(triggerInput),
+            first_rising_edge_time_o => s_edge_rising_times(triggerInput), 
+            last_falling_edge_time_o => s_edge_falling_times(triggerInput), 
+            rising_edge_o       => s_edge_rising(triggerInput), 
+            falling_edge_o      => s_edge_falling(triggerInput),
+            multiple_edges_o    => open
+        );
+        
+        -- The leading edge may be a high-->low or a low-->high transition (
+        -- depending on polarity of input signal. ). For now assume that leading
+        -- edge is low-->high and connect trigger times and trigger output accordingly.
+        -- In the future have this selectable.
+        edge_rising_times_o(triggerInput) <= s_edge_rising_times(triggerInput);
+        edge_falling_times_o(triggerInput) <= s_edge_falling_times(triggerInput);
+        edge_rising_o(triggerInput) <= s_edge_rising(triggerInput);
+        edge_falling_o(triggerInput) <= s_edge_falling(triggerInput);
+        trigger_times_o(triggerInput) <= s_edge_rising_times(triggerInput);
+        trigger_o(triggerInput) <= s_edge_rising(triggerInput);
+            
+    
+        p_register_delayed_bits : process ( clk_4x_logic ) 
+        begin 
+            if rising_edge(clk_4x_logic) then
+                s_threshold_previous_late_bit(triggerInput) <= s_deserialized_threshold_data(triggerInput)(7);
+                --s_CFD_previous_late_bit(triggerInput) <= s_deserialized_CFD_data(triggerInput)(7);
+                -- Monitor output of serdes - just look at one per serdes
+                -- Don't care about latency so put a couple of registers in to aid
+                -- timing closure.
+                s_status_to_ipbus(0)(20+triggerInput) <= s_threshold_previous_late_bit(triggerInput);
+                --s_status_to_ipbus(0)(24+triggerInput) <= s_CFD_previous_late_bit(triggerInput);
+            end if ; 
+        end process;
+        
+        --! Instantiate counter for output triggers.
+        --! Input I is connected to address I+1
+        cmp_inputTriggerCounter : entity work.counterWithReset
+        generic map (
+            g_COUNTER_WIDTH => g_IPBUS_WIDTH)
+        port map (
+            clock_i  => clk_4x_logic,
+            reset_i  => s_counter_reset,
+            enable_i => s_edge_rising(triggerInput),
+            result_o => s_status_to_ipbus(triggerInput+1)
+        );
+    end generate trigger_input_loop;
+  --END FOR LOOP
+  
+  --trigger_debug_o( (g_NUM_INPUTS-1) downto 0) <= s_threshold_discr_input;
+  --trigger_debug_o( ((2*g_NUM_INPUTS)-1) downto g_NUM_INPUTS) <=  s_edge_rising;
+  
+END ARCHITECTURE rtl;
+
diff --git a/legacy/TLU_v1c/common/triggerInputs_rtl.vhd b/legacy/TLU_v1c/common/triggerInputs_rtl.vhd
new file mode 100644
index 00000000..3d83e3d6
--- /dev/null
+++ b/legacy/TLU_v1c/common/triggerInputs_rtl.vhd
@@ -0,0 +1,338 @@
+--=============================================================================
+--! @file triggerInputs_rtl.vhd
+--=============================================================================
+--
+-------------------------------------------------------------------------------
+-- --
+-- University of Bristol, High Energy Physics Group.
+-- --
+------------------------------------------------------------------------------- --
+-- VHDL Architecture fmc_mTLU_lib.triggerInputs.rtl
+--
+--------------------------------------------------------------------------------
+-- 
+-- Created using using Mentor Graphics HDL Designer(TM) 2010.3 (Build 21)
+--
+LIBRARY ieee;
+USE ieee.std_logic_1164.all;
+USE ieee.numeric_std.all;
+
+USE work.ipbus.all;
+use work.ipbus_reg_types.all;
+
+USE work.fmcTLU.all;
+
+
+library unisim ;
+use unisim.vcomponents.all;
+
+--! @brief Measures arrival time of trigger pulses using two deserializers
+--! clocked on 14x clock ( 640MHz) 
+--! Based on TDC code by Alvaro Dosil
+--!
+--! @author David Cussans , David.Cussans@bristol.ac.uk
+--!
+--!
+--! @date 15:43:57 11/08/12
+--!
+--! @version v0.1
+--!
+--! @details
+--! \li IPBus address 0 = control and status
+--!  \li bit0 = reset serdes
+--!  \li bit1 = reset counter
+--!  \li bit2 = calibrate IDELAYs
+--!  \li bit3 = not connected
+--!  \li bit4 = Thresh discr  IDelay(0) status prompt
+--!  \li bit5 = Thresh discr  IDelay(0) status delayed
+--!  \li bit6 = Thresh discr  IDelay(1) status prompt
+--!  \li bit7 = Thresh discr  IDelay(1) status delayed
+--!  \li bit8 = Thresh discr  IDelay(2) status prompt
+--!  \li bit9 = Thresh discr  IDelay(2) status delayed
+--!  \li bit10= Thresh discr  IDelay(3) status prompt
+--!  \li bit11= Thresh discr  IDelay(3) status delayed
+--!  \li bit12= CFD discr  IDelay(0) status prompt
+--!  \li bit13= CFD discr  IDelay(0) status delayed
+--!  \li bit14= CFD discr  IDelay(1) status prompt
+--!  \li bit15= CFD discr  IDelay(1) status delayed
+--!  \li bit16= CFD discr  IDelay(2) status prompt
+--!  \li bit17= CFD discr  IDelay(2) status delayed
+--!  \li bit18= CFD discr  IDelay(3) status prompt
+--!  \li bit19= CFD discr  IDelay(3) status delayed
+--!  \li bit20= Thresh deserialized data monitor(0)
+--!  \li bit21= Thresh deserialized data monitor(1)
+--!  \li bit22= Thresh deserialized data monitor(2)
+--!  \li bit23= Thresh deserialized data monitor(3)
+--!  \li bit24= CFD deserialized data monitor(0)
+--!  \li bit25= CFD deserialized data monitor(1)
+--!  \li bit26= CFD deserialized data monitor(2)
+--!  \li bit27= CFD deserialized data monitor(3)
+--!
+--! \li IPBus address 1 = edge rising(0) counter
+--! \li IPBus address 2 = edge rising(1) counter
+--! \li IPBus address 3 = edge rising(2) counter
+--! \li IPBus address 4 = edge rising(3) counter
+--!
+--!
+--! <b>Modified by: Alvaro Dosil , alvaro.dosil@usc.es </b>\n
+--! Author: 
+-------------------------------------------------------------------------------
+--! \n\n<b>Last changes:</b>\n
+-------------------------------------------------------------------------------
+--! @todo Implement a periodic calibration sequence 
+--
+
+ENTITY triggerInputs IS
+   GENERIC( 
+      g_NUM_INPUTS  : natural  := 1;
+      g_IPBUS_WIDTH : positive := 32
+   );
+   PORT( 
+      cfd_discr_p_i        : IN     std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);         --! Inputs from constant-fraction discriminators
+      cfd_discr_n_i        : IN     std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);         --! Input from CFD
+      clk_4x_logic         : IN     std_logic;                                          --! Rising edge active. By default = 4*40MHz = 160MHz
+      strobe_4x_logic_i    : IN     std_logic;                                          --! Pulses high once every 4 cycles of clk_4x_logic
+      threshold_discr_p_i  : IN     std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);         --! inputs from threshold comparators
+      threshold_discr_n_i  : IN     std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);         --! inputs from threshold comparators
+      reset_i              : IN     std_logic;
+      trigger_times_o      : OUT    t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);       --! trigger arrival time ( w.r.t. logic_strobe)
+      trigger_o            : OUT    std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);         --!  Goes high on leading edge of trigger, in sync with clk_4x_logic_i
+      trigger_debug_o      : OUT    std_logic_vector ( ((2*g_NUM_INPUTS)-1) DOWNTO 0);  --! Copy of input trigger level. High bits CFD, Low threshold
+      edge_rising_times_o  : OUT    t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);       --! edge arrival time ( w.r.t. logic_strobe)
+      edge_falling_times_o : OUT    t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);       --! edge arrival time ( w.r.t. logic_strobe)
+      edge_rising_o        : OUT    std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);         --! High when rising edge. Syncronous with clk_4x_logic_i
+      edge_falling_o       : OUT    std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);         --! High when falling edge
+      ipbus_clk_i          : IN     std_logic;
+      ipbus_reset_i        : IN     std_logic;
+      ipbus_i              : IN     ipb_wbus;                                           --! Signals from IPBus core to slave
+      ipbus_o              : OUT    ipb_rbus;                                           --! signals from slave to IPBus core
+      clk_16x_logic_i      : IN     std_logic;                                          --! 640MHz clock ( 16x 40MHz )
+      strobe_16x_logic_i   : IN     std_logic                                           --! Pulses one cycle every 4 of 16x clock.
+   );
+
+-- Declarations
+
+END triggerInputs ;
+
+--
+ARCHITECTURE rtl OF triggerInputs IS
+  
+  signal s_rst_iserdes : std_logic := '0'; --! Reset ISERDES and IDELAY
+  
+  signal s_threshold_discr_input , s_cfd_discr_input : std_logic_vector(g_NUM_INPUTS-1 downto 0);  --! inputs from comparator
+
+  type t_deserialized_trigger_data_array is array ( natural range <> ) of std_logic_vector(7 downto 0); --
+  signal s_deserialized_threshold_data, s_deserialized_threshold_data_d , s_deserialized_cfd_data, s_deserialized_cfd_data_d : t_deserialized_trigger_data_array(g_NUM_INPUTS-1 downto 0);
+
+  type t_deserialized_trigger_data_array_l is array ( natural range <> ) of std_logic_vector(8 downto 0); --
+  signal s_deserialized_threshold_data_l , s_deserialized_cfd_data_l : t_deserialized_trigger_data_array_l(g_NUM_INPUTS-1 downto 0);
+
+  signal s_cfd_trigger_times              : t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);
+  
+  signal s_CFD_rising_edge                : std_logic_vector(g_NUM_INPUTS-1 downto 0); 
+  signal s_CFD_falling_edge               : std_logic_vector(g_NUM_INPUTS-1 downto 0); 
+  
+  signal s_threshold_previous_late_bit    : std_logic_vector(g_NUM_INPUTS-1 downto 0) := (others => '0');  -- last bit to arrive from previous 4
+  signal s_CFD_previous_late_bit          : std_logic_vector(g_NUM_INPUTS-1 downto 0) := (others => '0');  -- last bit to arrive from previous 4
+  
+  signal s_ipbus_ack                      : std_logic := '0';  -- used to produce a delayed IPBus ack signal
+
+  signal s_edge_rising_times:   t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);  --! edge arrival time ( w.r.t. logic_strobe)
+  signal s_edge_falling_times:  t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);  --! edge arrival time ( w.r.t. logic_strobe)
+  signal s_edge_rising:         std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);    --! High when rising edge
+  signal s_edge_falling:        std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);    --! High when falling edge
+
+  constant c_N_CTRL : positive := 1;
+  constant c_N_STAT : positive := g_NUM_INPUTS+1 ;
+  signal s_status_to_ipbus , s_sync_status_to_ipbus: ipb_reg_v(c_N_STAT-1 downto 0);
+  signal s_control_from_ipbus , s_sync_control_from_ipbus: ipb_reg_v(c_N_CTRL-1 downto 0);
+--  signal s_reset_reg , s_status_reg: std_logic_vector(g_IPBUS_WIDTH-1 downto 0) := (others => '0');
+  signal s_counter_reset, s_calibrate_idelay: std_logic := '0';
+  
+BEGIN
+  -----------------------------------------------------------------------------
+  -- IPBus interface 
+  -----------------------------------------------------------------------------
+
+  -- Can't get ipbus_syncreg_v to meet timing. So use non-syncronized followed
+  -- by synchronizer.
+  ipbus_registers: entity work.ipbus_ctrlreg_v
+    generic map (
+      N_STAT =>  c_N_STAT )
+    port map(
+      clk=> ipbus_clk_i,
+      reset => ipbus_reset_i ,
+      ipbus_in =>  ipbus_i,
+      ipbus_out => ipbus_o,
+      d=>  s_sync_status_to_ipbus,
+      q=>  s_control_from_ipbus,
+      stb => open
+      );
+
+  -- sync data from I/O logic to IPBus
+  sync_registers: entity work.synchronizeRegisters
+    generic map (
+      g_NUM_REGISTERS => c_N_STAT )
+    port map (
+      clk_input_i => clk_4x_logic,
+      data_i      => s_status_to_ipbus,
+      data_o      => s_sync_status_to_ipbus,
+      clk_output_i => ipbus_clk_i);
+
+  -- sync data from I/O logic to IPBus
+  sync_ipbus: entity work.synchronizeRegisters
+    generic map (
+      g_NUM_REGISTERS => c_N_CTRL )
+    port map (
+      clk_input_i => ipbus_clk_i,
+      data_i      => s_control_from_ipbus,
+      data_o      => s_sync_control_from_ipbus,
+      clk_output_i => clk_4x_logic);
+
+  -- Map the control registers...
+  -- Register that controls IODELAY and ISERDES reset is at address 0
+  s_rst_iserdes <= reset_i or s_sync_control_from_ipbus(0)(0);
+  s_counter_reset <= s_sync_control_from_ipbus(0)(1);
+  s_calibrate_idelay <= s_sync_control_from_ipbus(0)(2);
+  
+  s_status_to_ipbus(0)(0) <= s_rst_iserdes;
+  s_status_to_ipbus(0)(1) <= s_counter_reset;
+  s_status_to_ipbus(0)(2) <= s_calibrate_idelay;
+  -- Connect up unused lines in status regiser to 0.
+  s_status_to_ipbus(0)(3) <= '0';
+  s_status_to_ipbus(0)(g_IPBUS_WIDTH-1 downto 28) <= (others => '0');
+
+  -----------------------------------------------------------------------------
+  -- Connect up trigger inputs to deserializers and a LUT to determine
+  -- arrival time
+  -----------------------------------------------------------------------------
+ 
+  --BEGIN FOR LOOP
+  trigger_input_loop: for triggerInput in 0 to (g_NUM_INPUTS-1) generate
+
+        thresholdInputBuffer: IBUFDS
+          generic map (
+            DIFF_TERM        => true,
+            IBUF_LOW_PWR     => false,
+            IOSTANDARD       => "LVDS_25")
+          port map (
+            O  => s_threshold_discr_input(triggerInput),
+            I  => threshold_discr_p_i(triggerInput),
+            IB => threshold_discr_n_i(triggerInput)
+            );
+    
+        thresholdDeserializer: entity work.dualSERDES_1to4
+          port map (
+            reset_i 			=> s_rst_iserdes,
+            --calibrate_i 		=> s_calibrate_idelay,
+            data_i         => s_threshold_discr_input(triggerInput),
+            fastClk_i      => clk_16x_logic_i,
+            fabricClk_i    => clk_4x_logic,
+            strobe_i       => strobe_16x_logic_i,
+            data_o         => s_deserialized_threshold_data(triggerInput),
+            status_o       => s_status_to_ipbus(0)(5+(2*triggerInput) downto 4+(2*triggerInput))
+            );
+              
+          --s_deserialized_threshold_data_l(triggerInput) <= s_deserialized_threshold_data(triggerInput)(3 downto 0) & s_deserialized_threshold_data_d(triggerInput)(7 downto 3);
+        s_deserialized_threshold_data_l(triggerInput) <= s_deserialized_threshold_data(triggerInput) & s_threshold_previous_late_bit(triggerInput);
+        thresholdLUT : entity work.arrivalTimeLUT
+          port map (
+            clk_4x_logic_i      => clk_4x_logic,
+            strobe_4x_logic_i   => strobe_4x_logic_i,
+            deserialized_data_i => s_deserialized_threshold_data_l(triggerInput),
+            first_rising_edge_time_o => s_edge_rising_times(triggerInput), 
+            last_falling_edge_time_o => s_edge_falling_times(triggerInput), 
+            rising_edge_o       => s_edge_rising(triggerInput), 
+            falling_edge_o      => s_edge_falling(triggerInput),
+            multiple_edges_o    => open
+            );
+    
+        -- The leading edge may be a high-->low or a low-->high transition (
+        -- depending on polarity of input signal. ). For now assume that leading
+        -- edge is low-->high and connect trigger times and trigger output accordingly.
+        -- In the future have this selectable.
+        edge_rising_times_o(triggerInput) <= s_edge_rising_times(triggerInput);
+        edge_falling_times_o(triggerInput) <= s_edge_falling_times(triggerInput);
+        edge_rising_o(triggerInput) <= s_edge_rising(triggerInput);
+        edge_falling_o(triggerInput) <= s_edge_falling(triggerInput);
+        trigger_times_o(triggerInput) <= s_edge_rising_times(triggerInput);
+        trigger_o(triggerInput) <= s_edge_rising(triggerInput);
+        
+        
+        CFDInputBuffer: IBUFDS
+          generic map (
+            DIFF_TERM        => true,
+            IBUF_LOW_PWR     => false,
+            IOSTANDARD       => "LVDS_25")
+          port map (
+            O  => s_CFD_discr_input(triggerInput),
+            I  => CFD_discr_p_i(triggerInput),
+            IB => CFD_discr_n_i(triggerInput)
+            );
+    
+        CFDDeserializer: entity work.dualSERDES_1to4
+          port map (
+            reset_i => s_rst_iserdes,
+            --calibrate_i => s_calibrate_idelay,
+            data_i         => s_CFD_discr_input(triggerInput),
+            fastClk_i      => clk_16x_logic_i,
+            fabricClk_i    => clk_4x_logic,
+            strobe_i       => strobe_16x_logic_i,
+            data_o         => s_deserialized_CFD_data(triggerInput),
+            status_o       => s_status_to_ipbus(0)(13+(2*triggerInput) downto 12+(2*triggerInput))
+            );
+        --s_deserialized_CFD_data(triggerInput) <= (others=>'0');
+          
+        s_deserialized_CFD_data_l(triggerInput) <= s_deserialized_CFD_data(triggerInput) & s_CFD_previous_late_bit(triggerInput);
+        CFDLUT : entity work.arrivalTimeLUT
+          port map (
+            clk_4x_logic_i      => clk_4x_logic,
+            strobe_4x_logic_i   => strobe_4x_logic_i,
+            deserialized_data_i => s_deserialized_CFD_data_l(triggerInput),
+            first_rising_edge_time_o => s_cfd_trigger_times(triggerInput),
+            last_falling_edge_time_o => open, 
+            rising_edge_o       => s_CFD_rising_edge(triggerInput),
+            falling_edge_o      => s_CFD_falling_edge(triggerInput),
+            multiple_edges_o    => open
+            );
+    
+        p_register_delayed_bits : process ( clk_4x_logic ) 
+        begin 
+          if rising_edge(clk_4x_logic) then
+            s_threshold_previous_late_bit(triggerInput) <= s_deserialized_threshold_data(triggerInput)(7);
+              --s_deserialized_threshold_data_d(triggerInput) <= s_deserialized_threshold_data(triggerInput);
+            s_CFD_previous_late_bit(triggerInput) <= s_deserialized_CFD_data(triggerInput)(7);
+    
+            -- Monitor output of serdes - just look at one per serdes
+            -- Don't care about latency so put a couple of registers in to aid
+            -- timing closure.
+            s_status_to_ipbus(0)(20+triggerInput) <= s_threshold_previous_late_bit(triggerInput);
+            s_status_to_ipbus(0)(24+triggerInput) <= s_CFD_previous_late_bit(triggerInput);
+        
+          end if ; 
+        end process;
+    
+        --! Instantiate counter for output triggers.
+        --! Input I is connected to address I+1
+        cmp_inputTriggerCounter : entity work.counterWithReset
+          generic map (
+            g_COUNTER_WIDTH => g_IPBUS_WIDTH)
+        port map (
+          clock_i  => clk_4x_logic,
+          reset_i  => s_counter_reset,
+          enable_i => s_edge_rising(triggerInput),
+          result_o => s_status_to_ipbus(triggerInput+1));
+    
+  end generate trigger_input_loop;
+  --END FOR LOOP
+  
+  --trigger_debug_o( ((2*g_NUM_INPUTS)-1) downto g_NUM_INPUTS) <= s_CFD_discr_input;
+  --trigger_debug_o( ((2*g_NUM_INPUTS)-1) downto g_NUM_INPUTS) <= s_edge_rising;
+  --! Monitor output of deserializer
+  -- trigger_debug_o( ((2*g_NUM_INPUTS)-1) downto g_NUM_INPUTS) <=  s_status_to_ipbus(0)(23 downto 20);
+  --trigger_debug_o( (g_NUM_INPUTS-1) downto 0) <=  s_edge_rising;
+  trigger_debug_o( (g_NUM_INPUTS-1) downto 0) <= s_threshold_discr_input;
+  trigger_debug_o( ((2*g_NUM_INPUTS)-1) downto g_NUM_INPUTS) <=  s_edge_rising;
+  
+END ARCHITECTURE rtl;
+
diff --git a/legacy/TLU_v1c/common/triggerLogic_rtl.vhd b/legacy/TLU_v1c/common/triggerLogic_rtl.vhd
new file mode 100644
index 00000000..2ff175d3
--- /dev/null
+++ b/legacy/TLU_v1c/common/triggerLogic_rtl.vhd
@@ -0,0 +1,355 @@
+--=============================================================================
+--! @file triggerLogic_rtl.vhd
+--=============================================================================
+--
+-------------------------------------------------------------------------------
+-- --
+-- University of Bristol, High Energy Physics Group.
+-- --
+------------------------------------------------------------------------------- --
+-- VHDL Architecture fmc_mTLU_lib.triggerLogic.rtl
+--
+-- 
+-- Created using using Mentor Graphics HDL Designer(TM) 2010.3 (Build 21)
+--
+LIBRARY ieee;
+USE ieee.std_logic_1164.all;
+USE ieee.numeric_std.all;
+
+USE work.ipbus.all;
+use work.ipbus_reg_types.all;
+
+USE work.fmcTLU.all;
+
+--! @brief Produces triggers from either trigger inputs or internal generator
+--!
+--! @author David Cussans , David.Cussans@bristol.ac.uk
+--!
+--! @date 16:06:19 11/09/12
+--!
+--! @version v0.1
+--!
+--! @details
+--! \br IPBus address map:
+--! \li 0x00000000 RO - Number of triggers issued since last reset.
+--! \li 0x00000001 RO - Number of possible triggers since last reset (i.e. pre-veto triggers)
+--! \li 0x00000010 RW - Interval between internal triggers in ticks of logic_strobe_i
+--! \li 0x00000011 RW - trigger pattern - value that gets loaded into CFGLUT5
+--! \li 0x00000100 RW - bit-0 - internal trigger veto. Set high to halt triggers.
+--! \li 0x00000101 RO - state of external veto
+--! \li 0x00000110 RW - stretch of pulses. Additional width = 0-31 clock cycles.
+--! \li 0x00000111 RW - delay of pulses. 0-31 clock cycles.
+--!
+--! <b>Modified by: Alvaro Dosil , alvaro.dosil@usc.es </b>\n
+-------------------------------------------------------------------------------
+--! \n\n<b>Last changes:</b>\n
+--! Move all IPBus stuff into ipbus_syncreg_v , which also handles clock domain
+--! crossing. 20/Feb/2014 , David Cussans
+--! Add stretchPulse and coincidenceLogic entities. May/15 , David Cussans
+-------------------------------------------------------------------------------
+ENTITY triggerLogic IS
+   GENERIC( 
+      g_NUM_INPUTS  : positive := 4; 
+      g_IPBUS_WIDTH : positive := 32 
+   );
+   PORT( 
+      clk_4x_logic_i      : IN     std_logic;                                     -- ! Rising edge active
+      ipbus_clk_i         : IN     std_logic;
+      ipbus_i             : IN     ipb_wbus;                                      -- Signals from IPBus core to slave
+      ipbus_reset_i       : IN     std_logic;
+      logic_reset_i       : IN     std_logic;                                     -- active high. Synchronous with clk_4x_logic
+      logic_strobe_i      : IN     std_logic;                                     -- ! Pulses high once every 4 cycles of clk_4x_logic
+      trigger_i           : IN     std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);    -- ! High when trigger from input connector active
+      trigger_times_i     : IN     t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);  --! trigger arrival time
+      veto_i              : IN     std_logic;                                     -- ! Halts triggers when high
+      trigger_o           : OUT    std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);    -- ! High when trigger from input connector active and enabled
+      trigger_times_o     : OUT    t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);  --! trigger arrival time
+      event_number_o      : OUT    std_logic_vector (g_IPBUS_WIDTH-1 DOWNTO 0);   -- starts at one. Increments for each post_veto_trigger
+      ipbus_o             : OUT    ipb_rbus;                                      -- signals from slave to IPBus core
+      post_veto_trigger_o : OUT    std_logic;                                     -- ! goes high when trigger passes
+      pre_veto_trigger_o  : OUT    std_logic;
+      trigger_active_o    : OUT    std_logic                                      --! Goes high when triggers are active ( ie. not veoted)
+   );
+
+-- Declarations
+
+END triggerLogic ;
+
+--
+ARCHITECTURE rtl OF triggerLogic IS
+
+    --! vector that stores trigger output for each combination of trigger inputs.
+    signal s_trigger_inputs_enabled , s_trigger_inputs_enabled_ipb : std_logic_vector(g_IPBUS_WIDTH-1 downto 0) := x"00000001";--(others=>'1');  
+    signal s_external_trigger_p , s_external_trigger_l , s_auxTrigger , s_internal_veto , s_internal_veto_ipb : std_logic := '0';
+    signal s_internal_trigger_interval: std_logic_vector(g_IPBUS_WIDTH-1 downto 0) := (others => '0');  -- setting s_internal_trigger_interval to zero means no internal triggers
+    signal s_pre_veto_trigger_counter , s_post_veto_trigger_counter , s_aux_trigger_counter: unsigned(g_IPBUS_WIDTH-1 downto 0) := (others => '0');  -- ! counters for triggers before and after veto
+    signal s_pre_veto_trigger_counter_ipb , s_post_veto_trigger_counter_ipb : std_logic_vector(g_IPBUS_WIDTH-1 downto 0) := (others => '0');  -- ! counters for triggers before and after veto, on ipbus clock domain
+    
+    signal s_triggers : std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0) := (others=>'0');
+    signal s_trigger_times : t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0) := (others=>(others=>'0'));
+    signal s_internal_trigger, s_internal_trigger_d : std_logic := '0';  -- ! Strobes high for one clock cycle at intervals of s_internal_trigger_interval cycles
+    --  signal s_internal_trigger_timer : unsigned(g_IPBUS_WIDTH-1 downto 0) := (others => '0');  -- counter for internal trigger generation
+    signal s_internal_trigger_timer , s_internal_trigger_timer_d : std_logic_vector(g_IPBUS_WIDTH-1 downto 0) := (others => '0');  -- counter for internal trigger generation and counter delay
+    signal s_internal_trigger_active , s_internal_trigger_active_d, s_internal_trigger_active_ipb : std_logic := '0';  -- ! Goes high when internal trigger is running.
+    
+    --  signal s_logic_reset ,  s_logic_reset_ipb : std_logic := '0';  -- ! Take high to reset counters etc.
+    signal s_pre_veto_trigger ,s_post_veto_trigger : std_logic := '0';  -- ! Can't read from an output port so keep internal copy
+    
+    signal s_TriggerPattern_low : std_logic_vector(g_IPBUS_WIDTH-1 downto 0) := (others => '0');  --! Pattern to load into LUT for trigger generation (low 32-bits)
+    signal s_TriggerPattern_high : std_logic_vector(g_IPBUS_WIDTH-1 downto 0) := (others => '0');  --! Pattern to load into LUT for trigger generation (high 32-bits)
+    
+    signal s_PulseStretchWord : std_logic_vector(g_IPBUS_WIDTH-1 downto 0) := (others => '0');  --! Length of trigger pulses
+    signal s_PulseWidthWord : std_logic_vector(g_IPBUS_WIDTH-1 downto 0) := (others => '0');  --! Length of trigger pulses
+    signal s_PulseDelayWord : std_logic_vector(g_IPBUS_WIDTH-1 downto 0) := (others => '0');  --!number of cycles to delay trigger pulses.
+    signal s_TriggerHoldOffWord : std_logic_vector(g_IPBUS_WIDTH-1 downto 0) := (others => '0'); --! minimum number of clock cycles between triggers
+    
+    constant c_PARAM_WIDTH : positive := 5;    -- length of pulse width and delay.
+    constant c_BYTE_WIDTH : positive := 5;    --Length of padded field for parameters. This should be at least equal to c_PARAM_WIDTH.
+                                              --If c_BYTE_WIDTH= 8 then the values are aligned to bytes in the 32-bit word (but we cannot store 6 of them...)
+                                              --If c_BYTE_WIDTH=5 then all the values are one after the other.
+    
+    constant c_N_CTRL : positive := 16;
+    constant c_N_STAT : positive := 16;
+    signal s_controlRegStrobes : std_logic_vector(c_N_CTRL-1 downto 0) := ( others => '0') ; --!
+                                                                             --Bit strobes when control reg is loaded
+    signal s_status_to_ipbus, s_sync_status_to_ipbus : ipb_reg_v(c_N_STAT-1 downto 0);
+    signal s_control_from_ipbus,s_sync_control_from_ipbus  : ipb_reg_v(c_N_CTRL-1 downto 0);
+    signal s_veto_word : std_logic_vector(g_IPBUS_WIDTH-1 downto 0) := (others => '0');
+    signal s_external_veto_word : std_logic_vector(g_IPBUS_WIDTH-1 downto 0) := (others => '0');
+    signal s_loadTriggerPattern , s_loadTriggerPattern_p1 : std_logic := '0';  -- take high to load trigger pattern
+    signal s_loadTriggerPatternHi , s_loadTriggerPatternHi_p1 : std_logic := '0';  -- take high to load trigger pattern
+    
+    signal s_delayedTriggerTimes, s_delayedTriggerTimes_d1, s_delayedTriggerTimes_d2 : t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);  --! Array of std_logic_vectors
+    signal s_stretchedTriggers ,  s_stretchedTriggers_d1 ,  s_stretchedTriggers_d2 : std_logic_vector( trigger_i'range) := (others => '0');  -- --! Triggers after stretch and delay
+    
+    COMPONENT internalTriggerGenerator
+    PORT (
+        CLK : IN STD_LOGIC;
+        CE : IN STD_LOGIC;
+        LOAD : IN STD_LOGIC;
+        L : IN STD_LOGIC_VECTOR(31 DOWNTO 0);
+        Q : OUT STD_LOGIC_VECTOR(31 DOWNTO 0)
+    );
+    END COMPONENT;
+  
+BEGIN
+  -----------------------------------------------------------------------------
+  -- IPBus interface 
+  -----------------------------------------------------------------------------
+    ipbus_registers: entity work.ipbus_ctrlreg_v
+    generic map(
+        N_CTRL => c_N_CTRL,
+        N_STAT => c_N_STAT
+    )
+    port map(
+        clk => ipbus_clk_i,
+        reset=> '0',--ipbus_reset_i ,
+        ipbus_in=>  ipbus_i,
+        ipbus_out=> ipbus_o,
+        d=>  s_sync_status_to_ipbus,
+        q=>  s_control_from_ipbus,
+        stb=> s_controlRegStrobes
+    );
+
+  -- Synchronize registers from logic clock to ipbus.
+    sync_status: entity work.synchronizeRegisters
+    generic map (
+        g_NUM_REGISTERS => c_N_STAT )
+    port map (
+        clk_input_i => clk_4x_logic_i,
+        data_i      =>  s_status_to_ipbus,
+        data_o      => s_sync_status_to_ipbus,
+        clk_output_i => ipbus_clk_i);
+
+    -- Synchronize registers from logic clock to ipbus.
+    sync_ctrl: entity work.synchronizeRegisters
+    generic map (
+        g_NUM_REGISTERS => c_N_CTRL )
+    port map (
+        clk_input_i => ipbus_clk_i,
+        data_i      =>  s_control_from_ipbus,
+        data_o      => s_sync_control_from_ipbus,
+        clk_output_i => clk_4x_logic_i);
+
+  -- Map the control registers
+  -- workaround to match the number of clock cycles with the configured interval
+    s_internal_trigger_interval <= x"00000000" when s_sync_control_from_ipbus(2)<x"00000005" else
+										std_logic_vector(unsigned(s_sync_control_from_ipbus(2))-2);
+										
+    --s_TriggerPattern_low <= s_control_from_ipbus(3);
+    s_LoadTriggerPattern_p1 <= s_controlRegStrobes(10);
+    s_LoadTriggerPatternHi_p1 <= s_controlRegStrobes(11);
+    s_veto_word <= s_sync_control_from_ipbus(4);
+    s_internal_veto <= s_veto_word(0);
+    s_PulseWidthWord <= s_sync_control_from_ipbus(6);
+    s_PulseDelayWord <= s_sync_control_from_ipbus(7);
+    s_TriggerHoldOffWord <= s_sync_control_from_ipbus(8);
+    s_TriggerPattern_low <= s_control_from_ipbus(10);
+    s_TriggerPattern_high <= s_control_from_ipbus(11);
+    --s_PulseWidthWord <=s_sync_control_from_ipbus(10);
+    
+    s_external_veto_word(0) <= veto_i;
+    s_external_veto_word(g_IPBUS_WIDTH-1 downto 1) <= (others=>'0');
+    
+    -- Map the status registers
+    s_status_to_ipbus(0) <= std_logic_vector(s_post_veto_trigger_counter);
+    s_status_to_ipbus(1) <= std_logic_vector(s_pre_veto_trigger_counter);
+    s_status_to_ipbus(2) <= s_internal_trigger_interval;
+    --s_status_to_ipbus(3) <= s_TriggerPattern_low;
+    s_status_to_ipbus(4) <= s_veto_word;
+    s_status_to_ipbus(5) <= s_external_veto_word;
+    s_status_to_ipbus(6) <= s_PulseWidthWord; 
+    s_status_to_ipbus(7) <= s_PulseDelayWord; --fixed in addr. map
+    s_status_to_ipbus(8) <= s_TriggerHoldOffWord;
+    s_status_to_ipbus(9) <= std_logic_vector(s_aux_trigger_counter);-- not used and never updated. Remove at some point.
+    s_status_to_ipbus(10) <= s_TriggerPattern_low;
+    s_status_to_ipbus(11) <= s_TriggerPattern_high;
+
+    -- purpose: Delay pulse that loads trigger pattern by one cycle of IPBus clk.
+    -- type   : combinational
+    -- inputs : ipbus_clk_i
+    -- outputs: 
+    p_delayLoadPulse: process (ipbus_clk_i) is
+    begin  -- process p_delayLoadPulse
+    if rising_edge(ipbus_clk_i) then
+        s_LoadTriggerPattern <= s_LoadTriggerPattern_p1;
+        s_LoadTriggerPatternHi <= s_LoadTriggerPatternHi_p1;
+    end if;
+    end process p_delayLoadPulse;
+
+  -- Stretch and delay pulses.
+  --D Put in delay for trigger times as well.
+  
+    --
+    gen_stretchVals: for v_inputNumber in 0 to g_NUM_INPUTS-1 generate
+        cmp_stretchPulse: entity work.stretchPulse
+        generic map (
+            g_PARAM_WIDTH => c_PARAM_WIDTH)
+        port map (
+            clk_i         => clk_4x_logic_i,
+            pulse_i       => trigger_i(v_inputNumber),
+            pulse_o       => s_stretchedTriggers(v_inputNumber),
+            triggerTime_i => trigger_times_i(v_inputNumber),
+            triggerTime_o => s_delayedTriggerTimes(v_inputNumber),
+    --        pulsewidth_i  => s_PulseStretchWord( (v_inputNumber*c_BYTE_WIDTH) + c_PARAM_WIDTH -1 downto v_inputNumber*c_BYTE_WIDTH ),
+            pulsewidth_i  => s_PulseWidthWord( (v_inputNumber*c_BYTE_WIDTH) + c_PARAM_WIDTH -1 downto v_inputNumber*c_BYTE_WIDTH ),
+            pulseDelay_i  => s_PulseDelayWord( (v_inputNumber*c_BYTE_WIDTH) + c_PARAM_WIDTH -1 downto v_inputNumber*c_BYTE_WIDTH )
+    --        pulsewidth_i  => s_PulseStretchWord( (0*c_BYTE_WIDTH) + c_PARAM_WIDTH -1 downto 0*c_BYTE_WIDTH ),
+    --        pulseDelay_i  => s_PulseDelayWord(   (0*c_BYTE_WIDTH) + c_PARAM_WIDTH -1 downto 0*c_BYTE_WIDTH )
+            );
+    end generate gen_stretchVals;
+
+  --! Trigger coincidence logic 
+    cmp_coincidence_logic : entity work.coincidenceLogic
+    generic map(
+        g_nInputs	=> g_NUM_INPUTS,
+        g_patternWidth => g_IPBUS_WIDTH
+    )
+    Port map( 
+        configClk_i 	=> ipbus_clk_i, --! No point in moving off IPBus clock
+        logicClk_i        => clk_4x_logic_i,
+        triggers_i 	=> s_stretchedTriggers,
+        trigger_o         => s_external_trigger_l,
+        --auxTrigger_o      => s_auxTrigger,
+        -- Control ports...
+        triggerPattern_low_i  => s_TriggerPattern_low,
+        triggerPattern_high_i  => s_TriggerPattern_high,
+        loadPatternHi_i     => s_loadTriggerPatternHi,
+        loadPatternLo_i     => s_loadTriggerPattern
+        );
+	
+  --! just look for the rising edge ( with long stretch can get multiple clock
+  --! cycle triggers )
+    cmp_triggerRisingEdge : entity work.single_pulse
+    port map (
+        level => s_external_trigger_l,
+        clk => clk_4x_logic_i,
+        pulse => s_external_trigger_p
+        );
+  
+  --! Produce triggers....
+    trigGen : process  ( clk_4x_logic_i ) 
+    begin 
+        if rising_edge(clk_4x_logic_i)  then 
+            s_post_veto_trigger <= (s_external_trigger_p or s_internal_trigger) and (not ( s_internal_veto or veto_i) );
+            s_pre_veto_trigger <= (s_external_trigger_p or s_internal_trigger);
+    
+            -- delay output of which input triggers fired so that they go high at the
+            -- same time as the pre/post veto trigger signals.
+            s_stretchedTriggers_d1 <= s_stretchedTriggers;
+            s_stretchedTriggers_d2 <= s_stretchedTriggers_d1;
+                                                            
+            s_delayedTriggerTimes_d1 <= s_delayedTriggerTimes;
+            s_delayedTriggerTimes_d2 <= s_delayedTriggerTimes_d1;
+             
+            trigger_o <= s_stretchedTriggers_d2;
+            trigger_times_o <= s_delayedTriggerTimes_d2; -- trigger_times_i;  -- put delayed version of trigger times here
+        end if;
+    end process;
+	
+
+    pre_veto_trigger_o <= s_pre_veto_trigger ;
+    post_veto_trigger_o <= s_post_veto_trigger;
+    trigger_active_o <= s_post_veto_trigger;
+
+	
+	--! Internal trigger generator
+    p_internal_triggers: process (clk_4x_logic_i )
+    begin  -- process p_internal_triggers
+        if rising_edge(clk_4x_logic_i) then
+            if (s_internal_trigger_interval = x"00000000") then
+                s_internal_trigger_active <= '0';
+            else
+                s_internal_trigger_active <= '1';
+            end if;
+        
+            s_internal_trigger_active_d <= s_internal_trigger_active;    -- signal delayed
+            s_internal_trigger_timer_d <= s_internal_trigger_timer;      -- Signal delayed
+        end if;
+    end process p_internal_triggers;
+  
+    s_internal_trigger <= '1' when (s_internal_trigger_timer = ( x"00000000" )) and (s_internal_trigger_timer_d = ( x"00000001" )) else '0';
+				
+				
+				
+    -- Use a coregen counter to allow timing constraints to be met.
+    --c_internal_triggers: entity work.internalTriggerGenerator
+    c_internal_triggers: internalTriggerGenerator
+    PORT MAP (
+        clk => clk_4x_logic_i,
+        ce => s_internal_trigger_active,
+        load => s_internal_trigger or (s_internal_trigger_active and not s_internal_trigger_active_d),
+        l => s_internal_trigger_interval,
+        q => s_internal_trigger_timer
+    );
+  
+  -----------------------------------------------------------------------------
+  -- Count triggers
+  -----------------------------------------------------------------------------
+    p_trigger_counter: process (clk_4x_logic_i )
+    begin  -- process p_trigger_counter
+        if rising_edge(clk_4x_logic_i) then
+            if logic_reset_i = '1' then
+                s_post_veto_trigger_counter <= ( others => '0');
+            elsif s_post_veto_trigger = '1' then
+                s_post_veto_trigger_counter <= s_post_veto_trigger_counter + 1;
+            end if;
+            
+            if logic_reset_i = '1' then
+                s_pre_veto_trigger_counter <= ( others => '0');
+            elsif s_pre_veto_trigger = '1' then
+                s_pre_veto_trigger_counter <= s_pre_veto_trigger_counter + 1;
+            end if;
+            
+            --if logic_reset_i = '1' then
+            --    s_aux_trigger_counter <= ( others => '0');
+            --elsif s_auxTrigger = '1' then
+            --    s_aux_trigger_counter <= s_aux_trigger_counter + 1;
+            --end if;
+        end if;
+    end process p_trigger_counter;
+ 
+    event_number_o <= std_logic_vector(s_post_veto_trigger_counter);
+  
+END ARCHITECTURE rtl;
+
diff --git a/legacy/TLU_v1c/scripts/500ns_23ns.txt b/legacy/TLU_v1c/scripts/500ns_23ns.txt
new file mode 100644
index 00000000..7d050b42
--- /dev/null
+++ b/legacy/TLU_v1c/scripts/500ns_23ns.txt
@@ -0,0 +1,8048 @@
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000015250000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000507825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000015250000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000250000000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000250000000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000250000000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000507825000000
+0.0000004437400000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000507825000000
+0.0000004437400000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000515650000000
+0.0000004437400000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000515650000000
+0.0000004437400000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000015250000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000250000000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000507825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000015250000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000250000000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000004437400000000
+0.0000000507825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000004437400000000
+0.0000000507825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000507824999999
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000507824999999
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000265650000000
+0.0000000250000000000
+0.0000000257824999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000515650000000
+0.0000000257825000000
+0.0000000250000000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000250000000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000515650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000250000000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000515650000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257824999999
+0.0000000250000000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000507825000000
+0.0000000257825000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000507825000000
+0.0000000257825000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000507825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000515650000000
+0.0000000257825000000
+0.0000000250000000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000250000000000
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000515650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000265650000000
+0.0000000507824999999
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000015250000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000507824999999
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265649999999
+0.0000000015250000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000515650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000015250000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000515650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000015250000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000250000000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000515650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000015250000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000250000000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000507824999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000015250000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000507824999999
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000250000000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000250000000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000515650000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000515650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000250000000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000250000000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000507825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000250000000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000001
+0.0000000250000000000
+0.0000000257825000001
+0.0000004437399999999
+0.0000000515650000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000250000000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000001
+0.0000000265649999999
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000515650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265649999999
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257824999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257824999999
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000000
+0.0000004437399999999
+0.0000000507825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265649999999
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265649999999
+0.0000000507825000000
+0.0000004437399999999
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265649999999
+0.0000000257825000001
+0.0000000257825000000
+0.0000000015250000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265649999999
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000257824999999
+0.0000000257825000001
+0.0000004437399999999
+0.0000000515650000001
+0.0000000257825000000
+0.0000000250000000001
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000257824999999
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257824999999
+0.0000000250000000000
+0.0000000257825000000
+0.0000000265650000001
+0.0000000257824999999
+0.0000000257825000000
+0.0000000265650000001
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265649999999
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000001
+0.0000000257824999999
+0.0000000257825000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265649999999
+0.0000000507825000000
+0.0000004437399999999
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000015250000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000001
+0.0000000257824999999
+0.0000000257825000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000515650000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265649999999
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000001
+0.0000000257824999999
+0.0000000257825000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000001
+0.0000000257824999999
+0.0000000250000000001
+0.0000004437399999999
+0.0000000515650000001
+0.0000000257825000000
+0.0000000250000000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000001
+0.0000000257824999999
+0.0000000257825000001
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265649999999
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000004437399999999
+0.0000000507825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000265650000001
+0.0000000265649999999
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265649999999
+0.0000000507825000000
+0.0000004437399999999
+0.0000000257825000001
+0.0000000265650000000
+0.0000000257824999999
+0.0000000250000000001
+0.0000000257825000000
+0.0000000015250000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265649999999
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000257824999999
+0.0000000257825000001
+0.0000004437399999999
+0.0000000515650000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000265650000001
+0.0000000257824999999
+0.0000000257825000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000257824999999
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000001
+0.0000000257824999999
+0.0000000257825000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265649999999
+0.0000000515650000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265649999999
+0.0000000257825000001
+0.0000000250000000000
+0.0000000257825000000
+0.0000000265650000001
+0.0000000257824999999
+0.0000000257825000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000515650000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000001
+0.0000000257824999999
+0.0000000250000000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000250000000001
+0.0000000257825000000
+0.0000000515650000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265649999999
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000001
+0.0000000257824999999
+0.0000000257825000001
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265649999999
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000001
+0.0000000257824999999
+0.0000000257825000001
+0.0000004437399999999
+0.0000000515650000001
+0.0000000265650000000
+0.0000000257824999999
+0.0000000257825000001
+0.0000000265650000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000001
+0.0000000257824999999
+0.0000000257825000001
+0.0000000265650000000
+0.0000000257825000000
+0.0000000250000000001
+0.0000000257825000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000004437399999999
+0.0000000507825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000250000000001
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000001
+0.0000000257824999999
+0.0000000257825000000
+0.0000000515650000001
+0.0000004437399999999
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000001
+0.0000000257825000001
+0.0000000265650000000
+0.0000000257824999999
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000001
+0.0000000257824999999
+0.0000000265649999999
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000001
+0.0000000257824999999
+0.0000000257825000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000257824999999
+0.0000000257825000001
+0.0000004437399999999
+0.0000000515650000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000001
+0.0000000250000000000
+0.0000000257825000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000257824999999
+0.0000000250000000001
+0.0000000257825000000
+0.0000000265650000001
+0.0000000257824999999
+0.0000000257825000000
+0.0000000515650000001
+0.0000004437399999999
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000250000000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000001
+0.0000000257824999999
+0.0000000257825000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000515650000000
+0.0000000257825000000
+0.0000000250000000001
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000265650000001
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265649999999
+0.0000000507824999999
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257824999999
+0.0000000257825000001
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000001
+0.0000000257824999999
+0.0000000257825000001
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265649999999
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000000
+0.0000004437399999999
+0.0000000507825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000265650000001
+0.0000000265649999999
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000001
+0.0000000257824999999
+0.0000000507825000000
+0.0000004437399999999
+0.0000000257825000001
+0.0000000265650000000
+0.0000000257824999999
+0.0000000257825000001
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000001
+0.0000000257824999999
+0.0000000250000000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000004437399999999
+0.0000000507825000000
+0.0000000257825000000
+0.0000000265650000001
+0.0000000257824999999
+0.0000000250000000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000250000000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000507825000000
+0.0000000507825000000
+0.0000004437400000000
+0.0000000515650000000
+0.0000004437400000000
+0.0000000515650000000
+0.0000004437400000000
+0.0000000515650000000
+0.0000004437400000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000250000000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000015250000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000250000000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000507825000000
+0.0000000507825000000
+0.0000004437400000000
+0.0000000507825000000
+0.0000000515650000000
+0.0000004437400000000
+0.0000000515650000000
+0.0000000515650000000
+0.0000004437400000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000250000000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000250000000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000015250000000
+0.0000000015250000000
+0.0000000015250000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000250000000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000004437400000000
+0.0000000507825000000
+0.0000000507825000000
+0.0000004437400000000
+0.0000000515650000000
+0.0000000515650000000
+0.0000000515650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000250000000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000015250000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000250000000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000250000000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000507824999999
+0.0000000507824999999
+0.0000000507824999999
+0.0000000515650000000
+0.0000000515650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000250000000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000015250000000
+0.0000000015250000000
+0.0000000015250000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257824999999
+0.0000000257824999999
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265649999999
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000507825000000
+0.0000000507825000000
+0.0000000507824999999
+0.0000000515650000000
+0.0000000515650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000250000000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000015250000000
+0.0000000015250000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257824999999
+0.0000000257824999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000250000000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265649999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000507825000000
+0.0000000507824999999
+0.0000000515650000000
+0.0000000515650000000
+0.0000000515650000000
+0.0000000515650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257824999999
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000015250000000
+0.0000000015250000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257824999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000250000000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000265650000000
+0.0000000265649999999
+0.0000000265649999999
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000507825000000
+0.0000004437399999999
+0.0000000507825000000
+0.0000000515650000001
+0.0000004437399999999
+0.0000000515650000001
+0.0000000515650000000
+0.0000000515650000001
+0.0000004437399999999
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000015250000001
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257824999999
+0.0000000257825000000
+0.0000000257824999999
+0.0000000265649999999
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000265649999999
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265649999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000507824999999
+0.0000000507825000000
+0.0000004437399999999
+0.0000000515650000001
+0.0000000515650000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000250000000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265649999999
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000015250000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265649999999
+0.0000000265649999999
+0.0000000265649999999
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000257824999999
+0.0000000265650000000
+0.0000000265649999999
+0.0000000265649999999
+0.0000000257825000001
+0.0000000257825000000
+0.0000000250000000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000001
+0.0000004437399999999
+0.0000000507825000000
+0.0000000507825000000
+0.0000004437399999999
+0.0000000515650000001
+0.0000000515650000000
+0.0000000515650000001
+0.0000004437399999999
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257824999999
+0.0000000257824999999
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000250000000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000015250000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000257824999999
+0.0000000265650000000
+0.0000000265649999999
+0.0000000265649999999
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257824999999
+0.0000000257824999999
+0.0000000265649999999
+0.0000000265649999999
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257824999999
+0.0000000257824999999
+0.0000000265650000000
+0.0000000265649999999
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000507825000000
+0.0000004437399999999
+0.0000000507825000000
+0.0000000515650000000
+0.0000000515650000001
+0.0000004437399999999
+0.0000000515650000001
+0.0000000515650000001
+0.0000004437399999999
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000265649999999
+0.0000000265649999999
+0.0000000265649999999
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000015250000001
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000257824999999
+0.0000000265649999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000250000000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000257824999999
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000001
+0.0000000250000000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000250000000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257824999999
+0.0000000265649999999
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000250000000001
+0.0000004437399999999
+0.0000000507825000000
+0.0000000507824999999
+0.0000000515650000001
+0.0000004437399999999
+0.0000000515650000001
+0.0000000515650000001
+0.0000004437399999999
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000257824999999
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000015250000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000250000000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000004437400000000
+0.0000000507825000000
+0.0000000507825000000
+0.0000000515650000000
+0.0000004437400000000
+0.0000000515650000000
+0.0000004437400000000
+0.0000000515650000000
+0.0000004437400000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000250000000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000015250000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000507825000000
+0.0000000507825000000
+0.0000004437400000000
+0.0000000507825000000
+0.0000000515650000000
+0.0000004437400000000
+0.0000000515650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000015250000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000250000000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000507825000000
+0.0000004437400000000
+0.0000000507825000000
+0.0000000515650000000
+0.0000004437400000000
+0.0000000515650000000
+0.0000000515650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000015250000000
+0.0000000015250000000
+0.0000000015250000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265649999999
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000250000000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000507824999999
+0.0000000507824999999
+0.0000000515650000000
+0.0000000515650000000
+0.0000000515650000000
+0.0000000257825000000
+0.0000000250000000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000015250000000
+0.0000000015250000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000265649999999
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257824999999
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000250000000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000507824999999
+0.0000000507825000000
+0.0000000507825000000
+0.0000000515650000000
+0.0000000515650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000250000000000
+0.0000000015250000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000507824999999
+0.0000000507825000000
+0.0000000515650000000
+0.0000000515650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000015250000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000250000000000
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000507825000000
+0.0000000507825000000
+0.0000000515650000000
+0.0000000515650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000250000000000
+0.0000000015250000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000250000000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265649999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000250000000001
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000250000000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000250000000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000265650000000
+0.0000000265649999999
+0.0000000265649999999
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000507825000000
+0.0000004437399999999
+0.0000000507825000000
+0.0000000515650000000
+0.0000000515650000001
+0.0000004437399999999
+0.0000000515650000001
+0.0000000515650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000015250000001
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257824999999
+0.0000000257824999999
+0.0000000265650000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000265649999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257824999999
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257824999999
+0.0000000257824999999
+0.0000000265650000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000507825000000
+0.0000004437399999999
+0.0000000507825000000
+0.0000000507824999999
+0.0000000515650000001
+0.0000000515650000000
+0.0000000515650000001
+0.0000004437399999999
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000250000000001
+0.0000000257824999999
+0.0000000257824999999
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000015250000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000257824999999
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000257824999999
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000265650000000
+0.0000000265649999999
+0.0000000265649999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000250000000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257824999999
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000004437399999999
+0.0000000507825000000
+0.0000000507825000000
+0.0000004437399999999
+0.0000000515650000001
+0.0000000515650000000
+0.0000000515650000001
+0.0000004437399999999
+0.0000000515650000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257824999999
+0.0000000265650000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000001
+0.0000000250000000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000015250000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000257825000000
+0.0000000250000000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257824999999
+0.0000000257824999999
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257824999999
+0.0000000257824999999
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257824999999
+0.0000000257825000000
+0.0000000257824999999
+0.0000000265649999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000250000000000
+0.0000000507825000000
+0.0000004437399999999
+0.0000000507825000000
+0.0000000515650000000
+0.0000000515650000001
+0.0000000515650000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000265649999999
+0.0000000265650000000
+0.0000000265649999999
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000015250000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000265649999999
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257824999999
+0.0000000257824999999
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000250000000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000265649999999
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265649999999
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000001
+0.0000000257825000000
+0.0000000507824999999
+0.0000000507825000000
+0.0000004437399999999
+0.0000000507825000000
+0.0000000507825000000
+0.0000004437399999999
+0.0000000515650000001
+0.0000000515650000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000250000000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000015250000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000250000000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000250000000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000250000000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000250000000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000507825000000
+0.0000004437400000000
+0.0000000507825000000
+0.0000000515650000000
+0.0000004437400000000
+0.0000000515650000000
+0.0000000515650000000
+0.0000004437400000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000015250000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000250000000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000250000000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000507825000000
+0.0000004437400000000
+0.0000000507825000000
+0.0000000515650000000
+0.0000004437400000000
+0.0000000515650000000
+0.0000000515650000000
+0.0000004437400000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000015250000000
+0.0000000015250000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000250000000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000507825000000
+0.0000000507825000000
+0.0000000515650000000
+0.0000000515650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000250000000000
+0.0000000250000000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000015250000000
+0.0000000015250000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000250000000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257824999999
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000250000000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000250000000000
+0.0000000507824999999
+0.0000000507824999999
+0.0000000515650000000
+0.0000000515650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000250000000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000015250000000
+0.0000000015250000000
+0.0000000015250000000
+0.0000000015250000000
+0.0000000257825000000
+0.0000000250000000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000250000000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000507824999999
+0.0000000507824999999
+0.0000000507825000000
+0.0000000507825000000
+0.0000000515650000000
+0.0000000515650000000
+0.0000000515650000000
+0.0000000515650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000250000000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000015250000000
+0.0000000015250000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000250000000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265649999999
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000265649999999
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000507824999999
+0.0000000507824999999
+0.0000000507825000000
+0.0000000515650000000
+0.0000000515650000000
+0.0000000515650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257824999999
+0.0000000265650000000
+0.0000000265649999999
+0.0000000265649999999
+0.0000000257825000001
+0.0000000257825000000
+0.0000000250000000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000015250000001
+0.0000000015250000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000257824999999
+0.0000000265649999999
+0.0000000265650000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000250000000001
+0.0000000257824999999
+0.0000000257824999999
+0.0000000265650000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265649999999
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257824999999
+0.0000000265650000000
+0.0000000265649999999
+0.0000000265649999999
+0.0000000257825000001
+0.0000000250000000000
+0.0000000507825000000
+0.0000004437399999999
+0.0000000507825000000
+0.0000000515650000000
+0.0000000515650000001
+0.0000004437399999999
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000257824999999
+0.0000000265650000000
+0.0000000265649999999
+0.0000000265649999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000015250000001
+0.0000000015250000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257824999999
+0.0000000257825000000
+0.0000000257824999999
+0.0000000265649999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000250000000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000265649999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000257824999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000250000000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257824999999
+0.0000000257824999999
+0.0000000257825000000
+0.0000000257824999999
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000507824999999
+0.0000000507825000000
+0.0000004437399999999
+0.0000000515650000001
+0.0000000515650000001
+0.0000004437399999999
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000250000000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257824999999
+0.0000000265650000000
+0.0000000265649999999
+0.0000000265649999999
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000015250000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257824999999
+0.0000000257824999999
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265649999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000265650000000
+0.0000000265649999999
+0.0000000265649999999
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257824999999
+0.0000000257824999999
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000250000000001
+0.0000000257824999999
+0.0000000257824999999
+0.0000000265650000000
+0.0000000265649999999
+0.0000000265649999999
+0.0000000257825000001
+0.0000000257825000000
+0.0000000507825000000
+0.0000004437399999999
+0.0000000507825000000
+0.0000000515650000000
+0.0000000515650000001
+0.0000004437399999999
+0.0000000515650000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000250000000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000265650000000
+0.0000000265649999999
+0.0000000265649999999
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000015250000001
+0.0000000015250000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000265650000000
+0.0000000265649999999
+0.0000000265649999999
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257824999999
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265649999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000250000000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000507824999999
+0.0000000507825000000
+0.0000000515650000000
+0.0000000515650000001
+0.0000004437399999999
+0.0000000515650000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000250000000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257824999999
+0.0000000265650000000
+0.0000000265649999999
+0.0000000265649999999
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000015250000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257824999999
+0.0000000257824999999
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000265649999999
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257824999999
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000265650000000
+0.0000000265649999999
+0.0000000265649999999
+0.0000000257825000001
+0.0000000257825000000
+0.0000000507824999999
+0.0000000507825000000
+0.0000000515650000000
+0.0000000515650000001
+0.0000004437399999999
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257824999999
+0.0000000257824999999
+0.0000000265650000000
+0.0000000265649999999
+0.0000000265649999999
+0.0000000257825000001
+0.0000000257825000000
+0.0000000250000000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000015250000001
+0.0000000257825000000
+0.0000000250000000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000507825000000
+0.0000000515650000000
+0.0000004437400000000
+0.0000000515650000000
+0.0000004437400000000
+0.0000000515650000000
+0.0000004437400000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000250000000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000250000000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000015250000000
+0.0000000015250000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000250000000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000004437400000000
+0.0000000507825000000
+0.0000000507825000000
+0.0000004437400000000
+0.0000000515650000000
+0.0000000515650000000
+0.0000004437400000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000015250000000
+0.0000000015250000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000250000000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000250000000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000507825000000
+0.0000004437400000000
+0.0000000507825000000
+0.0000000515650000000
+0.0000004437400000000
+0.0000000515650000000
+0.0000000515650000000
+0.0000004437400000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000015250000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000507824999999
+0.0000000515650000000
+0.0000000515650000000
+0.0000000515650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000250000000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000015250000000
+0.0000000015250000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000250000000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000250000000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000507825000000
+0.0000000507824999999
+0.0000000515650000000
+0.0000000515650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000015250000000
+0.0000000015250000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257824999999
+0.0000000257824999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000250000000000
+0.0000000257824999999
+0.0000000265649999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000507825000000
+0.0000000507824999999
+0.0000000515650000000
+0.0000000515650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000015250000000
+0.0000000015250000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000250000000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257824999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257824999999
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000507825000000
+0.0000000507824999999
+0.0000000515650000000
+0.0000000515650000000
+0.0000000515650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257824999999
+0.0000000250000000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000015250000000
+0.0000000015250000000
+0.0000000015250000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000250000000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000507825000000
+0.0000000515650000000
+0.0000000515650000000
+0.0000000515650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000015250000000
+0.0000000015250000000
+0.0000000015250000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000250000000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257824999999
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265649999999
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000265649999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257824999999
+0.0000000257824999999
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000507825000000
+0.0000004437399999999
+0.0000000507825000000
+0.0000000515650000000
+0.0000000515650000001
+0.0000004437399999999
+0.0000000257825000001
+0.0000000257825000000
+0.0000000250000000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000265650000000
+0.0000000265649999999
+0.0000000265649999999
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000001
+0.0000000015250000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000265650000000
+0.0000000265649999999
+0.0000000265649999999
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000257825000000
+0.0000000250000000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257824999999
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265649999999
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257824999999
+0.0000000265649999999
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000001
+0.0000000257825000000
+0.0000000507824999999
+0.0000000507825000000
+0.0000004437399999999
+0.0000000515650000001
+0.0000000515650000001
+0.0000004437399999999
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257824999999
+0.0000000257824999999
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000015250000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257824999999
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265649999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257824999999
+0.0000000257824999999
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257824999999
+0.0000000257824999999
+0.0000000265650000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000004437399999999
+0.0000000507825000000
+0.0000000507825000000
+0.0000004437399999999
+0.0000000515650000001
+0.0000000515650000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000250000000001
+0.0000000257824999999
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265649999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000257825000000
+0.0000000015250000001
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257824999999
+0.0000000265650000000
+0.0000000265649999999
+0.0000000265649999999
+0.0000000257825000001
+0.0000000250000000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000250000000001
+0.0000000257824999999
+0.0000000257824999999
+0.0000000265650000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000265649999999
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000257824999999
+0.0000000265649999999
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000001
+0.0000000257825000000
+0.0000000507824999999
+0.0000000507825000000
+0.0000004437399999999
+0.0000000515650000001
+0.0000000515650000001
+0.0000004437399999999
+0.0000000515650000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257824999999
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265649999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000015250000001
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257824999999
+0.0000000257824999999
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257824999999
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257824999999
+0.0000000257824999999
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265649999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000250000000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000250000000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000507824999999
+0.0000000507825000000
+0.0000000515650000000
+0.0000000515650000001
+0.0000004437399999999
+0.0000000515650000001
+0.0000000515650000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000257824999999
+0.0000000265649999999
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000001
+0.0000000250000000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000015250000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000507825000000
+0.0000000507825000000
+0.0000004437400000000
+0.0000000515650000000
+0.0000000515650000000
+0.0000004437400000000
+0.0000000515650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000250000000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000015250000000
+0.0000000015250000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000250000000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000250000000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000507825000000
+0.0000004437400000000
+0.0000000507825000000
+0.0000000515650000000
+0.0000004437400000000
+0.0000000515650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000250000000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000250000000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000015250000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000507824999999
+0.0000000515650000000
+0.0000000515650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000015250000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000250000000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000250000000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000507824999999
+0.0000000507825000000
+0.0000000515650000000
+0.0000000515650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000015250000000
+0.0000000015250000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257824999999
+0.0000000250000000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000265649999999
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000507824999999
+0.0000000507824999999
+0.0000000515650000000
+0.0000000515650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000015250000000
+0.0000000015250000000
+0.0000000015250000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257824999999
+0.0000000257824999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265649999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000250000000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000250000000000
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000250000000000
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000507825000000
+0.0000000507824999999
+0.0000000515650000000
+0.0000000515650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000015250000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000507824999999
+0.0000000515650000000
+0.0000000515650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257824999999
+0.0000000265649999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000001
+0.0000000250000000000
+0.0000000257824999999
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257824999999
+0.0000000265650000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000250000000000
+0.0000000507825000000
+0.0000004437399999999
+0.0000000515650000001
+0.0000000515650000001
+0.0000004437399999999
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000265649999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000257825000001
+0.0000000250000000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000250000000001
+0.0000000257824999999
+0.0000000257824999999
+0.0000000265649999999
+0.0000000265649999999
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265649999999
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257824999999
+0.0000000265649999999
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000507825000000
+0.0000004437399999999
+0.0000000507825000000
+0.0000000507825000000
+0.0000004437399999999
+0.0000000515650000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257824999999
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265649999999
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000015250000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257824999999
+0.0000000257824999999
+0.0000000257825000000
+0.0000000265649999999
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000265649999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257824999999
+0.0000000257824999999
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000001
+0.0000000507824999999
+0.0000000507825000000
+0.0000004437399999999
+0.0000000515650000001
+0.0000000515650000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000265649999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000015250000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257824999999
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000250000000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000250000000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000507825000000
+0.0000004437399999999
+0.0000000507825000000
+0.0000000515650000000
+0.0000000515650000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257824999999
+0.0000000265649999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000015250000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257824999999
+0.0000000257824999999
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257824999999
+0.0000000257824999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000507825000000
+0.0000004437399999999
+0.0000000507825000000
+0.0000000515650000001
+0.0000004437399999999
+0.0000000515650000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257824999999
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265649999999
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000015250000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257824999999
+0.0000000265649999999
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000001
+0.0000000257825000000
+0.0000000250000000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257824999999
+0.0000000257824999999
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000257825000001
+0.0000000250000000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000257824999999
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000001
+0.0000004437399999999
+0.0000000507825000000
+0.0000000507824999999
+0.0000000515650000001
+0.0000000515650000000
+0.0000000257825000000
+0.0000000250000000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257824999999
+0.0000000257824999999
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000250000000001
+0.0000000257825000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000257824999999
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257824999999
+0.0000000257825000000
+0.0000000265649999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000507825000000
+0.0000004437399999999
+0.0000000515650000001
+0.0000000515650000001
+0.0000004437399999999
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000265650000001
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000265649999999
+0.0000000265650000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000265650000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000015250000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000250000000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257824999999
+0.0000000265649999999
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000257825000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000265650000000
+0.0000000265650000000
+0.0000000265650000001
+0.0000000257825000000
+0.0000000257825000001
+0.0000000257824999999
+0.0000000257824999999
+0.0000000265650000000
+0.0000000265649999999
+0.0000000257825000000
diff --git a/legacy/TLU_v1c/scripts/500ns_24ns.txt b/legacy/TLU_v1c/scripts/500ns_24ns.txt
new file mode 100644
index 00000000..c6f9734c
--- /dev/null
+++ b/legacy/TLU_v1c/scripts/500ns_24ns.txt
@@ -0,0 +1,665 @@
+0.00000002656500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000230750
+0.00000000152500
+0.00000000309000
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000152500
+0.00000000230750
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000230750
+0.00000000309000
+0.00000000152500
+0.00000000152500
+0.00000000230750
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000230750
+0.00000000309000
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000152500
+0.00000000230750
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000152500
+0.00000000152500
+0.00000000230750
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000309000
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000152500
+0.00000000152500
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000152500
+0.00000000152500
+0.00000000230750
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000309000
+0.00000000152500
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
+0.00000000152500
+0.00000000230750
diff --git a/legacy/TLU_v1c/scripts/AIDA_testScript.py b/legacy/TLU_v1c/scripts/AIDA_testScript.py
new file mode 100644
index 00000000..4b8f5055
--- /dev/null
+++ b/legacy/TLU_v1c/scripts/AIDA_testScript.py
@@ -0,0 +1,183 @@
+# -*- coding: utf-8 -*-
+import uhal
+from I2CuHal import I2CCore
+import time
+#import miniTLU
+from si5345 import si5345
+from AD5665R import AD5665R
+from PCA9539PW import PCA9539PW
+from E24AA025E48T import E24AA025E48T
+
+manager = uhal.ConnectionManager("file://./TLUconnection.xml")
+hw = manager.getDevice("tlu")
+
+# hw.getNode("A").write(255)
+reg = hw.getNode("version").read()
+hw.dispatch()
+print "CHECK REG= ", hex(reg)
+
+
+# #First I2C core
+print ("Instantiating master I2C core:")
+master_I2C= I2CCore(hw, 10, 5, "i2c_master", None)
+master_I2C.state()
+
+
+
+
+#
+# #######################################
+enableCore= True #Only need to run this once, after power-up
+if (enableCore):
+   mystop=True
+   print "  Write RegDir to set I/O[7] to output:"
+   myslave= 0x21
+   mycmd= [0x01, 0x7F]
+   nwords= 1
+   master_I2C.write(myslave, mycmd, mystop)
+
+
+   mystop=False
+   mycmd= [0x01]
+   master_I2C.write(myslave, mycmd, mystop)
+   res= master_I2C.read( myslave, nwords)
+   print "\tPost RegDir: ", res
+# #######################################
+#
+# time.sleep(0.1)
+# #Read the EPROM
+# mystop=False
+# nwords=6
+# myslave= 0x53 #DUNE EPROM 0x53 (Possibly)
+# myaddr= [0xfa]#0xfa
+# master_I2C.write( myslave, myaddr, mystop)
+# #res= master_I2C.read( 0x50, 6)
+# res= master_I2C.read( myslave, nwords)
+# print "  PCB EPROM: "
+# result="\t  "
+# for iaddr in res:
+#    result+="%02x "%(iaddr)
+# print result
+# #######################################
+
+
+#Second I2C core
+#print ("Instantiating SFP I2C core:")
+#clock_I2C= I2CCore(hw, 10, 5, "i2c_sfp", None)
+#clock_I2C.state()
+
+# #Third I2C core
+# print ("Instantiating clock I2C core:")
+# clock_I2C= I2CCore(hw, 10, 5, "i2c_clk", None)
+# clock_I2C.state()
+
+
+# #time.sleep(0.01)
+# #Read the EPROM
+# mystop=False
+# nwords=2
+# myslave= 0x68 #DUNE CLOCK CHIP 0x68
+# myaddr= [0x02 ]#0xfa
+# clock_I2C.write( myslave, myaddr, mystop)
+# #time.sleep(0.1)
+# res= clock_I2C.read( myslave, nwords)
+# print "  CLOCK EPROM: "
+# result="\t  "
+# for iaddr in res:
+#     result+="%02x "%(iaddr)
+# print result
+
+#
+
+#CLOCK CONFIGURATION BEGIN
+zeClock=si5345(master_I2C, 0x68)
+res= zeClock.getDeviceVersion()
+zeClock.checkDesignID()
+#zeClock.setPage(0, True)
+#zeClock.getPage(True)
+clkRegList= zeClock.parse_clk("./../../bitFiles/TLU_CLK_Config.txt")
+zeClock.writeConfiguration(clkRegList)######
+zeClock.writeRegister(0x0536, [0x0B]) #Configures manual switch of inputs
+zeClock.writeRegister(0x0949, [0x0F]) #Enable all inputs
+zeClock.writeRegister(0x052A, [0x05]) #Configures source of input
+iopower= zeClock.readRegister(0x0949, 1)
+print "  Clock IO power: 0x%X" % iopower[0]
+lol= zeClock.readRegister(0x000E, 1)
+print "  Clock LOL: 0x%X" % lol[0]
+los= zeClock.readRegister(0x000D, 1)
+print "  Clock LOS: 0x%X" % los[0]
+#CLOCK CONFIGURATION END
+
+#DAC CONFIGURATION BEGIN
+zeDAC1=AD5665R(master_I2C, 0x13)
+zeDAC1.setIntRef(intRef= False, verbose= True)
+zeDAC1.writeDAC(0x0, 7, verbose= True)#7626
+
+zeDAC2=AD5665R(master_I2C, 0x1F)
+zeDAC2.setIntRef(intRef= False, verbose= True)
+zeDAC2.writeDAC(0x2fff, 3, verbose= True)
+#DAC CONFIGURATION END
+
+#EEPROM BEGIN
+zeEEPROM= E24AA025E48T(master_I2C, 0x50)
+res=zeEEPROM.readEEPROM(0xfa, 6)
+result="  EEPROM ID:\n\t"
+for iaddr in res:
+    result+="%02x "%(iaddr)
+print result
+#EEPROM END
+
+# #I2C EXPANDER CONFIGURATION BEGIN
+IC6=PCA9539PW(master_I2C, 0x74)
+#BANK 0
+IC6.setInvertReg(0, 0x00)# 0= normal
+IC6.setIOReg(0, 0xFF)# 0= output <<<<<<<<<<<<<<<<<<<
+IC6.setOutputs(0, 0xFF)
+res= IC6.getInputs(0)
+print "IC6 read back bank 0: 0x%X" % res[0]
+#
+#BANK 1
+IC6.setInvertReg(1, 0x00)# 0= normal
+IC6.setIOReg(1, 0xFF)# 0= output <<<<<<<<<<<<<<<<<<<
+IC6.setOutputs(1, 0xFF)
+res= IC6.getInputs(1)
+print "IC6 read back bank 1: 0x%X" % res[0]
+
+# # #
+IC7=PCA9539PW(master_I2C, 0x75)
+#BANK 0
+IC7.setInvertReg(0, 0xFF)# 0= normal
+IC7.setIOReg(0, 0xFA)# 0= output <<<<<<<<<<<<<<<<<<<
+IC7.setOutputs(0, 0xFF)
+res= IC7.getInputs(0)
+print "IC7 read back bank 0: 0x%X" % res[0]
+#
+#BANK 1
+IC7.setInvertReg(1, 0x00)# 0= normal
+IC7.setIOReg(1, 0x0F)# 0= output <<<<<<<<<<<<<<<<<<<
+IC7.setOutputs(1, 0xFF)
+res= IC7.getInputs(1)
+print "IC7 read back bank 1: 0x%X" % res[0]
+# #I2C EXPANDER CONFIGURATION END
+
+
+# #Reset counters
+#cmd = int("0x0", 16) #write 0x2 to reset
+#hw.getNode("triggerInputs.SerdesRstW").write(cmd)
+#restatus= hw.getNode("triggerInputs.SerdesRstR").read()
+#hw.dispatch()
+#print "Trigger Reset: 0x%X" % restatus
+## #Read trigger inputs
+#myreg= [-1, -1, -1, -1, -1, -1]
+#for inputN in range(0, 6):
+#  regString= "triggerInputs.ThrCount%dR" % inputN
+#  myreg[inputN]= hw.getNode(regString).read()
+#  hw.dispatch()
+#  print regString, myreg[inputN]
+
+## Read ev formatter
+#cmd = int("0x0", 16) #
+##hw.getNode("Event_Formatter.Enable_Record_Data").write(cmd)
+#efstatus= hw.getNode("Event_Formatter.CurrentTimestampLR").read()
+#hw.dispatch()
+#print "Event Formatter Record: 0x%X" % efstatus
diff --git a/legacy/TLU_v1c/scripts/TLU.py b/legacy/TLU_v1c/scripts/TLU.py
new file mode 100644
index 00000000..c9398feb
--- /dev/null
+++ b/legacy/TLU_v1c/scripts/TLU.py
@@ -0,0 +1,748 @@
+# -*- coding: utf-8 -*-
+import uhal;
+import pprint;
+from FmcTluI2c import *
+from I2CuHal import I2CCore
+from si5345 import si5345 # Library for clock chip
+from AD5665R import AD5665R # Library for DAC
+from PCA9539PW import PCA9539PW # Library for serial line expander
+
+class TLU:
+    """docstring for TLU"""
+    def __init__(self, dev_name, man_file):
+        self.dev_name = dev_name
+        self.manager= uhal.ConnectionManager(man_file)
+        self.hw = self.manager.getDevice(self.dev_name)
+        self.nDUTs= 4 #Number of DUT connectors
+        self.nChannels= 6 #Number of trigger inputs
+        self.VrefInt= 2.5 #Internal DAC voltage reference
+        self.VrefExt= 1.3 #External DAC voltage reference
+        self.intRefOn= False #Internal reference is OFF by default
+
+        self.fwVersion = self.hw.getNode("version").read()
+        self.hw.dispatch()
+        print "TLU FIRMWARE VERSION= " , hex(self.fwVersion)
+
+        # Instantiate a I2C core to configure components
+        self.TLU_I2C= I2CCore(self.hw, 10, 5, "i2c_master", None)
+        #self.TLU_I2C.state()
+
+        enableCore= True #Only need to run this once, after power-up
+        self.enableCore()
+
+        # Instantiate clock chip
+        self.zeClock=si5345(self.TLU_I2C, 0x68)
+        res= self.zeClock.getDeviceVersion()
+        self.zeClock.checkDesignID()
+
+        # Instantiate DACs and configure them to use reference based on TLU setting
+        self.zeDAC1=AD5665R(self.TLU_I2C, 0x13)
+        self.zeDAC2=AD5665R(self.TLU_I2C, 0x1F)
+        self.zeDAC1.setIntRef(self.intRefOn)
+        self.zeDAC2.setIntRef(self.intRefOn)
+
+        # Instantiate the serial line expanders and configure them to default values
+        self.IC6=PCA9539PW(self.TLU_I2C, 0x74)
+        self.IC6.setInvertReg(0, 0x00)# 0= normal, 1= inverted
+        self.IC6.setIOReg(0, 0xFF)# 0= output, 1= input
+        self.IC6.setOutputs(0, 0xFF)# If output, set to 1
+        self.IC6.setInvertReg(1, 0x00)# 0= normal, 1= inverted
+        self.IC6.setIOReg(1, 0xFF)# 0= output, 1= input
+        self.IC6.setOutputs(1, 0xFF)# If output, set to 1
+
+        self.IC7=PCA9539PW(self.TLU_I2C, 0x75)
+        self.IC7.setInvertReg(0, 0x00)# 0= normal, 1= inverted
+        self.IC7.setIOReg(0, 0xFF)# 0= output, 1= input
+        self.IC7.setOutputs(0, 0xFF)# If output, set to 1
+        self.IC7.setInvertReg(1, 0x00)# 0= normal, 1= inverted
+        self.IC7.setIOReg(1, 0xFF)# 0= output, 1= input
+        self.IC7.setOutputs(1, 0xFF)# If output, set to 1
+
+
+##################################################################################################################################
+##################################################################################################################################
+    def DUTOutputs(self, dutN, enable=False, verbose=False):
+        ## Set the status of the transceivers for a specific HDMI connector. When enable= False the transceivers are disabled and the
+        ## connector cannot send signals from FPGA to the outside world. When enable= True then signals from the FPGA will be sent out to the HDMI.
+        ## NOTE: the other direction is always enabled, i.e. signals from the DUTs are always sent to the FPGA.
+        ## NOTE: CLK direction must be defined separately using DUTClkSrc
+
+        if (dutN < 0) | (dutN> (self.nDUTs-1)):
+            print "\tERROR: DUTOutputs. The DUT number must be comprised between 0 and ", self.nDUTs-1
+            return -1
+        bank= dutN//2 # DUT0 and DUT1 are on bank 0. DUT2 and DUT3 on bank 1
+        nibble= dutN%2 # DUT0 and DUT2 are on nibble 0. DUT1 and DUT3 are on nibble 1
+        print "  Setting DUT:", dutN, "to", enable
+        if verbose:
+            print "\tBank", bank, "Nibble", nibble
+        res= self.IC6.getIOReg(bank)
+        oldStatus= res[0]
+        mask= 0xF << 4*nibble
+        newStatus= oldStatus & (~mask)
+        if (not enable): # we want to write 0 to activate the outputs so check opposite of "enable"
+            newStatus |= mask
+        if verbose:
+            print "\tOldStatus= ", "{0:#0{1}x}".format(oldStatus,4), "Mask=" , hex(mask), "newStatus=", "{0:#0{1}x}".format(newStatus,4)
+        self.IC6.setIOReg(bank, newStatus)
+        return newStatus
+
+    def DUTClkSrc(self, dutN, clkSrc=0, verbose= False):
+        ## Allows to choose the source of the clock signal sent to the DUTs over HDMI
+        ## clkSrc= 0: clock disabled
+        ## clkSrc= 1: clock from Si5345
+        ## clkSrc=2: clock from FPGA
+        if (dutN < 0) | (dutN> (self.nDUTs-1)):
+            print "\tERROR: DUTClkSrc. The DUT number must be comprised between 0 and ", self.nDUTs-1
+            return -1
+        if (clkSrc < 0) | (clkSrc> 2):
+            print "\tERROR: DUTClkSrc. clkSrc can only be 0 (disabled), 1 (Si5345) or 2 (FPGA)"
+            return -1
+        bank=0
+        maskLow= 1 << (1* dutN) #CLK FROM FPGA
+        maskHigh= 1<< (1* dutN +4) #CLK FROM Si5345
+        mask= maskLow | maskHigh
+        res= self.IC7.getIOReg(bank)
+        oldStatus= res[0]
+        newStatus= oldStatus & ~mask #set both bits to zero
+        outStat= ""
+        if clkSrc==0:
+            newStatus = newStatus | mask
+            outStat= "disabled"
+        elif clkSrc==1:
+            newStatus = newStatus | maskLow
+            outStat= "Si5435"
+        elif clkSrc==2:
+            newStatus= newStatus | maskHigh
+            outStat= "FPGA"
+        print "  Setting DUT:", dutN, "clock source to", outStat
+        if verbose:
+            print "\tOldStatus= ", "{0:#0{1}x}".format(oldStatus,4), "Mask=" , hex(mask), "newStatus=", "{0:#0{1}x}".format(newStatus,4)
+        self.IC7.setIOReg(bank, newStatus)
+        return newStatus
+
+    def enableClkLEMO(self, enable= False, verbose= False):
+        ## Enable or disable the output clock to the differential LEMO output
+        bank=1
+        mask= 0x10
+        res= self.IC7.getIOReg(bank)
+        oldStatus= res[0]
+        newStatus= oldStatus & ~mask
+        outStat= "enabled"
+        if (not enable): #A 0 activates the output. A 1 disables it.
+            newStatus= newStatus | mask
+            outStat= "disabled"
+        print "  Clk LEMO", outStat
+        if verbose:
+            print "\tOldStatus= ", "{0:#0{1}x}".format(oldStatus,4), "Mask=" , hex(mask), "newStatus=", "{0:#0{1}x}".format(newStatus,4)
+        self.IC7.setIOReg(bank, newStatus)
+        return newStatus
+
+    def enableCore(self):
+        ## At power up the Enclustra I2C lines are disabled (tristate buffer is off).
+        ## This function enables the lines. It is only required once.
+        mystop=True
+        print "  Enabling I2C bus (expect 127):"
+        myslave= 0x21
+        mycmd= [0x01, 0x7F]
+        nwords= 1
+        self.TLU_I2C.write(myslave, mycmd, mystop)
+
+        mystop=False
+        mycmd= [0x01]
+        self.TLU_I2C.write(myslave, mycmd, mystop)
+        res= self.TLU_I2C.read( myslave, nwords)
+        print "\tPost RegDir: ", res
+
+    def getAllChannelsCounts(self):
+        chCounts=[]
+        for ch in range (0,self.nChannels):
+            chCounts.append(int(self.getChCount(ch)))
+        return chCounts
+
+    def getChStatus(self):
+        inputStatus= self.hw.getNode("triggerInputs.SerdesRstR").read()
+        self.hw.dispatch()
+        print "\tInput status= " , hex(inputStatus)
+        return inputStatus
+
+    def getChCount(self, channel):
+        regString= "triggerInputs.ThrCount"+ str(channel)+"R"
+        count = self.hw.getNode(regString).read()
+        self.hw.dispatch()
+        print "\tCh", channel, "Count:" , count
+        return count
+
+    def getClockStatus(self):
+        clockStatus = self.hw.getNode("logic_clocks.LogicClocksCSR").read()
+        self.hw.dispatch()
+        print "  CLOCK STATUS [expected 1]"
+        print "\t", hex(clockStatus)
+        if ( clockStatus == 0 ):
+            "ERROR: Clocks in TLU FPGA are not locked."
+        return clockStatus
+
+    def getDUTmask(self):
+        DUTMaskR = self.hw.getNode("DUTInterfaces.DutMaskR").read()
+        self.hw.dispatch()
+        print "\tDUTMask read back as:" , hex(DUTMaskR)
+        return DUTMaskR
+
+    def getExternalVeto(self):
+        extVeto= self.hw.getNode("triggerLogic.ExternalTriggerVetoR").read()
+        self.hw.dispatch()
+        print "\tEXTERNAL Veto read back as:", hex(extVeto)
+        return extVeto
+
+    def getFifoData(self, nWords):
+    	#fifoData= self.hw.getNode("eventBuffer.EventFifoData").read()
+    	fifoData= self.hw.getNode("eventBuffer.EventFifoData").readBlock (nWords);
+    	self.hw.dispatch()
+    	#print "\tFIFO Data:", hex(fifoData)
+    	return fifoData
+
+    def getFifoLevel(self):
+        FifoFill= self.hw.getNode("eventBuffer.EventFifoFillLevel").read()
+        self.hw.dispatch()
+        print "\tFIFO level read back as:", hex(FifoFill)
+        return FifoFill
+
+    def getFifoCSR(self):
+        FifoCSR= self.hw.getNode("eventBuffer.EventFifoCSR").read()
+        self.hw.dispatch()
+        print "\tFIFO CSR read back as:", hex(FifoCSR)
+        return FifoCSR
+
+    def getInternalTrg(self):
+        trigIntervalR = self.hw.getNode("triggerLogic.InternalTriggerIntervalR").read()
+        self.hw.dispatch()
+        print "\tTrigger frequency read back as:", trigIntervalR, "Hz"
+        return trigIntervalR
+
+    def getMode(self):
+        DUTInterfaceModeR = self.hw.getNode("DUTInterfaces.DUTInterfaceModeR").read()
+        self.hw.dispatch()
+        print "\tDUT mode read back as:" , hex(DUTInterfaceModeR)
+        return DUTInterfaceModeR
+
+    def getModeModifier(self):
+        DUTInterfaceModeModifierR = self.hw.getNode("DUTInterfaces.DUTInterfaceModeModifierR").read()
+        self.hw.dispatch()
+        print "\tDUT mode modifier read back as:" , hex(DUTInterfaceModeModifierR)
+        return DUTInterfaceModeModifierR
+
+    def getSN(self):
+        epromcontent=self.readEEPROM(0xfa, 6)
+        print "  FMC-TLU serial number (EEPROM):"
+        result="\t"
+        for iaddr in epromcontent:
+            result+="%02x "%(iaddr)
+        print result
+        return epromcontent
+
+    def getPostVetoTrg(self):
+        triggerN = self.hw.getNode("triggerLogic.PostVetoTriggersR").read()
+        self.hw.dispatch()
+        print "\tPOST VETO TRIGGER NUMBER:", (triggerN)
+        return triggerN
+
+    def getPulseDelay(self):
+        pulseDelayR = self.hw.getNode("triggerLogic.PulseDelayR").read()
+        self.hw.dispatch()
+        print "\tPulse delay read back as:", hex(pulseDelayR)
+        return pulseDelayR
+
+    def getPulseStretch(self):
+        pulseStretchR = self.hw.getNode("triggerLogic.PulseStretchR").read()
+        self.hw.dispatch()
+        print "\tPulse stretch read back as:", hex(pulseStretchR)
+        return pulseStretchR
+
+    def getRecordDataStatus(self):
+        RecordStatus= self.hw.getNode("Event_Formatter.Enable_Record_Data").read()
+        self.hw.dispatch()
+        print "\tData recording:", RecordStatus
+        return RecordStatus
+
+    def getTriggerVetoStatus(self):
+        trgVetoStatus= self.hw.getNode("triggerLogic.TriggerVetoR").read()
+        self.hw.dispatch()
+        print "\tTrigger veto status read back as:", trgVetoStatus
+        return trgVetoStatus
+
+    def getTrgPattern(self):
+        triggerPattern_low = self.hw.getNode("triggerLogic.TriggerPattern_lowR").read()
+        triggerPattern_high = self.hw.getNode("triggerLogic.TriggerPattern_highR").read()
+        self.hw.dispatch()
+        print "\tTrigger pattern read back as: 0x%08X 0x%08X" %(triggerPattern_high, triggerPattern_low)
+        return triggerPattern_low, triggerPattern_high
+
+    def getVetoDUT(self):
+        IgnoreDUTBusyR = self.hw.getNode("DUTInterfaces.IgnoreDUTBusyR").read()
+        self.hw.dispatch()
+        print "\tIgnoreDUTBusy read back as:" , hex(IgnoreDUTBusyR)
+        return IgnoreDUTBusyR
+
+    def getVetoShutters(self):
+        IgnoreShutterVeto = self.hw.getNode("DUTInterfaces.IgnoreShutterVetoR").read()
+        self.hw.dispatch()
+        print "\tIgnoreShutterVeto read back as:" , IgnoreShutterVeto
+        return IgnoreShutterVeto
+
+    def pulseT0(self):
+        cmd = int("0x1",16)
+        self.hw.getNode("Shutter.PulseT0").write(cmd)
+        self.hw.dispatch()
+        print "\tPulsing T0"
+
+    def readEEPROM(self, startadd, bytes):
+        mystop= 1
+        time.sleep(0.1)
+        myaddr= [startadd]#0xfa
+        self.TLU_I2C.write( 0x50, [startadd], mystop)
+        res= self.TLU_I2C.read( 0x50, bytes)
+        return res
+
+    def resetClock(self):
+        # Set the RST pin from the PLL to 1
+        print "  Clocks reset"
+        cmd = int("0x1",16)
+        self.hw.getNode("logic_clocks.LogicRst").write(cmd)
+        self.hw.dispatch()
+
+    def resetClocks(self):
+        #Reset clock PLL
+        self.resetClock()
+        #Get clock status after reset
+        self.getClockStatus()
+        #Restore clock PLL
+        self.restoreClock()
+        #Get clock status after restore
+        self.getClockStatus()
+        #Get serdes status
+        self.getChStatus()
+
+    def resetCounters(self):
+    	cmd = int("0x2", 16) #write 0x2 to reset
+    	self.hw.getNode("triggerInputs.SerdesRstW").write(cmd)
+    	restatus= self.hw.getNode("triggerInputs.SerdesRstR").read()
+    	self.hw.dispatch()
+    	cmd = int("0x0", 16) #write 0x2 to reset
+    	self.hw.getNode("triggerInputs.SerdesRstW").write(cmd)
+    	restatus= self.hw.getNode("triggerInputs.SerdesRstR").read()
+    	self.hw.dispatch()
+    	#print "Trigger Reset: 0x%X" % restatus
+    	print "\tTrigger counters reset"
+
+    def resetSerdes(self):
+        cmd = int("0x3",16)
+        self.setChStatus(cmd)
+        inputStatus= self.getChStatus()
+        print "\t  Input status during reset = " , hex(inputStatus)
+
+        cmd = int("0x0",16)
+        self.setChStatus(cmd)
+        inputStatus= self.getChStatus()
+        print "\t  Input status after reset = " , hex(inputStatus)
+
+        cmd = int("0x4",16)
+        self.setChStatus(cmd)
+        inputStatus= self.getChStatus()
+        print "\t  Input status during calibration = " , hex(inputStatus)
+
+        cmd = int("0x0",16)
+        self.setChStatus(cmd)
+        inputStatus= self.getChStatus()
+        print "\t  Input status after calibration = " , hex(inputStatus)
+
+    def restoreClock(self):
+        # Set the RST pin from the PLL to 0
+        print "  Clocks restore"
+        cmd = int("0x0",16)
+        self.hw.getNode("logic_clocks.LogicRst").write(cmd)
+        self.hw.dispatch()
+
+    def setChStatus(self, cmd):
+        self.hw.getNode("triggerInputs.SerdesRstW").write(cmd)
+        inputStatus= self.hw.getNode("triggerInputs.SerdesRstR").read()
+        self.hw.dispatch()
+        print "  INPUT STATUS SET TO= " , hex(inputStatus)
+
+    def setClockStatus(self, cmd):
+        # Only use this for testing. The clock source is actually selected in the Si5345.
+        self.hw.getNode("logic_clocks.LogicClocksCSR").write(cmd)
+        self.hw.dispatch()
+
+    def setDUTmask(self, DUTMask):
+        print "  DUT MASK ENABLING: Mask= " , hex(DUTMask)
+        self.hw.getNode("DUTInterfaces.DutMaskW").write(DUTMask)
+        self.hw.dispatch()
+        self.getDUTmask()
+
+    def setFifoCSR(self, cmd):
+        self.hw.getNode("eventBuffer.EventFifoCSR").write(cmd)
+        self.hw.dispatch()
+        self.getFifoCSR()
+
+    def setInternalTrg(self, triggerInterval):
+        print "  TRIGGERS INTERNAL:"
+        if triggerInterval == 0:
+            internalTriggerFreq = 0
+            print "\tdisabled"
+        else:
+            internalTriggerFreq = 160000.0/triggerInterval
+            print "\t  Setting:", internalTriggerFreq, "Hz"
+        self.hw.getNode("triggerLogic.InternalTriggerIntervalW").write(int(internalTriggerFreq))
+        self.hw.dispatch()
+        self.getInternalTrg()
+
+    def setMode(self, mode):
+        print "  DUT MODE SET TO: ", hex(mode)
+        self.hw.getNode("DUTInterfaces.DUTInterfaceModeW").write(mode)
+        self.hw.dispatch()
+        self.getMode()
+
+    def setModeModifier(self, modifier):
+        print "  DUT MODE MODIFIER:", hex(modifier)
+        self.hw.getNode("DUTInterfaces.DUTInterfaceModeModifierW").write(modifier)
+        self.hw.dispatch()
+        self.getModeModifier()
+
+    def setPulseDelay(self, pulseDelay):
+        print "  TRIGGER DELAY SET TO", hex(pulseDelay), "[Units= 160MHz clock, 5-bit values (one per input) packed in to 32-bit word]"
+        self.hw.getNode("triggerLogic.PulseDelayW").write(pulseDelay)
+        self.hw.dispatch()
+        self.getPulseDelay()
+
+    def setPulseStretch(self, pulseStretch):
+        print "  INPUT COINCIDENCE WINDOW SET TO", hex(pulseStretch) ,"[Units= 160MHz clock cycles, 5-bit values (one per input) packed in to 32-bit word]"
+        self.hw.getNode("triggerLogic.PulseStretchW").write(pulseStretch)
+        self.hw.dispatch()
+        self.getPulseStretch()
+
+    def setRecordDataStatus(self, status=False):
+        print "  Data recording set:"
+        self.hw.getNode("Event_Formatter.Enable_Record_Data").write(status)
+        self.hw.dispatch()
+        self.getRecordDataStatus()
+
+    def setTriggerVetoStatus(self, status=False):
+        self.hw.getNode("triggerLogic.TriggerVetoW").write(status)
+        self.hw.dispatch()
+        self.getTriggerVetoStatus()
+
+    def setTrgPattern(self, triggerPatternH, triggerPatternL):
+        triggerPatternL &= 0xffffffff
+        triggerPatternH &= 0xffffffff
+        print "  TRIGGER PATTERN (for external triggers) SET TO 0x%08X 0x%08X. Two 32-bit words." %(triggerPatternH, triggerPatternL)
+        self.hw.getNode("triggerLogic.TriggerPattern_lowW").write(triggerPatternL)
+        self.hw.getNode("triggerLogic.TriggerPattern_highW").write(triggerPatternH)
+        self.hw.dispatch()
+        self.getTrgPattern()
+
+    def setVetoDUT(self, ignoreDUTBusy):
+        print "  VETO IGNORE BY DUT BUSY MASK SET TO" , hex(ignoreDUTBusy)
+        self.hw.getNode("DUTInterfaces.IgnoreDUTBusyW").write(ignoreDUTBusy)
+        self.hw.dispatch()
+        self.getVetoDUT()
+
+    def setVetoShutters(self, newState):
+        if newState:
+            print "  IgnoreShutterVetoW SET TO LISTEN FOR VETO FROM SHUTTER"
+            cmd= int("0x0",16)
+        else:
+            print "  IgnoreShutterVetoW SET TO IGNORE VETO FROM SHUTTER"
+            cmd= int("0x1",16)
+        self.hw.getNode("DUTInterfaces.IgnoreShutterVetoW").write(cmd)
+        self.hw.dispatch()
+        self.getVetoShutters()
+
+    def writeThreshold(self, DACtarget, Vtarget, channel):
+        #Writes the threshold. The DAC voltage differs from the threshold voltage because
+        #the range is shifted to be symmetrical around 0V.
+
+        #Check if the DACs are using the internal reference
+        if (self.intRefOn):
+            Vref= self.VrefInt
+        else:
+            Vref= self.VrefExt
+
+        #Calculate offset voltage (because of the following shifter)
+        Vdac= ( Vtarget + Vref ) / 2
+        print"  THRESHOLD setting:"
+        if channel==7:
+            print "\tCH: ALL"
+        else:
+            print "\tCH:", channel
+        print "\tTarget V:", Vtarget
+        dacValue = 0xFFFF * (Vdac / Vref)
+        DACtarget.writeDAC(int(dacValue), channel, True)
+
+    def parseFifoData(self, fifoData, nEvents, verbose):
+        #for index in range(0, len(fifoData)-1, 6):
+        outList= []
+        for index in range(0, (nEvents)*6, 6):
+            word0= (fifoData[index] << 32) + fifoData[index + 1]
+            word1= (fifoData[index + 2] << 32) + fifoData[index + 3]
+            word2= (fifoData[index + 4] << 32) + fifoData[index + 5]
+            evType= (fifoData[index] & 0xF0000000) >> 28
+            inTrig= (fifoData[index] & 0x0FFF0000) >> 16
+            tStamp= ((fifoData[index] & 0x0000FFFF) << 32) + fifoData[index + 1]
+            fineTs= fifoData[index + 2]
+            evNum= fifoData[index + 3]
+            fineTsList=[-1]*12
+            fineTsList[3]= (fineTs & 0x000000FF)
+            fineTsList[2]= (fineTs & 0x0000FF00) >> 8
+            fineTsList[1]= (fineTs & 0x00FF0000) >> 16
+            fineTsList[0]= (fineTs & 0xFF000000) >> 24
+            fineTsList[7]= (fifoData[index + 4] & 0x000000FF)
+            fineTsList[6]= (fifoData[index + 4] & 0x0000FF00) >> 8
+            fineTsList[5]= (fifoData[index + 4] & 0x00FF0000) >> 16
+            fineTsList[4]= (fifoData[index + 4] & 0xFF000000) >> 24
+            fineTsList[11]= (fifoData[index + 5] & 0x000000FF)
+            fineTsList[10]= (fifoData[index + 5] & 0x0000FF00) >> 8
+            fineTsList[9]= (fifoData[index + 5] & 0x00FF0000) >> 16
+            fineTsList[8]= (fifoData[index + 5] & 0xFF000000) >> 24
+            if verbose:
+                print "====== EVENT", evNum, "================================================="
+                print "[", hex(word0), "]", "\t TYPE", hex(evType), "\t TRIGGER", hex(inTrig), "\t TIMESTAMP", (tStamp)
+                print "[",hex(word1), "]", "\tEV NUM", evNum, "\tFINETS[0,3]", hex(fineTs)
+                print "[",hex(word2), "]", "\tFINETS[4,11]", hex(word2)
+                print fineTsList
+            fineTsList.insert(0, tStamp)
+            fineTsList.insert(0, evNum)
+            #print fineTsList
+            outList.insert(len(outList), fineTsList)
+        printdata= False
+        if (printdata):
+            print "=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-="
+            print "EN#\tCOARSE_TS\tFINE_TS0...FINE_TS11"
+            pprint.pprint(outList)
+        return outList
+
+    def plotFifoData(self, outList):
+        import matplotlib.pyplot as plt
+        import numpy as np
+        import matplotlib.mlab as mlab
+
+        coarseColumn= [row[1] for row in outList]
+        fineColumn= [row[2] for row in outList]
+        timeStamp= [sum(x) for x in zip(coarseColumn, fineColumn)]
+        correctTs= [-1]*len(coarseColumn)
+        coarseVal= 0.000000025 #coarse time value (40 Mhz, 25 ns)
+        fineVal=   0.00000000078125 #fine time value (1280 MHz, 0.78125 ns)
+        for iTs in range(0, len(coarseColumn)):
+            correctTs[iTs]= coarseColumn[iTs]*coarseVal + fineColumn[iTs]*fineVal
+            #if iTs:
+                #print correctTs[iTs]-correctTs[iTs-1], "\t ", correctTs[iTs], "\t", coarseColumn[iTs], "\t", fineColumn[iTs]
+
+        xdiff = np.diff(correctTs)
+        np.all(xdiff[0] == xdiff)
+        P= 1000000000 #display in ns
+        nsDeltas = [x * P for x in xdiff]
+        #centerRange= np.mean(nsDeltas)
+        centerRange= 476
+        windowsns= 30
+        minRange= centerRange-windowsns
+        maxRange= centerRange+windowsns
+
+        #Divide figure in two axes
+        plt.subplot(311)
+
+        #Create first histogram
+        plt.hist(nsDeltas, 60, range=[minRange, maxRange], facecolor='blue', align='mid', alpha= 0.75)
+        #plt.hist(nsDeltas, 100, normed=True, facecolor='blue', align='mid', alpha=0.75)
+        #plt.xlim((min(nsDeltas), max(nsDeltas)))
+        plt.xlabel('Time (ns)')
+        plt.ylabel('Entries')
+        plt.title('Histogram DeltaTime')
+        plt.grid(True)
+
+        #Superimpose Gauss to first plot
+        mean = np.mean(nsDeltas)
+        variance = np.var(nsDeltas)
+        sigma = np.sqrt(variance)
+        x = np.linspace(min(nsDeltas), max(nsDeltas), 100)
+        plt.plot(x, mlab.normpdf(x, mean, sigma))
+
+        MSBTs= [-1]*len(fineColumn)
+        LSBTs= [-1]*len(fineColumn)
+        for iTs in range(0, len(fineColumn)):
+            MSBTs[iTs]= fineColumn[iTs] & 0b11000
+            LSBTs[iTs]= fineColumn[iTs] & 0b00111
+            #if iTs:
+                #print correctTs[iTs]-correctTs[iTs-1], "\t ", correctTs[iTs], "\t", coarseColumn[iTs], "\t", fineColumn[iTs]
+
+        #Second plot
+        plt.subplot(312)
+        plt.xlabel('Clock sample')
+        plt.ylabel('Entries')
+        plt.title('Histogram Fine Time Stamp (2 MSB)')
+        plt.grid(True)
+        plt.hist(MSBTs, 100, normed=False, facecolor='blue', align='mid', alpha=0.75)
+
+        #Third plot
+        plt.subplot(313)
+        plt.xlabel('Clock sample')
+        plt.ylabel('Entries')
+        plt.title('Histogram Fine Time Stamp (3 LSB)')
+        plt.grid(True)
+        plt.hist(LSBTs, 100, normed=False, facecolor='blue', align='mid', alpha=0.75)
+
+        #Display plot
+        plt.show()
+
+
+    def saveFifoData(self, outList):
+        import csv
+        with open("output.csv", "wb") as f:
+            writer = csv.writer(f)
+            writer.writerows(outList)
+
+
+##################################################################################################################################
+##################################################################################################################################
+
+    def initialize(self):
+        print "\nTLU INITIALIZING..."
+
+        # We need to pass it listenForTelescopeShutter , pulseDelay , pulseStretch , triggerPattern , DUTMask , ignoreDUTBusy , triggerInterval , thresholdVoltage
+
+        #READ CONTENT OF EPROM VIA I2C
+        self.getSN()
+
+        print "  Turning on software trigger veto"
+        cmd = int("0x1",16)
+        self.setTriggerVetoStatus(cmd)
+
+        #
+        # #SET DACs
+        targetV= -0.12
+        DACchannel= 7
+        self.writeThreshold(self.zeDAC1, targetV, DACchannel, )
+        self.writeThreshold(self.zeDAC2, targetV, DACchannel, )
+
+        #
+        # #ENABLE/DISABLE HDMI OUTPUTS
+        self.DUTOutputs(0, True, False)
+        self.DUTOutputs(1, True, False)
+        self.DUTOutputs(2, True, False)
+        self.DUTOutputs(3, True, False)
+
+        ## ENABLE/DISABLE LEMO CLOCK OUTPUT
+        self.enableClkLEMO(True, False)
+
+        #
+        # #Check clock status
+        self.getClockStatus()
+
+        resetClocks = 0
+        resetSerdes = 0
+        resetCounters= 0
+        if resetClocks:
+            self.resetClocks()
+            self.getClockStatus()
+        if resetSerdes:
+            self.resetSerdes()
+        if resetCounters:
+	    self.resetCounters()
+
+        # # Get inputs status and counters
+        self.getChStatus()
+        self.getAllChannelsCounts()
+        #
+        # # Stop internal triggers until setup complete
+        cmd = int("0x0",16)
+        self.setInternalTrg(cmd)
+        #
+        # # Set pulse stretch
+        pulseStretch= 0x00000000
+        self.setPulseStretch(pulseStretch)
+        #
+        # # Set pulse delay
+        pulseDelay= 0x00
+        self.setPulseDelay(pulseDelay)
+
+        # # Set trigger pattern
+        #triggerPattern_low= 0xFFFEFFFE
+        #triggerPattern_high= 0xFFFFFFFF
+        triggerPattern_low= 0x00010102
+        triggerPattern_low= 0x00000002
+        triggerPattern_high= 0x00000000
+        self.setTrgPattern(triggerPattern_high, triggerPattern_low)
+
+        # # Set DUTs
+        DUTMask= 0xF
+        self.setDUTmask(DUTMask)
+        #
+        # # # Set mode
+        DUTMode= 0xFFFFFFFF
+        self.setMode(DUTMode)
+
+        # # # Set modifier
+        modifier = int("0xFF",16)
+        self.setModeModifier(modifier)
+        #
+        # # Set veto shutter
+        setVetoShutters=0
+        self.setVetoShutters(setVetoShutters)
+
+        # # Set veto by DUT
+        ignoreDUTBusy=0x0
+        self.setVetoDUT(ignoreDUTBusy)
+        self.getExternalVeto()
+        #
+        # # Set trigger interval (use 0 to disable internal triggers)
+        triggerInterval= 0000
+        self.setInternalTrg(triggerInterval)
+
+        print "TLU INITIALIZED"
+
+##################################################################################################################################
+##################################################################################################################################
+    def start(self, logtimestamps=False):
+        print "TLU STARTING..."
+
+        print "  FIFO RESET:"
+        FIFOcmd= 0x2
+        self.setFifoCSR(FIFOcmd)
+
+        eventFifoFillLevel= self.getFifoLevel()
+        cmd = int("0x000",16)
+        self.setInternalTrg(cmd)
+
+        if logtimestamps:
+            self.setRecordDataStatus(True)
+        else:
+            self.setRecordDataStatus(False)
+
+        # Pulse T0
+        self.pulseT0()
+
+        print "  Turning off software trigger veto"
+        cmd = int("0x0",16)
+        self.setTriggerVetoStatus(cmd)
+
+        print "TLU RUNNING"
+
+##################################################################################################################################
+##################################################################################################################################
+    def stop(self):
+        print "TLU STOPPING..."
+
+        self.getPostVetoTrg()
+        eventFifoFillLevel= self.getFifoLevel()
+        print "  Turning on software trigger veto"
+        cmd = int("0x1",16)
+        self.setTriggerVetoStatus(cmd)
+
+        nFifoWords= int(eventFifoFillLevel)
+        fifoData= self.getFifoData(nFifoWords)
+
+        outList= self.parseFifoData(fifoData, nFifoWords/6, False)
+        self.saveFifoData(outList)
+        self.plotFifoData(outList)
+        #outFile = open('./test.txt', 'w')
+        #for iData in range (0, 30):
+    	#    outFile.write("%s\n" % fifoData[iData])
+        #    print hex(fifoData[iData])
+        print "TLU STOPPED"
diff --git a/legacy/TLU_v1c/scripts/TLUaddrmap.xml b/legacy/TLU_v1c/scripts/TLUaddrmap.xml
new file mode 100644
index 00000000..65fb5340
--- /dev/null
+++ b/legacy/TLU_v1c/scripts/TLUaddrmap.xml
@@ -0,0 +1,105 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<node id="TLU">
+
+<!-- Registers for the DUTs. These should be correct -->
+<node id="DUTInterfaces" address="0x1000" description="DUT Interfaces control registers">
+  <node id="DutMaskW"           address="0x0" permission="w" description="" />
+  <node id="IgnoreDUTBusyW"     address="0x1" permission="w" description="" />
+  <node id="IgnoreShutterVetoW" address="0x2" permission="w" description="" />
+  <node id="DUTInterfaceModeW"  address="0x3" permission="w" description="" />
+  <node id="DUTInterfaceModeModifierW"  address="0x4" permission="w" description="" />
+  <node id="DUTInterfaceModeR"  address="0xB" permission="r" description="" />
+  <node id="DUTInterfaceModeModifierR"  address="0xC" permission="r" description="" />
+  <node id="DutMaskR"           address="0x8" permission="r" description="" />
+  <node id="IgnoreDUTBusyR"     address="0x9" permission="r" description="" />
+  <node id="IgnoreShutterVetoR" address="0xA" permission="r" description="" />
+</node>
+
+<node id="Shutter"    address="0x2000" description="Shutter/T0 control">
+  <node id="ShutterStateW" address="0x0" permission="w" description=""/>
+  <node id="PulseT0"  address="0x1" permission="w" description=""/>
+</node>
+<!-- I2C registers. Tested ok.-->
+<node id="i2c_master"      address="0x3000" description="I2C Master interface">
+  <node id="i2c_pre_lo"    address="0x0" mask="0x000000ff" permission="rw" description="" />
+  <node id="i2c_pre_hi"    address="0x1" mask="0x000000ff" permission="rw" description="" />
+  <node id="i2c_ctrl"      address="0x2" mask="0x000000ff" permission="rw" description="" />
+  <node id="i2c_rxtx"      address="0x3" mask="0x000000ff" permission="rw" description="" />
+  <node id="i2c_cmdstatus" address="0x4" mask="0x000000ff" permission="rw" description="" />
+</node>
+<!-- Not sure about the FillLevelFlags register -->
+<node id="eventBuffer" address="0x4000" description="Event buffer">
+  <node id="EventFifoData" address="0x0" mode="non-incremental" size="32000" permission="r" description="" />
+  <node id="EventFifoFillLevel" address="0x1" permission="r" description="" />
+  <node id="EventFifoCSR" address="0x2" permission="rw" description="" />
+  <node id="EventFifoFillLevelFlags" address="0x3" permission="r" description="" />
+</node>
+<!-- Event formatter registers. Should be ok -->
+<node id="Event_Formatter"      address="0x5000" description="Event formatter configuration">
+  <node id="Enable_Record_Data" address="0x0" permission="rw" description="" />
+  <node id="ResetTimestampW"    address="0x1" permission="w" description="" />
+  <node id="CurrentTimestampLR" address="0x2" permission="r" description="" />
+  <node id="CurrentTimestampHR" address="0x3" permission="r" description="" />
+</node>
+<!-- This needs checking. The counters work, not sure about the reset -->
+<node id="triggerInputs" address="0x6000" description="Inputs configuration">
+  <node id="SerdesRstW" address="0x0" permission="w" description="" />
+  <node id="SerdesRstR" address="0x8" permission="r" description="" />
+  <node id="ThrCount0R" address="0x9" permission="r" description="" />
+  <node id="ThrCount1R" address="0xa" permission="r" description="" />
+  <node id="ThrCount2R" address="0xb" permission="r" description="" />
+  <node id="ThrCount3R" address="0xc" permission="r" description="" />
+  <node id="ThrCount4R" address="0xd" permission="r" description="" />
+  <node id="ThrCount5R" address="0xe" permission="r" description="" />
+</node>
+<!-- Checked. Seems ok now, except for the TriggerVeto that do nothing.-->
+<node id="triggerLogic" address="0x7000" description="Trigger logic configuration">
+  <node id="PostVetoTriggersR" address="0x10" permission="r" description="" />
+  <node id="PreVetoTriggersR" address="0x11" permission="r" description="" />
+  <node id="InternalTriggerIntervalW" address="0x2" permission="w" description="" />
+  <node id="InternalTriggerIntervalR" address="0x12" permission="r" description="" />
+  <!--<node id="TriggerPatternW" address="0x3" permission="w" description="" />-->
+  <!--<node id="TriggerPatternR" address="0x13" permission="r" description="" />-->
+  <node id="TriggerVetoW" address="0x4" permission="w" description="" />
+  <node id="TriggerVetoR" address="0x14" permission="r" description="" /><!--Wait, this does nothing at the moment...-->
+  <node id="ExternalTriggerVetoR" address="0x15" permission="r" description="" />
+  <node id="PulseStretchW" address="0x6" permission="w" description="" />
+  <node id="PulseStretchR" address="0x16" permission="r" description="" />
+  <node id="PulseDelayW" address="0x7" permission="w" description="" />
+  <node id="PulseDelayR" address="0x17" permission="r" description="" />
+  <node id="TriggerHoldOffW" address="0x8" permission="W" description="" /><!--Wait, this does nothing at the moment...-->
+  <node id="TriggerHoldOffR" address="0x18" permission="r" description="" /><!--Wait, this does nothing at the moment...-->
+  <node id="AuxTriggerCountR" address="0x19" permission="r" description="" />
+  <node id="TriggerPattern_lowW" address="0xA" permission="w" description="" />
+  <node id="TriggerPattern_lowR" address="0x1A" permission="r" description="" />
+  <node id="TriggerPattern_highW" address="0xB" permission="w" description="" />
+  <node id="TriggerPattern_highR" address="0x1B" permission="r" description="" />
+
+  <!--<node id="PulseStretchW" address="0x6" permission="w" description="" /> OLD REGISTER MAP. WAS BUGGED-->
+  <!--<node id="PulseStretchR" address="0x16" permission="r" description="" /> OLD REGISTER MAP. WAS BUGGED-->
+
+  <!--
+  <node id="ResetCountersW" address="0x6" permission="w" description="" />
+  <node id="PulseStretchR" address="0x17" permission="r" description="" />
+  <node id="PulseStretchW" address="0x7" permission="w" description="" />
+  <node id="TriggerHoldOffR" address="0x18" permission="r" description="" />
+  <node id="TriggerHoldOffW" address="0x8" permission="W" description="" />
+  <node id="AuxTriggerCountR" address="0x19" permission="r" description="" />
+-->
+</node>
+
+<node id="logic_clocks" address="0x8000" description="Clocks configuration">
+  <node id="LogicClocksCSR" address="0x0" permission="rw" description="" />
+  <node id="LogicRst" address="0x1" permission="w" description="" />
+</node>
+
+<node id="version" address="0x1" description="firmware version" permission="r">
+</node>
+
+<!--
+PulseStretchW			0x00000066     0xffffffff    0    1
+PulseDelayW 			0x00000067     0xffffffff    0    1
+PulseDelayR 			0x00000077     0xffffffff    1    0
+-->
+</node>
diff --git a/legacy/TLU_v1c/scripts/TLUconnection.xml b/legacy/TLU_v1c/scripts/TLUconnection.xml
new file mode 100644
index 00000000..213a5b1f
--- /dev/null
+++ b/legacy/TLU_v1c/scripts/TLUconnection.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<connections>
+  <connection id="tlu" uri="ipbusudp-2.0://192.168.200.31:50001"
+   address_table="file://./TLUaddrmap.xml" />
+</connections>
diff --git a/legacy/TLU_v1c/scripts/initTLU.py b/legacy/TLU_v1c/scripts/initTLU.py
new file mode 100644
index 00000000..eb1ae650
--- /dev/null
+++ b/legacy/TLU_v1c/scripts/initTLU.py
@@ -0,0 +1,184 @@
+#
+# Function to initialize TLU
+#
+# David Cussans, October 2015
+#
+# Nasty hack - use both PyChips and uHAL ( for block read ... )
+
+from PyChipsUser import *
+from FmcTluI2c import *
+
+import uhal
+
+import sys
+import time
+
+def startTLU( uhalDevice , pychipsBoard , writeTimestamps):
+
+    print "RESETTING FIFO"
+    pychipsBoard.write("EventFifoCSR",0x2)
+    eventFifoFillLevel = pychipsBoard.read("EventFifoFillLevel")
+    print "FIFO FILL LEVEL AFTER RESET= " , eventFifoFillLevel
+
+
+    if writeTimestamps:
+        print "ENABLING DATA RECORDING"
+        pychipsBoard.write("Enable_Record_Data",1)
+    else:
+        print "Disabling data recording"
+        pychipsBoard.write("Enable_Record_Data",0)
+
+    print "Pulsing T0"
+    pychipsBoard.write("PulseT0",1)
+
+    print "Turning off software trigger veto"
+    pychipsBoard.write("TriggerVetoW",0)
+
+    print "TLU is running"
+
+
+def stopTLU( uhalDevice , pychipsBoard ):
+
+    print "Turning on software trigger veto"
+    pychipsBoard.write("TriggerVetoW",1)
+
+    print "TLU triggers are stopped"
+
+def initTLU( uhalDevice , pychipsBoard , listenForTelescopeShutter , pulseDelay , pulseStretch , triggerPattern , DUTMask , ignoreDUTBusy , triggerInterval , thresholdVoltage ):
+
+    print "SETTING UP AIDA TLU"
+
+    fwVersion = uhalDevice.getNode("version").read()
+    uhalDevice.dispatch()
+    print "\tVersion (uHAL)= " , hex(fwVersion)
+
+    print "\tTurning on software trigger veto"
+    pychipsBoard.write("TriggerVetoW",1)
+
+    # Check the bus for I2C devices
+    pychipsBoardi2c = FmcTluI2c(pychipsBoard)
+
+    print "\tScanning I2C bus:"
+    scanResults = pychipsBoardi2c.i2c_scan()
+    #print scanResults
+    print '\t', ', '.join(scanResults), '\n'
+
+    boardId = pychipsBoardi2c.get_serial_number()
+    print "\tFMC-TLU serial number= " , boardId
+
+    resetClocks = 0
+    resetSerdes = 0
+
+# set DACs to -200mV
+    print "\tSETTING ALL DAC THRESHOLDS TO" , thresholdVoltage , "V"
+    pychipsBoardi2c.set_threshold_voltage(7, thresholdVoltage)
+
+    clockStatus = pychipsBoard.read("LogicClocksCSR")
+    print "\tCLOCK STATUS (should be 3 if all clocks locked)= " , hex(clockStatus)
+    assert ( clockStatus == 3 ) , "Clocks in TLU FPGA are not locked. No point in continuing. Re-prgramme or power cycle board"
+
+    if resetClocks:
+        print "Resetting clocks"
+        pychipsBoard.write("LogicRst", 1 )
+
+        clockStatus = pychipsBoard.read("LogicClocksCSR")
+        print "Clock status after reset = " , hex(clockStatus)
+
+        inputStatus = pychipsBoard.read("SerdesRstR")
+        print "Input status = " , hex(inputStatus)
+
+    if resetSerdes:
+        pychipsBoard.write("SerdesRstW", 0x00000003 )
+        inputStatus = pychipsBoard.read("SerdesRstR")
+        print "Input status during reset = " , hex(inputStatus)
+
+        pychipsBoard.write("SerdesRstW", 0x00000000 )
+        inputStatus = pychipsBoard.read("SerdesRstR")
+        print "Input status after reset = " , hex(inputStatus)
+
+        pychipsBoard.write("SerdesRstW", 0x00000004 )
+        inputStatus = pychipsBoard.read("SerdesRstR")
+        print "Input status during calibration = " , hex(inputStatus)
+
+        pychipsBoard.write("SerdesRstW", 0x00000000 )
+        inputStatus = pychipsBoard.read("SerdesRstR")
+        print "Input status after calibration = " , hex(inputStatus)
+
+
+    inputStatus = pychipsBoard.read("SerdesRstR")
+    print "\tINPUT STATUS= " , hex(inputStatus)
+
+    count0 = pychipsBoard.read("ThrCount0R")
+    print "\t  Count 0= " , count0
+
+    count1 = pychipsBoard.read("ThrCount1R")
+    print "\t  Count 1= " , count1
+
+    count2 = pychipsBoard.read("ThrCount2R")
+    print "\t  Count 2= " , count2
+
+    count3 = pychipsBoard.read("ThrCount3R")
+    print "\t  Count 3= " , count3
+
+# Stop internal triggers until setup complete
+    pychipsBoard.write("InternalTriggerIntervalW",0)
+
+    print "\tSETTING INPUT COINCIDENCE WINDOW TO",pulseStretch,"[Units= 160MHz clock cycles, Four 5-bit values (one per input) packed in to 32-bit word]"
+    pychipsBoard.write("PulseStretchW",int(pulseStretch))
+    pulseStretchR = pychipsBoard.read("PulseStretchR")
+    print "\t  Pulse stretch read back as:", hex(pulseStretchR)
+ #   assert (int(pulseStretch) == pulseStretchR) , "Pulse stretch read-back doesn't equal written value"
+
+    print "\tSETTING INPUT TRIGGER DELAY TO",pulseDelay , "[Units= 160MHz clock cycles, Four 5-bit values (one per input) packed in to 32-bit word]"
+    pychipsBoard.write("PulseDelayW",int(pulseDelay))
+    pulseDelayR = pychipsBoard.read("PulseDelayR")
+    print "\t  Pulse delay read back as:", hex(pulseDelayR)
+
+    print "\tSETTING TRIGGER PATTERN (for external triggers) TO 0x%08X. Two 16-bit patterns packed into 32 bit word  " %(triggerPattern)
+    pychipsBoard.write("TriggerPatternW",int(triggerPattern))
+    triggerPatternR = pychipsBoard.read("TriggerPatternR")
+    print "\t  Trigger pattern read back as: 0x%08X " % (triggerPatternR)
+
+    print "\tENABLING DUT(s): Mask= " , hex(DUTMask)
+    pychipsBoard.write("DUTMaskW",int(DUTMask))
+    DUTMaskR = pychipsBoard.read("DUTMaskR")
+    print "\t  DUTMask read back as:" , hex(DUTMaskR)
+
+    print "\tSETTING ALL DUTs IN AIDA MODE"
+    pychipsBoard.write("DUTInterfaceModeW", 0xFF)
+    DUTInterfaceModeR = pychipsBoard.read("DUTInterfaceModeR")
+    print "\t  DUT mode read back as:" , DUTInterfaceModeR
+
+    print "\tSET DUT MODE MODIFIER"
+    pychipsBoard.write("DUTInterfaceModeModifierW", 0xFF)
+    DUTInterfaceModeModifierR = pychipsBoard.read("DUTInterfaceModeModifierR")
+    print "\t  DUT mode modifier read back as:" , DUTInterfaceModeModifierR
+
+    if listenForTelescopeShutter:
+        print "\tSET IgnoreShutterVetoW TO LISTEN FOR VETO FROM SHUTTER"
+        pychipsBoard.write("IgnoreShutterVetoW",0)
+    else:
+        print "\tSET IgnoreShutterVetoW TO IGNORE VETO FROM SHUTTER"
+        pychipsBoard.write("IgnoreShutterVetoW",1)
+    IgnoreShutterVeto = pychipsBoard.read("IgnoreShutterVetoR")
+    print "\t  IgnoreShutterVeto read back as:" , IgnoreShutterVeto
+
+    print "\tSETTING IGNORE VETO BY DUT BUSY MASK TO" , hex(ignoreDUTBusy)
+    pychipsBoard.write("IgnoreDUTBusyW",int(ignoreDUTBusy))
+    IgnoreDUTBusy = pychipsBoard.read("IgnoreDUTBusyR")
+    print "\t  IgnoreDUTBusy read back as:" , hex(IgnoreDUTBusy)
+
+#print "Enabling handshake: No-handshake"
+#board.write("HandshakeTypeW",1)
+
+
+    print "\tSETTING INTERNAL TRIGGER INTERVAL TO" , triggerInterval , "(zero= no internal triggers)"
+    if triggerInterval == 0:
+        internalTriggerFreq = 0
+    else:
+        internalTriggerFreq = 160000.0/triggerInterval
+    print "\tINTERNAL TRIGGER FREQUENCY= " , internalTriggerFreq , " kHz"
+    pychipsBoard.write("InternalTriggerIntervalW",triggerInterval)  #0->Internal pulse generator disabled. Any other value will generate pulses with a frequency of n*6.25ns
+    trigIntervalR = pychipsBoard.read("InternalTriggerIntervalR")
+    print "\t  Trigger interval read back as:", trigIntervalR
+    print "AIDA TLU SETUP COMPLETED"
diff --git a/legacy/TLU_v1c/scripts/output.csv b/legacy/TLU_v1c/scripts/output.csv
new file mode 100644
index 00000000..e69de29b
diff --git a/legacy/TLU_v1c/scripts/output_check.csv b/legacy/TLU_v1c/scripts/output_check.csv
new file mode 100644
index 00000000..7932e233
--- /dev/null
+++ b/legacy/TLU_v1c/scripts/output_check.csv
@@ -0,0 +1,2727 @@
+1,6027,12,8,8,8,16,16,0,0,0,0,0,0
+2,6047,11,8,8,8,16,16,0,0,0,0,0,0
+3,6067,10,8,8,8,16,16,0,0,0,0,0,0
+4,6087,8,8,8,8,16,16,0,0,0,0,0,0
+5,6106,6,0,0,0,8,8,0,0,0,0,0,0
+7,6126,6,0,0,0,8,8,0,0,0,0,0,0
+9,6146,4,0,0,0,8,8,0,0,0,0,0,0
+10,6166,3,0,0,0,8,8,0,0,0,0,0,0
+11,6186,2,0,0,0,8,8,0,0,0,0,0,0
+12,6206,0,0,0,0,8,8,0,0,0,0,0,0
+13,6226,31,24,24,24,0,0,0,0,0,0,0,0
+15,6246,30,24,24,24,0,0,0,0,0,0,0,0
+17,6266,28,24,24,24,0,0,0,0,0,0,0,0
+18,6286,27,24,24,24,0,0,0,0,0,0,0,0
+19,6306,26,24,24,24,0,0,0,0,0,0,0,0
+20,6326,24,24,24,24,0,0,0,0,0,0,0,0
+21,6346,23,16,16,16,24,24,0,0,0,0,0,0
+23,6366,22,16,16,16,24,24,0,0,0,0,0,0
+25,6386,20,16,16,16,24,24,0,0,0,0,0,0
+26,6406,20,16,16,16,24,24,0,0,0,0,0,0
+27,6426,18,16,16,16,24,24,0,0,0,0,0,0
+28,6446,17,16,16,16,24,24,0,0,0,0,0,0
+29,6466,16,16,16,16,24,24,0,0,0,0,0,0
+30,6486,14,8,8,8,16,16,0,0,0,0,0,0
+32,6506,13,8,8,8,16,16,0,0,0,0,0,0
+34,6526,12,8,8,8,16,16,0,0,0,0,0,0
+35,6546,10,8,8,8,16,16,0,0,0,0,0,0
+36,6566,9,8,8,8,16,16,0,0,0,0,0,0
+37,6586,8,8,8,8,16,16,0,0,0,0,0,0
+38,6605,6,0,0,0,8,8,0,0,0,0,0,0
+40,6625,5,0,0,0,8,8,0,0,0,0,0,0
+41,6645,4,0,0,0,8,8,0,0,0,0,0,0
+42,6665,2,0,0,0,8,8,0,0,0,0,0,0
+43,6685,1,0,0,0,8,8,0,0,0,0,0,0
+44,6705,0,0,0,0,8,8,0,0,0,0,0,0
+45,6725,30,24,24,24,0,0,0,0,0,0,0,0
+47,6745,29,24,24,24,0,0,0,0,0,0,0,0
+48,6765,28,24,24,24,0,0,0,0,0,0,0,0
+49,6785,26,24,24,24,0,0,0,0,0,0,0,0
+50,6805,24,24,24,24,0,0,0,0,0,0,0,0
+51,6825,23,16,16,16,24,24,0,0,0,0,0,0
+53,6845,22,16,16,16,24,24,0,0,0,0,0,0
+55,6865,21,16,16,16,24,24,0,0,0,0,0,0
+56,6885,20,16,16,16,24,24,0,0,0,0,0,0
+57,6905,18,16,16,16,24,24,0,0,0,0,0,0
+58,6925,17,16,16,16,24,24,0,0,0,0,0,0
+59,6945,16,16,16,16,24,24,0,0,0,0,0,0
+60,6965,14,8,8,8,16,16,0,0,0,0,0,0
+62,6985,13,8,8,8,16,16,0,0,0,0,0,0
+64,7005,12,8,8,8,16,16,0,0,0,0,0,0
+65,7025,10,8,8,8,16,16,0,0,0,0,0,0
+66,7045,9,8,8,8,16,16,0,0,0,0,0,0
+67,7065,8,8,8,8,16,16,0,0,0,0,0,0
+68,7084,6,0,0,0,8,8,0,0,0,0,0,0
+70,7104,4,0,0,0,8,8,0,0,0,0,0,0
+71,7124,4,0,0,0,8,8,0,0,0,0,0,0
+72,7144,2,0,0,0,8,8,0,0,0,0,0,0
+73,7164,0,0,0,0,8,8,0,0,0,0,0,0
+74,7184,31,24,24,24,0,0,0,0,0,0,0,0
+76,7204,30,24,24,24,0,0,0,0,0,0,0,0
+78,7224,28,24,24,24,0,0,0,0,0,0,0,0
+79,7244,27,24,24,24,0,0,0,0,0,0,0,0
+80,7264,26,24,24,24,0,0,0,0,0,0,0,0
+81,7284,24,24,24,24,0,0,0,0,0,0,0,0
+82,7304,23,16,16,16,24,24,0,0,0,0,0,0
+84,7324,22,16,16,16,24,24,0,0,0,0,0,0
+86,7344,20,16,16,16,24,24,0,0,0,0,0,0
+87,7364,20,16,16,16,24,24,0,0,0,0,0,0
+88,7384,18,16,16,16,24,24,0,0,0,0,0,0
+89,7404,16,16,16,16,24,24,0,0,0,0,0,0
+90,7424,16,16,16,16,24,24,0,0,0,0,0,0
+91,7444,14,8,8,8,16,16,0,0,0,0,0,0
+93,7464,13,8,8,8,16,16,0,0,0,0,0,0
+95,7484,12,8,8,8,16,16,0,0,0,0,0,0
+96,7504,10,8,8,8,16,16,0,0,0,0,0,0
+97,7524,9,8,8,8,16,16,0,0,0,0,0,0
+98,7544,8,8,8,8,16,16,0,0,0,0,0,0
+99,7563,6,0,0,0,8,8,0,0,0,0,0,0
+101,7583,5,0,0,0,8,8,0,0,0,0,0,0
+103,7603,4,0,0,0,8,8,0,0,0,0,0,0
+104,7623,2,0,0,0,8,8,0,0,0,0,0,0
+105,7643,1,0,0,0,8,8,0,0,0,0,0,0
+106,7663,0,0,0,0,8,8,0,0,0,0,0,0
+107,7683,30,24,24,24,0,0,0,0,0,0,0,0
+109,7703,29,24,24,24,0,0,0,0,0,0,0,0
+111,7723,28,24,24,24,0,0,0,0,0,0,0,0
+112,7743,27,24,24,24,0,0,0,0,0,0,0,0
+113,7763,26,24,24,24,0,0,0,0,0,0,0,0
+114,7783,24,24,24,24,0,0,0,0,0,0,0,0
+115,7803,23,16,16,16,24,24,0,0,0,0,0,0
+117,7823,22,16,16,16,24,24,0,0,0,0,0,0
+119,7843,20,16,16,16,24,24,0,0,0,0,0,0
+120,7863,19,16,16,16,24,24,0,0,0,0,0,0
+121,7883,18,16,16,16,24,24,0,0,0,0,0,0
+122,7903,16,16,16,16,24,24,0,0,0,0,0,0
+123,7923,15,8,8,8,16,16,0,0,0,0,0,0
+125,7943,14,8,8,8,16,16,0,0,0,0,0,0
+127,7963,12,8,8,8,16,16,0,0,0,0,0,0
+128,7983,11,8,8,8,16,16,0,0,0,0,0,0
+129,8003,10,8,8,8,16,16,0,0,0,0,0,0
+130,8023,8,8,8,8,16,16,0,0,0,0,0,0
+131,8042,7,0,0,0,8,8,0,0,0,0,0,0
+133,8062,6,0,0,0,8,8,0,0,0,0,0,0
+135,8082,4,0,0,0,8,8,0,0,0,0,0,0
+136,8102,3,0,0,0,8,8,0,0,0,0,0,0
+137,8122,2,0,0,0,8,8,0,0,0,0,0,0
+138,8142,0,0,0,0,8,8,0,0,0,0,0,0
+139,8162,31,24,24,24,0,0,0,0,0,0,0,0
+141,8182,30,24,24,24,0,0,0,0,0,0,0,0
+143,8202,28,24,24,24,0,0,0,0,0,0,0,0
+144,8222,27,24,24,24,0,0,0,0,0,0,0,0
+145,8242,26,24,24,24,0,0,0,0,0,0,0,0
+146,8262,24,24,24,24,0,0,0,0,0,0,0,0
+147,8282,23,16,16,16,24,24,0,0,0,0,0,0
+149,8302,22,16,16,16,24,24,0,0,0,0,0,0
+151,8322,20,16,16,16,24,24,0,0,0,0,0,0
+152,8342,19,16,16,16,24,24,0,0,0,0,0,0
+153,8362,18,16,16,16,24,24,0,0,0,0,0,0
+154,8382,16,16,16,16,24,24,0,0,0,0,0,0
+155,8402,15,8,8,8,16,16,0,0,0,0,0,0
+157,8422,14,8,8,8,16,16,0,0,0,0,0,0
+159,8442,12,8,8,8,16,16,0,0,0,0,0,0
+160,8462,11,8,8,8,16,16,0,0,0,0,0,0
+161,8482,10,8,8,8,16,16,0,0,0,0,0,0
+162,8502,8,8,8,8,16,16,0,0,0,0,0,0
+163,8521,7,0,0,0,8,8,0,0,0,0,0,0
+165,8541,6,0,0,0,8,8,0,0,0,0,0,0
+167,8561,4,0,0,0,8,8,0,0,0,0,0,0
+168,8581,3,0,0,0,8,8,0,0,0,0,0,0
+169,8601,2,0,0,0,8,8,0,0,0,0,0,0
+170,8621,0,0,0,0,8,8,0,0,0,0,0,0
+171,8641,31,24,24,24,0,0,0,0,0,0,0,0
+173,8661,30,24,24,24,0,0,0,0,0,0,0,0
+175,8681,28,24,24,24,0,0,0,0,0,0,0,0
+176,8701,27,24,24,24,0,0,0,0,0,0,0,0
+177,8721,26,24,24,24,0,0,0,0,0,0,0,0
+178,8741,24,24,24,24,0,0,0,0,0,0,0,0
+179,8761,23,16,16,16,24,24,0,0,0,0,0,0
+181,8781,22,16,16,16,24,24,0,0,0,0,0,0
+183,8801,20,16,16,16,24,24,0,0,0,0,0,0
+184,8821,19,16,16,16,24,24,0,0,0,0,0,0
+185,8841,18,16,16,16,24,24,0,0,0,0,0,0
+186,8861,16,16,16,16,24,24,0,0,0,0,0,0
+187,8881,15,8,8,8,16,16,0,0,0,0,0,0
+189,8901,14,8,8,8,16,16,0,0,0,0,0,0
+191,8921,12,8,8,8,16,16,0,0,0,0,0,0
+192,8941,11,8,8,8,16,16,0,0,0,0,0,0
+193,8961,10,8,8,8,16,16,0,0,0,0,0,0
+194,8981,8,8,8,8,16,16,0,0,0,0,0,0
+195,9000,7,0,0,0,8,8,0,0,0,0,0,0
+197,9020,6,0,0,0,8,8,0,0,0,0,0,0
+199,9040,4,0,0,0,8,8,0,0,0,0,0,0
+200,9060,3,0,0,0,8,8,0,0,0,0,0,0
+201,9080,2,0,0,0,8,8,0,0,0,0,0,0
+202,9100,0,0,0,0,8,8,0,0,0,0,0,0
+203,9120,31,24,24,24,0,0,0,0,0,0,0,0
+205,9140,30,24,24,24,0,0,0,0,0,0,0,0
+207,9160,28,24,24,24,0,0,0,0,0,0,0,0
+208,9180,27,24,24,24,0,0,0,0,0,0,0,0
+209,9200,26,24,24,24,0,0,0,0,0,0,0,0
+210,9220,24,24,24,24,0,0,0,0,0,0,0,0
+211,9240,23,16,16,16,24,24,0,0,0,0,0,0
+213,9260,22,16,16,16,24,24,0,0,0,0,0,0
+215,9280,20,16,16,16,24,24,0,0,0,0,0,0
+216,9300,19,16,16,16,24,24,0,0,0,0,0,0
+217,9320,18,16,16,16,24,24,0,0,0,0,0,0
+218,9340,16,16,16,16,24,24,0,0,0,0,0,0
+219,9360,15,8,8,8,16,16,0,0,0,0,0,0
+221,9380,14,8,8,8,16,16,0,0,0,0,0,0
+223,9400,12,8,8,8,16,16,0,0,0,0,0,0
+224,9420,11,8,8,8,16,16,0,0,0,0,0,0
+225,9440,10,8,8,8,16,16,0,0,0,0,0,0
+226,9460,8,8,8,8,16,16,0,0,0,0,0,0
+227,9479,7,0,0,0,8,8,0,0,0,0,0,0
+229,9499,6,0,0,0,8,8,0,0,0,0,0,0
+231,9519,4,0,0,0,8,8,0,0,0,0,0,0
+232,9539,3,0,0,0,8,8,0,0,0,0,0,0
+233,9559,2,0,0,0,8,8,0,0,0,0,0,0
+234,9579,0,0,0,0,8,8,0,0,0,0,0,0
+235,9599,31,24,24,24,0,0,0,0,0,0,0,0
+237,9619,30,24,24,24,0,0,0,0,0,0,0,0
+239,9639,28,24,24,24,0,0,0,0,0,0,0,0
+240,9659,27,24,24,24,0,0,0,0,0,0,0,0
+241,9679,26,24,24,24,0,0,0,0,0,0,0,0
+242,9699,24,24,24,24,0,0,0,0,0,0,0,0
+243,9719,23,16,16,16,24,24,0,0,0,0,0,0
+245,9739,22,16,16,16,24,24,0,0,0,0,0,0
+247,9759,21,16,16,16,24,24,0,0,0,0,0,0
+248,9779,20,16,16,16,24,24,0,0,0,0,0,0
+249,9799,18,16,16,16,24,24,0,0,0,0,0,0
+250,9819,17,16,16,16,24,24,0,0,0,0,0,0
+251,9839,16,16,16,16,24,24,0,0,0,0,0,0
+252,9859,14,8,8,8,16,16,0,0,0,0,0,0
+254,9879,13,8,8,8,16,16,0,0,0,0,0,0
+255,9899,12,8,8,8,16,16,0,0,0,0,0,0
+256,9919,10,8,8,8,16,16,0,0,0,0,0,0
+257,9939,9,8,8,8,16,16,0,0,0,0,0,0
+258,9959,8,8,8,8,16,16,0,0,0,0,0,0
+259,9978,6,0,0,0,8,8,0,0,0,0,0,0
+261,9998,5,0,0,0,8,8,0,0,0,0,0,0
+263,10018,4,0,0,0,8,8,0,0,0,0,0,0
+264,10038,2,0,0,0,8,8,0,0,0,0,0,0
+265,10058,1,0,0,0,8,8,0,0,0,0,0,0
+266,10078,0,0,0,0,8,8,0,0,0,0,0,0
+267,10098,30,24,24,24,0,0,0,0,0,0,0,0
+269,10118,29,24,24,24,0,0,0,0,0,0,0,0
+271,10138,28,24,24,24,0,0,0,0,0,0,0,0
+272,10158,26,24,24,24,0,0,0,0,0,0,0,0
+273,10178,25,24,24,24,0,0,0,0,0,0,0,0
+274,10198,24,24,24,24,0,0,0,0,0,0,0,0
+275,10218,22,16,16,16,24,24,0,0,0,0,0,0
+277,10238,21,16,16,16,24,24,0,0,0,0,0,0
+279,10258,20,16,16,16,24,24,0,0,0,0,0,0
+280,10278,18,16,16,16,24,24,0,0,0,0,0,0
+281,10298,17,16,16,16,24,24,0,0,0,0,0,0
+282,10318,16,16,16,16,24,24,0,0,0,0,0,0
+283,10338,14,8,8,8,16,16,0,0,0,0,0,0
+285,10358,13,8,8,8,16,16,0,0,0,0,0,0
+287,10378,12,8,8,8,16,16,0,0,0,0,0,0
+288,10398,10,8,8,8,16,16,0,0,0,0,0,0
+289,10418,10,8,8,8,16,16,0,0,0,0,0,0
+290,10438,8,8,8,8,16,16,0,0,0,0,0,0
+291,10457,6,0,0,0,8,8,0,0,0,0,0,0
+293,10477,6,0,0,0,8,8,0,0,0,0,0,0
+295,10497,4,0,0,0,8,8,0,0,0,0,0,0
+296,10517,2,0,0,0,8,8,0,0,0,0,0,0
+297,10537,1,0,0,0,8,8,0,0,0,0,0,0
+298,10557,0,0,0,0,8,8,0,0,0,0,0,0
+299,10577,30,24,24,24,0,0,0,0,0,0,0,0
+301,10597,29,24,24,24,0,0,0,0,0,0,0,0
+303,10617,28,24,24,24,0,0,0,0,0,0,0,0
+304,10637,26,24,24,24,0,0,0,0,0,0,0,0
+305,10657,25,24,24,24,0,0,0,0,0,0,0,0
+306,10677,24,24,24,24,0,0,0,0,0,0,0,0
+307,10697,22,16,16,16,24,24,0,0,0,0,0,0
+309,10717,22,16,16,16,24,24,0,0,0,0,0,0
+311,10737,20,16,16,16,24,24,0,0,0,0,0,0
+312,10757,19,16,16,16,24,24,0,0,0,0,0,0
+313,10777,18,16,16,16,24,24,0,0,0,0,0,0
+314,10797,16,16,16,16,24,24,0,0,0,0,0,0
+315,10817,15,8,8,8,16,16,0,0,0,0,0,0
+317,10837,14,8,8,8,16,16,0,0,0,0,0,0
+319,10857,12,8,8,8,16,16,0,0,0,0,0,0
+320,10877,11,8,8,8,16,16,0,0,0,0,0,0
+321,10897,10,8,8,8,16,16,0,0,0,0,0,0
+322,10917,8,8,8,8,16,16,0,0,0,0,0,0
+323,10936,7,0,0,0,8,8,0,0,0,0,0,0
+325,10956,6,0,0,0,8,8,0,0,0,0,0,0
+327,10976,4,0,0,0,8,8,0,0,0,0,0,0
+328,10996,3,0,0,0,8,8,0,0,0,0,0,0
+329,11016,2,0,0,0,8,8,0,0,0,0,0,0
+330,11036,0,0,0,0,8,8,0,0,0,0,0,0
+331,11056,0,0,0,0,8,8,0,0,0,0,0,0
+332,11076,30,24,24,24,0,0,0,0,0,0,0,0
+334,11096,29,24,24,24,0,0,0,0,0,0,0,0
+335,11116,28,24,24,24,0,0,0,0,0,0,0,0
+336,11136,26,24,24,24,0,0,0,0,0,0,0,0
+337,11156,25,24,24,24,0,0,0,0,0,0,0,0
+338,11176,24,24,24,24,0,0,0,0,0,0,0,0
+339,11196,22,16,16,16,24,24,0,0,0,0,0,0
+341,11216,21,16,16,16,24,24,0,0,0,0,0,0
+343,11236,20,16,16,16,24,24,0,0,0,0,0,0
+344,11256,18,16,16,16,24,24,0,0,0,0,0,0
+345,11276,17,16,16,16,24,24,0,0,0,0,0,0
+346,11296,16,16,16,16,24,24,0,0,0,0,0,0
+347,11316,14,8,8,8,16,16,0,0,0,0,0,0
+349,11336,14,8,8,8,16,16,0,0,0,0,0,0
+351,11356,12,8,8,8,16,16,0,0,0,0,0,0
+352,11376,10,8,8,8,16,16,0,0,0,0,0,0
+353,11396,9,8,8,8,16,16,0,0,0,0,0,0
+354,11416,8,8,8,8,16,16,0,0,0,0,0,0
+355,11435,7,0,0,0,8,8,0,0,0,0,0,0
+357,11455,6,0,0,0,8,8,0,0,0,0,0,0
+359,11475,4,0,0,0,8,8,0,0,0,0,0,0
+360,11495,3,0,0,0,8,8,0,0,0,0,0,0
+361,11515,2,0,0,0,8,8,0,0,0,0,0,0
+362,11535,0,0,0,0,8,8,0,0,0,0,0,0
+363,11555,30,24,24,24,0,0,0,0,0,0,0,0
+365,11575,30,24,24,24,0,0,0,0,0,0,0,0
+367,11595,28,24,24,24,0,0,0,0,0,0,0,0
+368,11615,26,24,24,24,0,0,0,0,0,0,0,0
+369,11635,25,24,24,24,0,0,0,0,0,0,0,0
+370,11655,24,24,24,24,0,0,0,0,0,0,0,0
+371,11675,22,16,16,16,24,24,0,0,0,0,0,0
+373,11695,22,16,16,16,24,24,0,0,0,0,0,0
+375,11715,20,16,16,16,24,24,0,0,0,0,0,0
+376,11735,19,16,16,16,24,24,0,0,0,0,0,0
+377,11755,18,16,16,16,24,24,0,0,0,0,0,0
+378,11775,16,16,16,16,24,24,0,0,0,0,0,0
+379,11795,15,8,8,8,16,16,0,0,0,0,0,0
+381,11815,14,8,8,8,16,16,0,0,0,0,0,0
+383,11835,12,8,8,8,16,16,0,0,0,0,0,0
+384,11855,11,8,8,8,16,16,0,0,0,0,0,0
+385,11875,10,8,8,8,16,16,0,0,0,0,0,0
+386,11895,8,8,8,8,16,16,0,0,0,0,0,0
+387,11914,7,0,0,0,8,8,0,0,0,0,0,0
+389,11934,6,0,0,0,8,8,0,0,0,0,0,0
+391,11954,5,0,0,0,8,8,0,0,0,0,0,0
+392,11974,4,0,0,0,8,8,0,0,0,0,0,0
+393,11994,2,0,0,0,8,8,0,0,0,0,0,0
+394,12014,1,0,0,0,8,8,0,0,0,0,0,0
+395,12034,0,0,0,0,8,8,0,0,0,0,0,0
+396,12054,30,24,24,24,0,0,0,0,0,0,0,0
+398,12074,29,24,24,24,0,0,0,0,0,0,0,0
+399,12094,28,24,24,24,0,0,0,0,0,0,0,0
+400,12114,26,24,24,24,0,0,0,0,0,0,0,0
+401,12134,25,24,24,24,0,0,0,0,0,0,0,0
+402,12154,24,24,24,24,0,0,0,0,0,0,0,0
+403,12174,22,16,16,16,24,24,0,0,0,0,0,0
+405,12194,21,16,16,16,24,24,0,0,0,0,0,0
+406,12214,20,16,16,16,24,24,0,0,0,0,0,0
+407,12234,18,16,16,16,24,24,0,0,0,0,0,0
+408,12254,17,16,16,16,24,24,0,0,0,0,0,0
+409,12274,16,16,16,16,24,24,0,0,0,0,0,0
+410,12294,14,8,8,8,16,16,0,0,0,0,0,0
+412,12314,13,8,8,8,16,16,0,0,0,0,0,0
+414,12334,12,8,8,8,16,16,0,0,0,0,0,0
+415,12354,10,8,8,8,16,16,0,0,0,0,0,0
+416,12374,9,8,8,8,16,16,0,0,0,0,0,0
+417,12394,8,8,8,8,16,16,0,0,0,0,0,0
+418,12413,6,0,0,0,8,8,0,0,0,0,0,0
+420,12433,5,0,0,0,8,8,0,0,0,0,0,0
+422,12453,4,0,0,0,8,8,0,0,0,0,0,0
+423,12473,2,0,0,0,8,8,0,0,0,0,0,0
+424,12493,1,0,0,0,8,8,0,0,0,0,0,0
+425,12513,0,0,0,0,8,8,0,0,0,0,0,0
+426,12533,30,24,24,24,0,0,0,0,0,0,0,0
+428,12553,29,24,24,24,0,0,0,0,0,0,0,0
+429,12573,28,24,24,24,0,0,0,0,0,0,0,0
+430,12593,26,24,24,24,0,0,0,0,0,0,0,0
+431,12613,25,24,24,24,0,0,0,0,0,0,0,0
+432,12633,24,24,24,24,0,0,0,0,0,0,0,0
+433,12653,22,16,16,16,24,24,0,0,0,0,0,0
+435,12673,21,16,16,16,24,24,0,0,0,0,0,0
+437,12693,20,16,16,16,24,24,0,0,0,0,0,0
+438,12713,18,16,16,16,24,24,0,0,0,0,0,0
+439,12733,17,16,16,16,24,24,0,0,0,0,0,0
+440,12753,16,16,16,16,24,24,0,0,0,0,0,0
+441,12773,14,8,8,8,16,16,0,0,0,0,0,0
+443,12793,13,8,8,8,16,16,0,0,0,0,0,0
+445,12813,12,8,8,8,16,16,0,0,0,0,0,0
+446,12833,10,8,8,8,16,16,0,0,0,0,0,0
+447,12853,9,8,8,8,16,16,0,0,0,0,0,0
+448,12873,8,8,8,8,16,16,0,0,0,0,0,0
+449,12892,6,0,0,0,8,8,0,0,0,0,0,0
+451,12912,5,0,0,0,8,8,0,0,0,0,0,0
+452,12932,4,0,0,0,8,8,0,0,0,0,0,0
+453,12952,2,0,0,0,8,8,0,0,0,0,0,0
+454,12972,1,0,0,0,8,8,0,0,0,0,0,0
+455,12992,0,0,0,0,8,8,0,0,0,0,0,0
+456,13012,30,24,24,24,0,0,0,0,0,0,0,0
+458,13032,29,24,24,24,0,0,0,0,0,0,0,0
+460,13052,28,24,24,24,0,0,0,0,0,0,0,0
+461,13072,26,24,24,24,0,0,0,0,0,0,0,0
+462,13092,26,24,24,24,0,0,0,0,0,0,0,0
+463,13112,24,24,24,24,0,0,0,0,0,0,0,0
+464,13132,23,16,16,16,24,24,0,0,0,0,0,0
+466,13152,22,16,16,16,24,24,0,0,0,0,0,0
+468,13172,20,16,16,16,24,24,0,0,0,0,0,0
+469,13192,19,16,16,16,24,24,0,0,0,0,0,0
+470,13212,18,16,16,16,24,24,0,0,0,0,0,0
+471,13232,16,16,16,16,24,24,0,0,0,0,0,0
+472,13252,15,8,8,8,16,16,0,0,0,0,0,0
+474,13272,14,8,8,8,16,16,0,0,0,0,0,0
+476,13292,12,8,8,8,16,16,0,0,0,0,0,0
+477,13312,11,8,8,8,16,16,0,0,0,0,0,0
+478,13332,10,8,8,8,16,16,0,0,0,0,0,0
+479,13352,8,8,8,8,16,16,0,0,0,0,0,0
+480,13371,7,0,0,0,8,8,0,0,0,0,0,0
+482,13391,6,0,0,0,8,8,0,0,0,0,0,0
+484,13411,4,0,0,0,8,8,0,0,0,0,0,0
+485,13431,3,0,0,0,8,8,0,0,0,0,0,0
+486,13451,2,0,0,0,8,8,0,0,0,0,0,0
+487,13471,0,0,0,0,8,8,0,0,0,0,0,0
+488,13491,31,24,24,24,0,0,0,0,0,0,0,0
+490,13511,30,24,24,24,0,0,0,0,0,0,0,0
+492,13531,28,24,24,24,0,0,0,0,0,0,0,0
+493,13551,26,24,24,24,0,0,0,0,0,0,0,0
+494,13571,25,24,24,24,0,0,0,0,0,0,0,0
+495,13591,24,24,24,24,0,0,0,0,0,0,0,0
+496,13611,22,16,16,16,24,24,0,0,0,0,0,0
+498,13631,21,16,16,16,24,24,0,0,0,0,0,0
+500,13651,20,16,16,16,24,24,0,0,0,0,0,0
+501,13671,18,16,16,16,24,24,0,0,0,0,0,0
+502,13691,18,16,16,16,24,24,0,0,0,0,0,0
+503,13711,16,16,16,16,24,24,0,0,0,0,0,0
+504,13731,15,8,8,8,16,16,0,0,0,0,0,0
+506,13751,14,8,8,8,16,16,0,0,0,0,0,0
+508,13771,12,8,8,8,16,16,0,0,0,0,0,0
+509,13791,11,8,8,8,16,16,0,0,0,0,0,0
+510,13811,10,8,8,8,16,16,0,0,0,0,0,0
+511,13831,8,8,8,8,16,16,0,0,0,0,0,0
+512,13850,7,0,0,0,8,8,0,0,0,0,0,0
+514,13870,6,0,0,0,8,8,0,0,0,0,0,0
+516,13890,4,0,0,0,8,8,0,0,0,0,0,0
+517,13910,3,0,0,0,8,8,0,0,0,0,0,0
+518,13930,2,0,0,0,8,8,0,0,0,0,0,0
+519,13950,1,0,0,0,8,8,0,0,0,0,0,0
+520,13970,0,0,0,0,8,8,0,0,0,0,0,0
+521,13990,30,24,24,24,0,0,0,0,0,0,0,0
+523,14010,28,24,24,24,0,0,0,0,0,0,0,0
+524,14030,28,24,24,24,0,0,0,0,0,0,0,0
+525,14050,26,24,24,24,0,0,0,0,0,0,0,0
+526,14070,25,24,24,24,0,0,0,0,0,0,0,0
+527,14090,24,24,24,24,0,0,0,0,0,0,0,0
+528,14110,22,16,16,16,24,24,0,0,0,0,0,0
+530,14130,21,16,16,16,24,24,0,0,0,0,0,0
+532,14150,20,16,16,16,24,24,0,0,0,0,0,0
+533,14170,18,16,16,16,24,24,0,0,0,0,0,0
+534,14190,17,16,16,16,24,24,0,0,0,0,0,0
+535,14210,16,16,16,16,24,24,0,0,0,0,0,0
+536,14230,14,8,8,8,16,16,0,0,0,0,0,0
+538,14250,13,8,8,8,16,16,0,0,0,0,0,0
+540,14270,12,8,8,8,16,16,0,0,0,0,0,0
+541,14290,10,8,8,8,16,16,0,0,0,0,0,0
+542,14310,9,8,8,8,16,16,0,0,0,0,0,0
+543,14330,8,8,8,8,16,16,0,0,0,0,0,0
+544,14349,6,0,0,0,8,8,0,0,0,0,0,0
+546,14369,5,0,0,0,8,8,0,0,0,0,0,0
+548,14389,4,0,0,0,8,8,0,0,0,0,0,0
+549,14409,2,0,0,0,8,8,0,0,0,0,0,0
+550,14429,1,0,0,0,8,8,0,0,0,0,0,0
+551,14449,0,0,0,0,8,8,0,0,0,0,0,0
+552,14469,30,24,24,24,0,0,0,0,0,0,0,0
+554,14489,29,24,24,24,0,0,0,0,0,0,0,0
+556,14509,28,24,24,24,0,0,0,0,0,0,0,0
+557,14529,27,24,24,24,0,0,0,0,0,0,0,0
+558,14549,26,24,24,24,0,0,0,0,0,0,0,0
+559,14569,24,24,24,24,0,0,0,0,0,0,0,0
+560,14589,23,16,16,16,24,24,0,0,0,0,0,0
+562,14609,22,16,16,16,24,24,0,0,0,0,0,0
+564,14629,20,16,16,16,24,24,0,0,0,0,0,0
+565,14649,19,16,16,16,24,24,0,0,0,0,0,0
+566,14669,18,16,16,16,24,24,0,0,0,0,0,0
+567,14689,16,16,16,16,24,24,0,0,0,0,0,0
+568,14709,15,8,8,8,16,16,0,0,0,0,0,0
+570,14729,14,8,8,8,16,16,0,0,0,0,0,0
+572,14749,12,8,8,8,16,16,0,0,0,0,0,0
+573,14769,11,8,8,8,16,16,0,0,0,0,0,0
+574,14789,10,8,8,8,16,16,0,0,0,0,0,0
+575,14809,8,8,8,8,16,16,0,0,0,0,0,0
+576,14828,7,0,0,0,8,8,0,0,0,0,0,0
+578,14848,6,0,0,0,8,8,0,0,0,0,0,0
+580,14868,4,0,0,0,8,8,0,0,0,0,0,0
+581,14888,3,0,0,0,8,8,0,0,0,0,0,0
+582,14908,2,0,0,0,8,8,0,0,0,0,0,0
+583,14928,0,0,0,0,8,8,0,0,0,0,0,0
+584,14948,31,24,24,24,0,0,0,0,0,0,0,0
+586,14968,30,24,24,24,0,0,0,0,0,0,0,0
+588,14988,28,24,24,24,0,0,0,0,0,0,0,0
+589,15008,27,24,24,24,0,0,0,0,0,0,0,0
+590,15028,26,24,24,24,0,0,0,0,0,0,0,0
+591,15048,24,24,24,24,0,0,0,0,0,0,0,0
+592,15068,23,16,16,16,24,24,0,0,0,0,0,0
+594,15088,22,16,16,16,24,24,0,0,0,0,0,0
+596,15108,20,16,16,16,24,24,0,0,0,0,0,0
+597,15128,19,16,16,16,24,24,0,0,0,0,0,0
+598,15148,18,16,16,16,24,24,0,0,0,0,0,0
+599,15168,16,16,16,16,24,24,0,0,0,0,0,0
+600,15188,15,8,8,8,16,16,0,0,0,0,0,0
+602,15208,14,8,8,8,16,16,0,0,0,0,0,0
+604,15228,12,8,8,8,16,16,0,0,0,0,0,0
+605,15248,11,8,8,8,16,16,0,0,0,0,0,0
+606,15268,10,8,8,8,16,16,0,0,0,0,0,0
+607,15288,8,8,8,8,16,16,0,0,0,0,0,0
+608,15308,8,8,8,8,16,16,0,0,0,0,0,0
+609,15327,6,0,0,0,8,8,0,0,0,0,0,0
+611,15347,5,0,0,0,8,8,0,0,0,0,0,0
+612,15367,4,0,0,0,8,8,0,0,0,0,0,0
+613,15387,2,0,0,0,8,8,0,0,0,0,0,0
+614,15407,1,0,0,0,8,8,0,0,0,0,0,0
+615,15427,0,0,0,0,8,8,0,0,0,0,0,0
+616,15447,30,24,24,24,0,0,0,0,0,0,0,0
+618,15467,29,24,24,24,0,0,0,0,0,0,0,0
+620,15487,28,24,24,24,0,0,0,0,0,0,0,0
+621,15507,26,24,24,24,0,0,0,0,0,0,0,0
+622,15527,25,24,24,24,0,0,0,0,0,0,0,0
+623,15547,24,24,24,24,0,0,0,0,0,0,0,0
+624,15567,22,16,16,16,24,24,0,0,0,0,0,0
+626,15587,21,16,16,16,24,24,0,0,0,0,0,0
+628,15607,20,16,16,16,24,24,0,0,0,0,0,0
+629,15627,18,16,16,16,24,24,0,0,0,0,0,0
+630,15647,17,16,16,16,24,24,0,0,0,0,0,0
+631,15667,16,16,16,16,24,24,0,0,0,0,0,0
+632,15687,14,8,8,8,16,16,0,0,0,0,0,0
+634,15707,13,8,8,8,16,16,0,0,0,0,0,0
+636,15727,12,8,8,8,16,16,0,0,0,0,0,0
+637,15747,11,8,8,8,16,16,0,0,0,0,0,0
+638,15767,10,8,8,8,16,16,0,0,0,0,0,0
+639,15787,8,8,8,8,16,16,0,0,0,0,0,0
+640,15806,7,0,0,0,8,8,0,0,0,0,0,0
+642,15826,6,0,0,0,8,8,0,0,0,0,0,0
+644,15846,4,0,0,0,8,8,0,0,0,0,0,0
+645,15866,3,0,0,0,8,8,0,0,0,0,0,0
+646,15886,2,0,0,0,8,8,0,0,0,0,0,0
+647,15906,0,0,0,0,8,8,0,0,0,0,0,0
+648,15926,31,24,24,24,0,0,0,0,0,0,0,0
+650,15946,30,24,24,24,0,0,0,0,0,0,0,0
+652,15966,28,24,24,24,0,0,0,0,0,0,0,0
+653,15986,27,24,24,24,0,0,0,0,0,0,0,0
+654,16006,26,24,24,24,0,0,0,0,0,0,0,0
+655,16026,24,24,24,24,0,0,0,0,0,0,0,0
+656,16046,23,16,16,16,24,24,0,0,0,0,0,0
+658,16066,22,16,16,16,24,24,0,0,0,0,0,0
+660,16086,20,16,16,16,24,24,0,0,0,0,0,0
+661,16106,19,16,16,16,24,24,0,0,0,0,0,0
+662,16126,18,16,16,16,24,24,0,0,0,0,0,0
+663,16146,16,16,16,16,24,24,0,0,0,0,0,0
+664,16166,15,8,8,8,16,16,0,0,0,0,0,0
+666,16186,14,8,8,8,16,16,0,0,0,0,0,0
+668,16206,13,8,8,8,16,16,0,0,0,0,0,0
+670,16226,12,8,8,8,16,16,0,0,0,0,0,0
+671,16246,10,8,8,8,16,16,0,0,0,0,0,0
+672,16266,9,8,8,8,16,16,0,0,0,0,0,0
+673,16286,8,8,8,8,16,16,0,0,0,0,0,0
+674,16305,6,0,0,0,8,8,0,0,0,0,0,0
+676,16325,5,0,0,0,8,8,0,0,0,0,0,0
+678,16345,4,0,0,0,8,8,0,0,0,0,0,0
+679,16365,2,0,0,0,8,8,0,0,0,0,0,0
+680,16385,1,0,0,0,8,8,0,0,0,0,0,0
+681,16405,0,0,0,0,8,8,0,0,0,0,0,0
+682,16425,30,24,24,24,0,0,0,0,0,0,0,0
+684,16445,29,24,24,24,0,0,0,0,0,0,0,0
+686,16465,28,24,24,24,0,0,0,0,0,0,0,0
+687,16485,26,24,24,24,0,0,0,0,0,0,0,0
+688,16505,25,24,24,24,0,0,0,0,0,0,0,0
+689,16525,24,24,24,24,0,0,0,0,0,0,0,0
+690,16545,22,16,16,16,24,24,0,0,0,0,0,0
+692,16565,21,16,16,16,24,24,0,0,0,0,0,0
+694,16585,20,16,16,16,24,24,0,0,0,0,0,0
+695,16605,18,16,16,16,24,24,0,0,0,0,0,0
+696,16625,17,16,16,16,24,24,0,0,0,0,0,0
+697,16645,16,16,16,16,24,24,0,0,0,0,0,0
+698,16665,14,8,8,8,16,16,0,0,0,0,0,0
+700,16685,13,8,8,8,16,16,0,0,0,0,0,0
+702,16705,12,8,8,8,16,16,0,0,0,0,0,0
+703,16725,10,8,8,8,16,16,0,0,0,0,0,0
+704,16745,9,8,8,8,16,16,0,0,0,0,0,0
+705,16765,8,8,8,8,16,16,0,0,0,0,0,0
+706,16784,6,0,0,0,8,8,0,0,0,0,0,0
+708,16804,5,0,0,0,8,8,0,0,0,0,0,0
+710,16824,4,0,0,0,8,8,0,0,0,0,0,0
+711,16844,2,0,0,0,8,8,0,0,0,0,0,0
+712,16864,1,0,0,0,8,8,0,0,0,0,0,0
+713,16884,0,0,0,0,8,8,0,0,0,0,0,0
+714,16904,30,24,24,24,0,0,0,0,0,0,0,0
+716,16924,29,24,24,24,0,0,0,0,0,0,0,0
+718,16944,28,24,24,24,0,0,0,0,0,0,0,0
+719,16964,26,24,24,24,0,0,0,0,0,0,0,0
+720,16984,25,24,24,24,0,0,0,0,0,0,0,0
+721,17004,24,24,24,24,0,0,0,0,0,0,0,0
+722,17024,22,16,16,16,24,24,0,0,0,0,0,0
+724,17044,21,16,16,16,24,24,0,0,0,0,0,0
+726,17064,20,16,16,16,24,24,0,0,0,0,0,0
+727,17084,18,16,16,16,24,24,0,0,0,0,0,0
+728,17104,18,16,16,16,24,24,0,0,0,0,0,0
+729,17124,16,16,16,16,24,24,0,0,0,0,0,0
+730,17144,15,8,8,8,16,16,0,0,0,0,0,0
+732,17164,14,8,8,8,16,16,0,0,0,0,0,0
+734,17184,12,8,8,8,16,16,0,0,0,0,0,0
+735,17204,11,8,8,8,16,16,0,0,0,0,0,0
+736,17224,10,8,8,8,16,16,0,0,0,0,0,0
+737,17244,8,8,8,8,16,16,0,0,0,0,0,0
+738,17263,7,0,0,0,8,8,0,0,0,0,0,0
+740,17283,6,0,0,0,8,8,0,0,0,0,0,0
+742,17303,4,0,0,0,8,8,0,0,0,0,0,0
+743,17323,4,0,0,0,8,8,0,0,0,0,0,0
+744,17343,2,0,0,0,8,8,0,0,0,0,0,0
+745,17363,1,0,0,0,8,8,0,0,0,0,0,0
+746,17383,0,0,0,0,8,8,0,0,0,0,0,0
+747,17403,30,24,24,24,0,0,0,0,0,0,0,0
+749,17423,29,24,24,24,0,0,0,0,0,0,0,0
+750,17443,28,24,24,24,0,0,0,0,0,0,0,0
+751,17463,26,24,24,24,0,0,0,0,0,0,0,0
+752,17483,25,24,24,24,0,0,0,0,0,0,0,0
+753,17503,24,24,24,24,0,0,0,0,0,0,0,0
+754,17523,22,16,16,16,24,24,0,0,0,0,0,0
+756,17543,21,16,16,16,24,24,0,0,0,0,0,0
+758,17563,20,16,16,16,24,24,0,0,0,0,0,0
+759,17583,18,16,16,16,24,24,0,0,0,0,0,0
+760,17603,18,16,16,16,24,24,0,0,0,0,0,0
+761,17623,16,16,16,16,24,24,0,0,0,0,0,0
+762,17643,15,8,8,8,16,16,0,0,0,0,0,0
+764,17663,14,8,8,8,16,16,0,0,0,0,0,0
+766,17683,12,8,8,8,16,16,0,0,0,0,0,0
+767,17703,11,8,8,8,16,16,0,0,0,0,0,0
+768,17723,10,8,8,8,16,16,0,0,0,0,0,0
+769,17743,8,8,8,8,16,16,0,0,0,0,0,0
+770,17762,7,0,0,0,8,8,0,0,0,0,0,0
+772,17782,6,0,0,0,8,8,0,0,0,0,0,0
+774,17802,5,0,0,0,8,8,0,0,0,0,0,0
+776,17822,4,0,0,0,8,8,0,0,0,0,0,0
+777,17842,2,0,0,0,8,8,0,0,0,0,0,0
+778,17862,1,0,0,0,8,8,0,0,0,0,0,0
+779,17882,0,0,0,0,8,8,0,0,0,0,0,0
+780,17902,30,24,24,24,0,0,0,0,0,0,0,0
+782,17922,30,24,24,24,0,0,0,0,0,0,0,0
+784,17942,28,24,24,24,0,0,0,0,0,0,0,0
+785,17962,27,24,24,24,0,0,0,0,0,0,0,0
+786,17982,26,24,24,24,0,0,0,0,0,0,0,0
+787,18002,24,24,24,24,0,0,0,0,0,0,0,0
+788,18022,23,16,16,16,24,24,0,0,0,0,0,0
+790,18042,22,16,16,16,24,24,0,0,0,0,0,0
+792,18062,20,16,16,16,24,24,0,0,0,0,0,0
+793,18082,19,16,16,16,24,24,0,0,0,0,0,0
+794,18102,18,16,16,16,24,24,0,0,0,0,0,0
+795,18122,16,16,16,16,24,24,0,0,0,0,0,0
+796,18142,16,16,16,16,24,24,0,0,0,0,0,0
+797,18162,14,8,8,8,16,16,0,0,0,0,0,0
+799,18182,13,8,8,8,16,16,0,0,0,0,0,0
+800,18202,12,8,8,8,16,16,0,0,0,0,0,0
+801,18222,10,8,8,8,16,16,0,0,0,0,0,0
+802,18242,9,8,8,8,16,16,0,0,0,0,0,0
+803,18262,8,8,8,8,16,16,0,0,0,0,0,0
+804,18281,6,0,0,0,8,8,0,0,0,0,0,0
+806,18301,5,0,0,0,8,8,0,0,0,0,0,0
+807,18321,4,0,0,0,8,8,0,0,0,0,0,0
+808,18341,2,0,0,0,8,8,0,0,0,0,0,0
+809,18361,1,0,0,0,8,8,0,0,0,0,0,0
+810,18381,0,0,0,0,8,8,0,0,0,0,0,0
+811,18401,30,24,24,24,0,0,0,0,0,0,0,0
+813,18421,29,24,24,24,0,0,0,0,0,0,0,0
+815,18441,28,24,24,24,0,0,0,0,0,0,0,0
+816,18461,26,24,24,24,0,0,0,0,0,0,0,0
+817,18481,25,24,24,24,0,0,0,0,0,0,0,0
+818,18501,24,24,24,24,0,0,0,0,0,0,0,0
+819,18521,22,16,16,16,24,24,0,0,0,0,0,0
+821,18541,21,16,16,16,24,24,0,0,0,0,0,0
+823,18561,20,16,16,16,24,24,0,0,0,0,0,0
+824,18581,19,16,16,16,24,24,0,0,0,0,0,0
+825,18601,17,16,16,16,24,24,0,0,0,0,0,0
+826,18621,16,16,16,16,24,24,0,0,0,0,0,0
+827,18641,15,8,8,8,16,16,0,0,0,0,0,0
+829,18661,14,8,8,8,16,16,0,0,0,0,0,0
+831,18681,12,8,8,8,16,16,0,0,0,0,0,0
+832,18701,11,8,8,8,16,16,0,0,0,0,0,0
+833,18721,10,8,8,8,16,16,0,0,0,0,0,0
+834,18741,8,8,8,8,16,16,0,0,0,0,0,0
+835,18760,7,0,0,0,8,8,0,0,0,0,0,0
+837,18780,6,0,0,0,8,8,0,0,0,0,0,0
+839,18800,4,0,0,0,8,8,0,0,0,0,0,0
+840,18820,3,0,0,0,8,8,0,0,0,0,0,0
+841,18840,2,0,0,0,8,8,0,0,0,0,0,0
+842,18860,0,0,0,0,8,8,0,0,0,0,0,0
+843,18880,31,24,24,24,0,0,0,0,0,0,0,0
+845,18900,30,24,24,24,0,0,0,0,0,0,0,0
+847,18920,28,24,24,24,0,0,0,0,0,0,0,0
+848,18940,27,24,24,24,0,0,0,0,0,0,0,0
+849,18960,26,24,24,24,0,0,0,0,0,0,0,0
+850,18980,24,24,24,24,0,0,0,0,0,0,0,0
+851,19000,24,24,24,24,0,0,0,0,0,0,0,0
+852,19020,22,16,16,16,24,24,0,0,0,0,0,0
+854,19040,21,16,16,16,24,24,0,0,0,0,0,0
+855,19060,20,16,16,16,24,24,0,0,0,0,0,0
+856,19080,18,16,16,16,24,24,0,0,0,0,0,0
+857,19100,17,16,16,16,24,24,0,0,0,0,0,0
+858,19120,16,16,16,16,24,24,0,0,0,0,0,0
+859,19140,14,8,8,8,16,16,0,0,0,0,0,0
+861,19160,13,8,8,8,16,16,0,0,0,0,0,0
+863,19180,12,8,8,8,16,16,0,0,0,0,0,0
+864,19200,10,8,8,8,16,16,0,0,0,0,0,0
+865,19220,9,8,8,8,16,16,0,0,0,0,0,0
+866,19240,8,8,8,8,16,16,0,0,0,0,0,0
+867,19259,6,0,0,0,8,8,0,0,0,0,0,0
+869,19279,5,0,0,0,8,8,0,0,0,0,0,0
+871,19299,4,0,0,0,8,8,0,0,0,0,0,0
+872,19319,2,0,0,0,8,8,0,0,0,0,0,0
+873,19339,1,0,0,0,8,8,0,0,0,0,0,0
+874,19359,0,0,0,0,8,8,0,0,0,0,0,0
+875,19379,30,24,24,24,0,0,0,0,0,0,0,0
+877,19399,29,24,24,24,0,0,0,0,0,0,0,0
+879,19419,28,24,24,24,0,0,0,0,0,0,0,0
+880,19439,26,24,24,24,0,0,0,0,0,0,0,0
+881,19459,25,24,24,24,0,0,0,0,0,0,0,0
+882,19479,24,24,24,24,0,0,0,0,0,0,0,0
+883,19499,22,16,16,16,24,24,0,0,0,0,0,0
+885,19519,21,16,16,16,24,24,0,0,0,0,0,0
+887,19539,20,16,16,16,24,24,0,0,0,0,0,0
+888,19559,18,16,16,16,24,24,0,0,0,0,0,0
+889,19579,17,16,16,16,24,24,0,0,0,0,0,0
+890,19599,16,16,16,16,24,24,0,0,0,0,0,0
+891,19619,14,8,8,8,16,16,0,0,0,0,0,0
+893,19639,13,8,8,8,16,16,0,0,0,0,0,0
+895,19659,12,8,8,8,16,16,0,0,0,0,0,0
+896,19679,10,8,8,8,16,16,0,0,0,0,0,0
+897,19699,9,8,8,8,16,16,0,0,0,0,0,0
+898,19719,8,8,8,8,16,16,0,0,0,0,0,0
+899,19738,7,0,0,0,8,8,0,0,0,0,0,0
+901,19758,6,0,0,0,8,8,0,0,0,0,0,0
+903,19778,4,0,0,0,8,8,0,0,0,0,0,0
+904,19798,3,0,0,0,8,8,0,0,0,0,0,0
+905,19818,2,0,0,0,8,8,0,0,0,0,0,0
+906,19838,0,0,0,0,8,8,0,0,0,0,0,0
+907,19858,31,24,24,24,0,0,0,0,0,0,0,0
+909,19878,30,24,24,24,0,0,0,0,0,0,0,0
+911,19898,28,24,24,24,0,0,0,0,0,0,0,0
+912,19918,27,24,24,24,0,0,0,0,0,0,0,0
+913,19938,26,24,24,24,0,0,0,0,0,0,0,0
+914,19958,25,24,24,24,0,0,0,0,0,0,0,0
+915,19978,24,24,24,24,0,0,0,0,0,0,0,0
+916,19998,22,16,16,16,24,24,0,0,0,0,0,0
+918,20018,21,16,16,16,24,24,0,0,0,0,0,0
+920,20038,20,16,16,16,24,24,0,0,0,0,0,0
+921,20058,18,16,16,16,24,24,0,0,0,0,0,0
+922,20078,17,16,16,16,24,24,0,0,0,0,0,0
+923,20098,16,16,16,16,24,24,0,0,0,0,0,0
+924,20118,14,8,8,8,16,16,0,0,0,0,0,0
+926,20138,13,8,8,8,16,16,0,0,0,0,0,0
+928,20158,12,8,8,8,16,16,0,0,0,0,0,0
+929,20178,10,8,8,8,16,16,0,0,0,0,0,0
+930,20198,9,8,8,8,16,16,0,0,0,0,0,0
+931,20218,8,8,8,8,16,16,0,0,0,0,0,0
+932,20237,6,0,0,0,8,8,0,0,0,0,0,0
+934,20257,5,0,0,0,8,8,0,0,0,0,0,0
+936,20277,4,0,0,0,8,8,0,0,0,0,0,0
+937,20297,3,0,0,0,8,8,0,0,0,0,0,0
+938,20317,2,0,0,0,8,8,0,0,0,0,0,0
+939,20337,0,0,0,0,8,8,0,0,0,0,0,0
+940,20357,31,24,24,24,0,0,0,0,0,0,0,0
+942,20377,30,24,24,24,0,0,0,0,0,0,0,0
+944,20397,29,24,24,24,0,0,0,0,0,0,0,0
+945,20417,28,24,24,24,0,0,0,0,0,0,0,0
+946,20437,26,24,24,24,0,0,0,0,0,0,0,0
+947,20457,24,24,24,24,0,0,0,0,0,0,0,0
+948,20477,24,24,24,24,0,0,0,0,0,0,0,0
+949,20497,22,16,16,16,24,24,0,0,0,0,0,0
+951,20517,21,16,16,16,24,24,0,0,0,0,0,0
+952,20537,20,16,16,16,24,24,0,0,0,0,0,0
+953,20557,18,16,16,16,24,24,0,0,0,0,0,0
+954,20577,17,16,16,16,24,24,0,0,0,0,0,0
+955,20597,16,16,16,16,24,24,0,0,0,0,0,0
+956,20617,14,8,8,8,16,16,0,0,0,0,0,0
+958,20637,13,8,8,8,16,16,0,0,0,0,0,0
+960,20657,12,8,8,8,16,16,0,0,0,0,0,0
+961,20677,10,8,8,8,16,16,0,0,0,0,0,0
+962,20697,9,8,8,8,16,16,0,0,0,0,0,0
+963,20717,8,8,8,8,16,16,0,0,0,0,0,0
+964,20736,6,0,0,0,8,8,0,0,0,0,0,0
+966,20756,6,0,0,0,8,8,0,0,0,0,0,0
+968,20776,4,0,0,0,8,8,0,0,0,0,0,0
+969,20796,3,0,0,0,8,8,0,0,0,0,0,0
+970,20816,2,0,0,0,8,8,0,0,0,0,0,0
+971,20836,0,0,0,0,8,8,0,0,0,0,0,0
+972,20856,31,24,24,24,0,0,0,0,0,0,0,0
+974,20876,30,24,24,24,0,0,0,0,0,0,0,0
+976,20896,28,24,24,24,0,0,0,0,0,0,0,0
+977,20916,27,24,24,24,0,0,0,0,0,0,0,0
+978,20936,26,24,24,24,0,0,0,0,0,0,0,0
+979,20956,24,24,24,24,0,0,0,0,0,0,0,0
+980,20976,24,24,24,24,0,0,0,0,0,0,0,0
+981,20996,22,16,16,16,24,24,0,0,0,0,0,0
+983,21016,21,16,16,16,24,24,0,0,0,0,0,0
+985,21036,20,16,16,16,24,24,0,0,0,0,0,0
+986,21056,18,16,16,16,24,24,0,0,0,0,0,0
+987,21076,17,16,16,16,24,24,0,0,0,0,0,0
+988,21096,16,16,16,16,24,24,0,0,0,0,0,0
+989,21116,14,8,8,8,16,16,0,0,0,0,0,0
+991,21136,14,8,8,8,16,16,0,0,0,0,0,0
+993,21156,12,8,8,8,16,16,0,0,0,0,0,0
+994,21176,11,8,8,8,16,16,0,0,0,0,0,0
+995,21196,10,8,8,8,16,16,0,0,0,0,0,0
+996,21216,8,8,8,8,16,16,0,0,0,0,0,0
+997,21235,7,0,0,0,8,8,0,0,0,0,0,0
+999,21255,6,0,0,0,8,8,0,0,0,0,0,0
+1001,21275,4,0,0,0,8,8,0,0,0,0,0,0
+1002,21295,3,0,0,0,8,8,0,0,0,0,0,0
+1003,21315,2,0,0,0,8,8,0,0,0,0,0,0
+1004,21335,0,0,0,0,8,8,0,0,0,0,0,0
+1005,21355,31,24,24,24,0,0,0,0,0,0,0,0
+1007,21375,30,24,24,24,0,0,0,0,0,0,0,0
+1009,21395,28,24,24,24,0,0,0,0,0,0,0,0
+1010,21415,27,24,24,24,0,0,0,0,0,0,0,0
+1011,21435,26,24,24,24,0,0,0,0,0,0,0,0
+1012,21455,24,24,24,24,0,0,0,0,0,0,0,0
+1013,21475,23,16,16,16,24,24,0,0,0,0,0,0
+1015,21495,22,16,16,16,24,24,0,0,0,0,0,0
+1017,21515,20,16,16,16,24,24,0,0,0,0,0,0
+1018,21535,19,16,16,16,24,24,0,0,0,0,0,0
+1019,21555,18,16,16,16,24,24,0,0,0,0,0,0
+1020,21575,16,16,16,16,24,24,0,0,0,0,0,0
+1021,21595,16,16,16,16,24,24,0,0,0,0,0,0
+1022,21615,14,8,8,8,16,16,0,0,0,0,0,0
+1024,21635,13,8,8,8,16,16,0,0,0,0,0,0
+1025,21655,12,8,8,8,16,16,0,0,0,0,0,0
+1026,21675,10,8,8,8,16,16,0,0,0,0,0,0
+1027,21695,9,8,8,8,16,16,0,0,0,0,0,0
+1028,21715,8,8,8,8,16,16,0,0,0,0,0,0
+1029,21734,6,0,0,0,8,8,0,0,0,0,0,0
+1031,21754,5,0,0,0,8,8,0,0,0,0,0,0
+1033,21774,4,0,0,0,8,8,0,0,0,0,0,0
+1034,21794,2,0,0,0,8,8,0,0,0,0,0,0
+1035,21814,1,0,0,0,8,8,0,0,0,0,0,0
+1036,21834,0,0,0,0,8,8,0,0,0,0,0,0
+1037,21854,30,24,24,24,0,0,0,0,0,0,0,0
+1039,21874,29,24,24,24,0,0,0,0,0,0,0,0
+1041,21894,28,24,24,24,0,0,0,0,0,0,0,0
+1042,21914,26,24,24,24,0,0,0,0,0,0,0,0
+1043,21934,26,24,24,24,0,0,0,0,0,0,0,0
+1044,21954,24,24,24,24,0,0,0,0,0,0,0,0
+1045,21974,23,16,16,16,24,24,0,0,0,0,0,0
+1047,21994,22,16,16,16,24,24,0,0,0,0,0,0
+1049,22014,20,16,16,16,24,24,0,0,0,0,0,0
+1050,22034,19,16,16,16,24,24,0,0,0,0,0,0
+1051,22054,18,16,16,16,24,24,0,0,0,0,0,0
+1052,22074,17,16,16,16,24,24,0,0,0,0,0,0
+1053,22094,16,16,16,16,24,24,0,0,0,0,0,0
+1054,22114,14,8,8,8,16,16,0,0,0,0,0,0
+1056,22134,13,8,8,8,16,16,0,0,0,0,0,0
+1058,22154,12,8,8,8,16,16,0,0,0,0,0,0
+1059,22174,10,8,8,8,16,16,0,0,0,0,0,0
+1060,22194,9,8,8,8,16,16,0,0,0,0,0,0
+1061,22214,8,8,8,8,16,16,0,0,0,0,0,0
+1062,22233,6,0,0,0,8,8,0,0,0,0,0,0
+1064,22253,6,0,0,0,8,8,0,0,0,0,0,0
+1066,22273,4,0,0,0,8,8,0,0,0,0,0,0
+1067,22293,3,0,0,0,8,8,0,0,0,0,0,0
+1068,22313,2,0,0,0,8,8,0,0,0,0,0,0
+1069,22333,0,0,0,0,8,8,0,0,0,0,0,0
+1070,22353,31,24,24,24,0,0,0,0,0,0,0,0
+1072,22373,30,24,24,24,0,0,0,0,0,0,0,0
+1074,22393,28,24,24,24,0,0,0,0,0,0,0,0
+1075,22413,27,24,24,24,0,0,0,0,0,0,0,0
+1076,22433,26,24,24,24,0,0,0,0,0,0,0,0
+1077,22453,24,24,24,24,0,0,0,0,0,0,0,0
+1078,22473,23,16,16,16,24,24,0,0,0,0,0,0
+1080,22493,22,16,16,16,24,24,0,0,0,0,0,0
+1082,22513,20,16,16,16,24,24,0,0,0,0,0,0
+1083,22533,19,16,16,16,24,24,0,0,0,0,0,0
+1084,22553,18,16,16,16,24,24,0,0,0,0,0,0
+1085,22573,16,16,16,16,24,24,0,0,0,0,0,0
+1086,22593,15,8,8,8,16,16,0,0,0,0,0,0
+1088,22613,14,8,8,8,16,16,0,0,0,0,0,0
+1090,22633,12,8,8,8,16,16,0,0,0,0,0,0
+1091,22653,11,8,8,8,16,16,0,0,0,0,0,0
+1092,22673,10,8,8,8,16,16,0,0,0,0,0,0
+1093,22693,8,8,8,8,16,16,0,0,0,0,0,0
+1094,22712,6,0,0,0,8,8,0,0,0,0,0,0
+1096,22732,6,0,0,0,8,8,0,0,0,0,0,0
+1098,22752,4,0,0,0,8,8,0,0,0,0,0,0
+1099,22772,2,0,0,0,8,8,0,0,0,0,0,0
+1100,22792,1,0,0,0,8,8,0,0,0,0,0,0
+1101,22812,0,0,0,0,8,8,0,0,0,0,0,0
+1102,22832,30,24,24,24,0,0,0,0,0,0,0,0
+1104,22852,29,24,24,24,0,0,0,0,0,0,0,0
+1106,22872,28,24,24,24,0,0,0,0,0,0,0,0
+1107,22892,27,24,24,24,0,0,0,0,0,0,0,0
+1108,22912,26,24,24,24,0,0,0,0,0,0,0,0
+1109,22932,24,24,24,24,0,0,0,0,0,0,0,0
+1110,22952,23,16,16,16,24,24,0,0,0,0,0,0
+1112,22972,22,16,16,16,24,24,0,0,0,0,0,0
+1114,22992,20,16,16,16,24,24,0,0,0,0,0,0
+1115,23012,19,16,16,16,24,24,0,0,0,0,0,0
+1116,23032,18,16,16,16,24,24,0,0,0,0,0,0
+1117,23052,16,16,16,16,24,24,0,0,0,0,0,0
+1118,23072,16,16,16,16,24,24,0,0,0,0,0,0
+1119,23092,14,8,8,8,16,16,0,0,0,0,0,0
+1121,23112,13,8,8,8,16,16,0,0,0,0,0,0
+1122,23132,12,8,8,8,16,16,0,0,0,0,0,0
+1123,23152,10,8,8,8,16,16,0,0,0,0,0,0
+1124,23172,9,8,8,8,16,16,0,0,0,0,0,0
+1125,23192,8,8,8,8,16,16,0,0,0,0,0,0
+1126,23211,6,0,0,0,8,8,0,0,0,0,0,0
+1128,23231,5,0,0,0,8,8,0,0,0,0,0,0
+1130,23251,4,0,0,0,8,8,0,0,0,0,0,0
+1131,23271,2,0,0,0,8,8,0,0,0,0,0,0
+1132,23291,2,0,0,0,8,8,0,0,0,0,0,0
+1133,23311,0,0,0,0,8,8,0,0,0,0,0,0
+1134,23331,31,24,24,24,0,0,0,0,0,0,0,0
+1136,23351,30,24,24,24,0,0,0,0,0,0,0,0
+1138,23371,28,24,24,24,0,0,0,0,0,0,0,0
+1139,23391,27,24,24,24,0,0,0,0,0,0,0,0
+1140,23411,26,24,24,24,0,0,0,0,0,0,0,0
+1141,23431,24,24,24,24,0,0,0,0,0,0,0,0
+1142,23451,23,16,16,16,24,24,0,0,0,0,0,0
+1144,23471,22,16,16,16,24,24,0,0,0,0,0,0
+1146,23491,20,16,16,16,24,24,0,0,0,0,0,0
+1147,23511,19,16,16,16,24,24,0,0,0,0,0,0
+1148,23531,18,16,16,16,24,24,0,0,0,0,0,0
+1149,23551,16,16,16,16,24,24,0,0,0,0,0,0
+1150,23571,15,8,8,8,16,16,0,0,0,0,0,0
+1152,23591,14,8,8,8,16,16,0,0,0,0,0,0
+1154,23611,12,8,8,8,16,16,0,0,0,0,0,0
+1155,23631,11,8,8,8,16,16,0,0,0,0,0,0
+1156,23651,10,8,8,8,16,16,0,0,0,0,0,0
+1157,23671,8,8,8,8,16,16,0,0,0,0,0,0
+1158,23690,7,0,0,0,8,8,0,0,0,0,0,0
+1160,23710,6,0,0,0,8,8,0,0,0,0,0,0
+1162,23730,4,0,0,0,8,8,0,0,0,0,0,0
+1163,23750,3,0,0,0,8,8,0,0,0,0,0,0
+1164,23770,2,0,0,0,8,8,0,0,0,0,0,0
+1165,23790,1,0,0,0,8,8,0,0,0,0,0,0
+1166,23810,0,0,0,0,8,8,0,0,0,0,0,0
+1167,23830,30,24,24,24,0,0,0,0,0,0,0,0
+1169,23850,29,24,24,24,0,0,0,0,0,0,0,0
+1170,23870,28,24,24,24,0,0,0,0,0,0,0,0
+1171,23890,26,24,24,24,0,0,0,0,0,0,0,0
+1172,23910,25,24,24,24,0,0,0,0,0,0,0,0
+1173,23930,24,24,24,24,0,0,0,0,0,0,0,0
+1174,23950,22,16,16,16,24,24,0,0,0,0,0,0
+1176,23970,21,16,16,16,24,24,0,0,0,0,0,0
+1178,23990,20,16,16,16,24,24,0,0,0,0,0,0
+1179,24010,18,16,16,16,24,24,0,0,0,0,0,0
+1180,24030,17,16,16,16,24,24,0,0,0,0,0,0
+1181,24050,16,16,16,16,24,24,0,0,0,0,0,0
+1182,24070,14,8,8,8,16,16,0,0,0,0,0,0
+1184,24090,13,8,8,8,16,16,0,0,0,0,0,0
+1186,24110,12,8,8,8,16,16,0,0,0,0,0,0
+1187,24130,10,8,8,8,16,16,0,0,0,0,0,0
+1188,24150,9,8,8,8,16,16,0,0,0,0,0,0
+1189,24170,8,8,8,8,16,16,0,0,0,0,0,0
+1190,24189,6,0,0,0,8,8,0,0,0,0,0,0
+1192,24209,5,0,0,0,8,8,0,0,0,0,0,0
+1194,24229,4,0,0,0,8,8,0,0,0,0,0,0
+1195,24249,2,0,0,0,8,8,0,0,0,0,0,0
+1196,24269,1,0,0,0,8,8,0,0,0,0,0,0
+1197,24289,0,0,0,0,8,8,0,0,0,0,0,0
+1198,24309,30,24,24,24,0,0,0,0,0,0,0,0
+1200,24329,29,24,24,24,0,0,0,0,0,0,0,0
+1202,24349,28,24,24,24,0,0,0,0,0,0,0,0
+1203,24369,26,24,24,24,0,0,0,0,0,0,0,0
+1204,24389,25,24,24,24,0,0,0,0,0,0,0,0
+1205,24409,24,24,24,24,0,0,0,0,0,0,0,0
+1206,24429,22,16,16,16,24,24,0,0,0,0,0,0
+1208,24449,21,16,16,16,24,24,0,0,0,0,0,0
+1210,24469,20,16,16,16,24,24,0,0,0,0,0,0
+1211,24489,18,16,16,16,24,24,0,0,0,0,0,0
+1212,24509,17,16,16,16,24,24,0,0,0,0,0,0
+1213,24529,16,16,16,16,24,24,0,0,0,0,0,0
+1214,24549,14,8,8,8,16,16,0,0,0,0,0,0
+1216,24569,13,8,8,8,16,16,0,0,0,0,0,0
+1218,24589,12,8,8,8,16,16,0,0,0,0,0,0
+1219,24609,10,8,8,8,16,16,0,0,0,0,0,0
+1220,24629,9,8,8,8,16,16,0,0,0,0,0,0
+1221,24649,8,8,8,8,16,16,0,0,0,0,0,0
+1222,24668,6,0,0,0,8,8,0,0,0,0,0,0
+1224,24688,5,0,0,0,8,8,0,0,0,0,0,0
+1226,24708,4,0,0,0,8,8,0,0,0,0,0,0
+1227,24728,2,0,0,0,8,8,0,0,0,0,0,0
+1228,24748,1,0,0,0,8,8,0,0,0,0,0,0
+1229,24768,0,0,0,0,8,8,0,0,0,0,0,0
+1230,24788,31,24,24,24,0,0,0,0,0,0,0,0
+1232,24808,30,24,24,24,0,0,0,0,0,0,0,0
+1234,24828,28,24,24,24,0,0,0,0,0,0,0,0
+1235,24848,27,24,24,24,0,0,0,0,0,0,0,0
+1236,24868,26,24,24,24,0,0,0,0,0,0,0,0
+1237,24888,24,24,24,24,0,0,0,0,0,0,0,0
+1238,24908,23,16,16,16,24,24,0,0,0,0,0,0
+1240,24928,22,16,16,16,24,24,0,0,0,0,0,0
+1242,24948,20,16,16,16,24,24,0,0,0,0,0,0
+1243,24968,19,16,16,16,24,24,0,0,0,0,0,0
+1244,24988,18,16,16,16,24,24,0,0,0,0,0,0
+1245,25008,16,16,16,16,24,24,0,0,0,0,0,0
+1246,25028,15,8,8,8,16,16,0,0,0,0,0,0
+1248,25048,14,8,8,8,16,16,0,0,0,0,0,0
+1250,25068,12,8,8,8,16,16,0,0,0,0,0,0
+1251,25088,11,8,8,8,16,16,0,0,0,0,0,0
+1252,25108,10,8,8,8,16,16,0,0,0,0,0,0
+1253,25128,9,8,8,8,16,16,0,0,0,0,0,0
+1254,25148,8,8,8,8,16,16,0,0,0,0,0,0
+1255,25167,6,0,0,0,8,8,0,0,0,0,0,0
+1257,25187,5,0,0,0,8,8,0,0,0,0,0,0
+1259,25207,4,0,0,0,8,8,0,0,0,0,0,0
+1260,25227,2,0,0,0,8,8,0,0,0,0,0,0
+1261,25247,1,0,0,0,8,8,0,0,0,0,0,0
+1262,25267,0,0,0,0,8,8,0,0,0,0,0,0
+1263,25287,31,24,24,24,0,0,0,0,0,0,0,0
+1265,25307,30,24,24,24,0,0,0,0,0,0,0,0
+1267,25327,28,24,24,24,0,0,0,0,0,0,0,0
+1268,25347,27,24,24,24,0,0,0,0,0,0,0,0
+1269,25367,26,24,24,24,0,0,0,0,0,0,0,0
+1270,25387,24,24,24,24,0,0,0,0,0,0,0,0
+1271,25407,23,16,16,16,24,24,0,0,0,0,0,0
+1273,25427,22,16,16,16,24,24,0,0,0,0,0,0
+1275,25447,20,16,16,16,24,24,0,0,0,0,0,0
+1276,25467,19,16,16,16,24,24,0,0,0,0,0,0
+1277,25487,18,16,16,16,24,24,0,0,0,0,0,0
+1278,25507,16,16,16,16,24,24,0,0,0,0,0,0
+1279,25527,15,8,8,8,16,16,0,0,0,0,0,0
+1281,25547,14,8,8,8,16,16,0,0,0,0,0,0
+1283,25567,12,8,8,8,16,16,0,0,0,0,0,0
+1284,25587,11,8,8,8,16,16,0,0,0,0,0,0
+1285,25607,10,8,8,8,16,16,0,0,0,0,0,0
+1286,25627,9,8,8,8,16,16,0,0,0,0,0,0
+1287,25647,8,8,8,8,16,16,0,0,0,0,0,0
+1288,25666,6,0,0,0,8,8,0,0,0,0,0,0
+1290,25686,5,0,0,0,8,8,0,0,0,0,0,0
+1292,25706,4,0,0,0,8,8,0,0,0,0,0,0
+1293,25726,2,0,0,0,8,8,0,0,0,0,0,0
+1294,25746,1,0,0,0,8,8,0,0,0,0,0,0
+1295,25766,0,0,0,0,8,8,0,0,0,0,0,0
+1296,25786,30,24,24,24,0,0,0,0,0,0,0,0
+1298,25806,29,24,24,24,0,0,0,0,0,0,0,0
+1300,25826,28,24,24,24,0,0,0,0,0,0,0,0
+1301,25846,27,24,24,24,0,0,0,0,0,0,0,0
+1302,25866,26,24,24,24,0,0,0,0,0,0,0,0
+1303,25886,24,24,24,24,0,0,0,0,0,0,0,0
+1304,25906,23,16,16,16,24,24,0,0,0,0,0,0
+1306,25926,22,16,16,16,24,24,0,0,0,0,0,0
+1308,25946,20,16,16,16,24,24,0,0,0,0,0,0
+1309,25966,19,16,16,16,24,24,0,0,0,0,0,0
+1310,25986,18,16,16,16,24,24,0,0,0,0,0,0
+1311,26006,16,16,16,16,24,24,0,0,0,0,0,0
+1312,26026,16,16,16,16,24,24,0,0,0,0,0,0
+1313,26046,14,8,8,8,16,16,0,0,0,0,0,0
+1315,26066,13,8,8,8,16,16,0,0,0,0,0,0
+1316,26086,12,8,8,8,16,16,0,0,0,0,0,0
+1317,26106,10,8,8,8,16,16,0,0,0,0,0,0
+1318,26126,9,8,8,8,16,16,0,0,0,0,0,0
+1319,26146,8,8,8,8,16,16,0,0,0,0,0,0
+1320,26165,6,0,0,0,8,8,0,0,0,0,0,0
+1322,26185,5,0,0,0,8,8,0,0,0,0,0,0
+1323,26205,4,0,0,0,8,8,0,0,0,0,0,0
+1324,26225,2,0,0,0,8,8,0,0,0,0,0,0
+1325,26245,1,0,0,0,8,8,0,0,0,0,0,0
+1326,26265,0,0,0,0,8,8,0,0,0,0,0,0
+1327,26285,30,24,24,24,0,0,0,0,0,0,0,0
+1329,26305,29,24,24,24,0,0,0,0,0,0,0,0
+1330,26325,28,24,24,24,0,0,0,0,0,0,0,0
+1331,26345,26,24,24,24,0,0,0,0,0,0,0,0
+1332,26365,25,24,24,24,0,0,0,0,0,0,0,0
+1333,26385,24,24,24,24,0,0,0,0,0,0,0,0
+1334,26405,22,16,16,16,24,24,0,0,0,0,0,0
+1336,26425,21,16,16,16,24,24,0,0,0,0,0,0
+1337,26445,20,16,16,16,24,24,0,0,0,0,0,0
+1338,26465,18,16,16,16,24,24,0,0,0,0,0,0
+1339,26485,17,16,16,16,24,24,0,0,0,0,0,0
+1340,26505,16,16,16,16,24,24,0,0,0,0,0,0
+1341,26525,14,8,8,8,16,16,0,0,0,0,0,0
+1343,26545,13,8,8,8,16,16,0,0,0,0,0,0
+1344,26565,12,8,8,8,16,16,0,0,0,0,0,0
+1345,26585,10,8,8,8,16,16,0,0,0,0,0,0
+1346,26605,9,8,8,8,16,16,0,0,0,0,0,0
+1347,26625,8,8,8,8,16,16,0,0,0,0,0,0
+1348,26644,6,0,0,0,8,8,0,0,0,0,0,0
+1350,26664,5,0,0,0,8,8,0,0,0,0,0,0
+1351,26684,4,0,0,0,8,8,0,0,0,0,0,0
+1352,26704,2,0,0,0,8,8,0,0,0,0,0,0
+1353,26724,1,0,0,0,8,8,0,0,0,0,0,0
+1354,26744,0,0,0,0,8,8,0,0,0,0,0,0
+1355,26764,30,24,24,24,0,0,0,0,0,0,0,0
+1357,26784,29,24,24,24,0,0,0,0,0,0,0,0
+1359,26804,28,24,24,24,0,0,0,0,0,0,0,0
+1360,26824,26,24,24,24,0,0,0,0,0,0,0,0
+1361,26844,25,24,24,24,0,0,0,0,0,0,0,0
+1362,26864,24,24,24,24,0,0,0,0,0,0,0,0
+1363,26884,22,16,16,16,24,24,0,0,0,0,0,0
+1365,26904,21,16,16,16,24,24,0,0,0,0,0,0
+1367,26924,20,16,16,16,24,24,0,0,0,0,0,0
+1368,26944,18,16,16,16,24,24,0,0,0,0,0,0
+1369,26964,17,16,16,16,24,24,0,0,0,0,0,0
+1370,26984,16,16,16,16,24,24,0,0,0,0,0,0
+1371,27004,15,8,8,8,16,16,0,0,0,0,0,0
+1373,27024,14,8,8,8,16,16,0,0,0,0,0,0
+1375,27044,12,8,8,8,16,16,0,0,0,0,0,0
+1376,27064,11,8,8,8,16,16,0,0,0,0,0,0
+1377,27084,10,8,8,8,16,16,0,0,0,0,0,0
+1378,27104,8,8,8,8,16,16,0,0,0,0,0,0
+1379,27123,7,0,0,0,8,8,0,0,0,0,0,0
+1381,27143,6,0,0,0,8,8,0,0,0,0,0,0
+1383,27163,4,0,0,0,8,8,0,0,0,0,0,0
+1384,27183,3,0,0,0,8,8,0,0,0,0,0,0
+1385,27203,2,0,0,0,8,8,0,0,0,0,0,0
+1386,27223,0,0,0,0,8,8,0,0,0,0,0,0
+1387,27243,0,0,0,0,8,8,0,0,0,0,0,0
+1388,27263,30,24,24,24,0,0,0,0,0,0,0,0
+1390,27283,29,24,24,24,0,0,0,0,0,0,0,0
+1391,27303,28,24,24,24,0,0,0,0,0,0,0,0
+1392,27323,26,24,24,24,0,0,0,0,0,0,0,0
+1393,27343,25,24,24,24,0,0,0,0,0,0,0,0
+1394,27363,24,24,24,24,0,0,0,0,0,0,0,0
+1395,27383,22,16,16,16,24,24,0,0,0,0,0,0
+1397,27403,21,16,16,16,24,24,0,0,0,0,0,0
+1399,27423,20,16,16,16,24,24,0,0,0,0,0,0
+1400,27443,18,16,16,16,24,24,0,0,0,0,0,0
+1401,27463,17,16,16,16,24,24,0,0,0,0,0,0
+1402,27483,16,16,16,16,24,24,0,0,0,0,0,0
+1403,27503,14,8,8,8,16,16,0,0,0,0,0,0
+1405,27523,13,8,8,8,16,16,0,0,0,0,0,0
+1407,27543,12,8,8,8,16,16,0,0,0,0,0,0
+1408,27563,11,8,8,8,16,16,0,0,0,0,0,0
+1409,27583,10,8,8,8,16,16,0,0,0,0,0,0
+1410,27603,8,8,8,8,16,16,0,0,0,0,0,0
+1411,27622,7,0,0,0,8,8,0,0,0,0,0,0
+1413,27642,6,0,0,0,8,8,0,0,0,0,0,0
+1415,27662,4,0,0,0,8,8,0,0,0,0,0,0
+1416,27682,3,0,0,0,8,8,0,0,0,0,0,0
+1417,27702,2,0,0,0,8,8,0,0,0,0,0,0
+1418,27722,0,0,0,0,8,8,0,0,0,0,0,0
+1419,27742,31,24,24,24,0,0,0,0,0,0,0,0
+1421,27762,30,24,24,24,0,0,0,0,0,0,0,0
+1423,27782,28,24,24,24,0,0,0,0,0,0,0,0
+1424,27802,27,24,24,24,0,0,0,0,0,0,0,0
+1425,27822,26,24,24,24,0,0,0,0,0,0,0,0
+1426,27842,24,24,24,24,0,0,0,0,0,0,0,0
+1427,27862,23,16,16,16,24,24,0,0,0,0,0,0
+1429,27882,22,16,16,16,24,24,0,0,0,0,0,0
+1431,27902,20,16,16,16,24,24,0,0,0,0,0,0
+1432,27922,19,16,16,16,24,24,0,0,0,0,0,0
+1433,27942,18,16,16,16,24,24,0,0,0,0,0,0
+1434,27962,16,16,16,16,24,24,0,0,0,0,0,0
+1435,27982,15,8,8,8,16,16,0,0,0,0,0,0
+1437,28002,14,8,8,8,16,16,0,0,0,0,0,0
+1439,28022,12,8,8,8,16,16,0,0,0,0,0,0
+1440,28042,11,8,8,8,16,16,0,0,0,0,0,0
+1441,28062,10,8,8,8,16,16,0,0,0,0,0,0
+1442,28082,8,8,8,8,16,16,0,0,0,0,0,0
+1443,28101,7,0,0,0,8,8,0,0,0,0,0,0
+1445,28121,6,0,0,0,8,8,0,0,0,0,0,0
+1447,28141,5,0,0,0,8,8,0,0,0,0,0,0
+1448,28161,4,0,0,0,8,8,0,0,0,0,0,0
+1449,28181,2,0,0,0,8,8,0,0,0,0,0,0
+1450,28201,1,0,0,0,8,8,0,0,0,0,0,0
+1451,28221,0,0,0,0,8,8,0,0,0,0,0,0
+1452,28241,30,24,24,24,0,0,0,0,0,0,0,0
+1454,28261,29,24,24,24,0,0,0,0,0,0,0,0
+1455,28281,28,24,24,24,0,0,0,0,0,0,0,0
+1456,28301,26,24,24,24,0,0,0,0,0,0,0,0
+1457,28321,25,24,24,24,0,0,0,0,0,0,0,0
+1458,28341,24,24,24,24,0,0,0,0,0,0,0,0
+1459,28361,22,16,16,16,24,24,0,0,0,0,0,0
+1461,28381,21,16,16,16,24,24,0,0,0,0,0,0
+1462,28401,20,16,16,16,24,24,0,0,0,0,0,0
+1463,28421,18,16,16,16,24,24,0,0,0,0,0,0
+1464,28441,17,16,16,16,24,24,0,0,0,0,0,0
+1465,28461,16,16,16,16,24,24,0,0,0,0,0,0
+1466,28481,14,8,8,8,16,16,0,0,0,0,0,0
+1468,28501,13,8,8,8,16,16,0,0,0,0,0,0
+1470,28521,12,8,8,8,16,16,0,0,0,0,0,0
+1471,28541,10,8,8,8,16,16,0,0,0,0,0,0
+1472,28561,9,8,8,8,16,16,0,0,0,0,0,0
+1473,28581,8,8,8,8,16,16,0,0,0,0,0,0
+1474,28600,7,0,0,0,8,8,0,0,0,0,0,0
+1476,28620,6,0,0,0,8,8,0,0,0,0,0,0
+1478,28640,4,0,0,0,8,8,0,0,0,0,0,0
+1479,28660,3,0,0,0,8,8,0,0,0,0,0,0
+1480,28680,2,0,0,0,8,8,0,0,0,0,0,0
+1481,28700,0,0,0,0,8,8,0,0,0,0,0,0
+1482,28720,31,24,24,24,0,0,0,0,0,0,0,0
+1484,28740,30,24,24,24,0,0,0,0,0,0,0,0
+1486,28760,28,24,24,24,0,0,0,0,0,0,0,0
+1487,28780,26,24,24,24,0,0,0,0,0,0,0,0
+1488,28800,25,24,24,24,0,0,0,0,0,0,0,0
+1489,28820,24,24,24,24,0,0,0,0,0,0,0,0
+1490,28840,23,16,16,16,24,24,0,0,0,0,0,0
+1492,28860,22,16,16,16,24,24,0,0,0,0,0,0
+1494,28880,20,16,16,16,24,24,0,0,0,0,0,0
+1495,28900,19,16,16,16,24,24,0,0,0,0,0,0
+1496,28920,18,16,16,16,24,24,0,0,0,0,0,0
+1497,28940,16,16,16,16,24,24,0,0,0,0,0,0
+1498,28960,15,8,8,8,16,16,0,0,0,0,0,0
+1500,28980,14,8,8,8,16,16,0,0,0,0,0,0
+1502,29000,13,8,8,8,16,16,0,0,0,0,0,0
+1503,29020,12,8,8,8,16,16,0,0,0,0,0,0
+1504,29040,10,8,8,8,16,16,0,0,0,0,0,0
+1505,29060,9,8,8,8,16,16,0,0,0,0,0,0
+1506,29080,8,8,8,8,16,16,0,0,0,0,0,0
+1507,29099,6,0,0,0,8,8,0,0,0,0,0,0
+1509,29119,5,0,0,0,8,8,0,0,0,0,0,0
+1511,29139,4,0,0,0,8,8,0,0,0,0,0,0
+1512,29159,2,0,0,0,8,8,0,0,0,0,0,0
+1513,29179,1,0,0,0,8,8,0,0,0,0,0,0
+1514,29199,0,0,0,0,8,8,0,0,0,0,0,0
+1515,29219,30,24,24,24,0,0,0,0,0,0,0,0
+1517,29239,29,24,24,24,0,0,0,0,0,0,0,0
+1518,29259,28,24,24,24,0,0,0,0,0,0,0,0
+1519,29279,26,24,24,24,0,0,0,0,0,0,0,0
+1520,29299,24,24,24,24,0,0,0,0,0,0,0,0
+1521,29319,24,24,24,24,0,0,0,0,0,0,0,0
+1522,29339,22,16,16,16,24,24,0,0,0,0,0,0
+1524,29359,21,16,16,16,24,24,0,0,0,0,0,0
+1525,29379,20,16,16,16,24,24,0,0,0,0,0,0
+1526,29399,18,16,16,16,24,24,0,0,0,0,0,0
+1527,29419,17,16,16,16,24,24,0,0,0,0,0,0
+1528,29439,16,16,16,16,24,24,0,0,0,0,0,0
+1529,29459,14,8,8,8,16,16,0,0,0,0,0,0
+1531,29479,13,8,8,8,16,16,0,0,0,0,0,0
+1533,29499,12,8,8,8,16,16,0,0,0,0,0,0
+1534,29519,10,8,8,8,16,16,0,0,0,0,0,0
+1535,29539,10,8,8,8,16,16,0,0,0,0,0,0
+1536,29559,8,8,8,8,16,16,0,0,0,0,0,0
+1537,29578,7,0,0,0,8,8,0,0,0,0,0,0
+1539,29598,6,0,0,0,8,8,0,0,0,0,0,0
+1541,29618,4,0,0,0,8,8,0,0,0,0,0,0
+1542,29638,3,0,0,0,8,8,0,0,0,0,0,0
+1543,29658,2,0,0,0,8,8,0,0,0,0,0,0
+1544,29678,0,0,0,0,8,8,0,0,0,0,0,0
+1545,29698,31,24,24,24,0,0,0,0,0,0,0,0
+1547,29718,30,24,24,24,0,0,0,0,0,0,0,0
+1549,29738,28,24,24,24,0,0,0,0,0,0,0,0
+1550,29758,28,24,24,24,0,0,0,0,0,0,0,0
+1551,29778,26,24,24,24,0,0,0,0,0,0,0,0
+1552,29798,25,24,24,24,0,0,0,0,0,0,0,0
+1553,29818,24,24,24,24,0,0,0,0,0,0,0,0
+1554,29838,22,16,16,16,24,24,0,0,0,0,0,0
+1556,29858,20,16,16,16,24,24,0,0,0,0,0,0
+1557,29878,19,16,16,16,24,24,0,0,0,0,0,0
+1558,29898,18,16,16,16,24,24,0,0,0,0,0,0
+1559,29918,16,16,16,16,24,24,0,0,0,0,0,0
+1560,29938,15,8,8,8,16,16,0,0,0,0,0,0
+1562,29958,14,8,8,8,16,16,0,0,0,0,0,0
+1564,29978,13,8,8,8,16,16,0,0,0,0,0,0
+1565,29998,11,8,8,8,16,16,0,0,0,0,0,0
+1566,30018,10,8,8,8,16,16,0,0,0,0,0,0
+1567,30038,8,8,8,8,16,16,0,0,0,0,0,0
+1568,30058,8,8,8,8,16,16,0,0,0,0,0,0
+1569,30077,6,0,0,0,8,8,0,0,0,0,0,0
+1571,30097,4,0,0,0,8,8,0,0,0,0,0,0
+1572,30117,3,0,0,0,8,8,0,0,0,0,0,0
+1573,30137,2,0,0,0,8,8,0,0,0,0,0,0
+1574,30157,0,0,0,0,8,8,0,0,0,0,0,0
+1575,30177,31,24,24,24,0,0,0,0,0,0,0,0
+1577,30197,30,24,24,24,0,0,0,0,0,0,0,0
+1579,30217,28,24,24,24,0,0,0,0,0,0,0,0
+1580,30237,27,24,24,24,0,0,0,0,0,0,0,0
+1581,30257,26,24,24,24,0,0,0,0,0,0,0,0
+1582,30277,24,24,24,24,0,0,0,0,0,0,0,0
+1583,30297,24,24,24,24,0,0,0,0,0,0,0,0
+1584,30317,22,16,16,16,24,24,0,0,0,0,0,0
+1586,30337,21,16,16,16,24,24,0,0,0,0,0,0
+1588,30357,20,16,16,16,24,24,0,0,0,0,0,0
+1589,30377,18,16,16,16,24,24,0,0,0,0,0,0
+1590,30397,17,16,16,16,24,24,0,0,0,0,0,0
+1591,30417,16,16,16,16,24,24,0,0,0,0,0,0
+1592,30437,14,8,8,8,16,16,0,0,0,0,0,0
+1594,30457,13,8,8,8,16,16,0,0,0,0,0,0
+1596,30477,12,8,8,8,16,16,0,0,0,0,0,0
+1597,30497,10,8,8,8,16,16,0,0,0,0,0,0
+1598,30517,9,8,8,8,16,16,0,0,0,0,0,0
+1599,30537,8,8,8,8,16,16,0,0,0,0,0,0
+1600,30556,6,0,0,0,8,8,0,0,0,0,0,0
+1602,30576,5,0,0,0,8,8,0,0,0,0,0,0
+1604,30596,4,0,0,0,8,8,0,0,0,0,0,0
+1605,30616,2,0,0,0,8,8,0,0,0,0,0,0
+1606,30636,1,0,0,0,8,8,0,0,0,0,0,0
+1607,30656,0,0,0,0,8,8,0,0,0,0,0,0
+1608,30676,30,24,24,24,0,0,0,0,0,0,0,0
+1610,30696,29,24,24,24,0,0,0,0,0,0,0,0
+1612,30716,28,24,24,24,0,0,0,0,0,0,0,0
+1613,30736,26,24,24,24,0,0,0,0,0,0,0,0
+1614,30756,25,24,24,24,0,0,0,0,0,0,0,0
+1615,30776,24,24,24,24,0,0,0,0,0,0,0,0
+1616,30796,22,16,16,16,24,24,0,0,0,0,0,0
+1618,30816,21,16,16,16,24,24,0,0,0,0,0,0
+1620,30836,20,16,16,16,24,24,0,0,0,0,0,0
+1621,30856,18,16,16,16,24,24,0,0,0,0,0,0
+1622,30876,17,16,16,16,24,24,0,0,0,0,0,0
+1623,30896,16,16,16,16,24,24,0,0,0,0,0,0
+1624,30916,14,8,8,8,16,16,0,0,0,0,0,0
+1626,30936,13,8,8,8,16,16,0,0,0,0,0,0
+1628,30956,12,8,8,8,16,16,0,0,0,0,0,0
+1629,30976,10,8,8,8,16,16,0,0,0,0,0,0
+1630,30996,9,8,8,8,16,16,0,0,0,0,0,0
+1631,31016,8,8,8,8,16,16,0,0,0,0,0,0
+1632,31035,6,0,0,0,8,8,0,0,0,0,0,0
+1634,31055,5,0,0,0,8,8,0,0,0,0,0,0
+1635,31075,4,0,0,0,8,8,0,0,0,0,0,0
+1636,31095,2,0,0,0,8,8,0,0,0,0,0,0
+1637,31115,1,0,0,0,8,8,0,0,0,0,0,0
+1638,31135,0,0,0,0,8,8,0,0,0,0,0,0
+1639,31155,30,24,24,24,0,0,0,0,0,0,0,0
+1641,31175,29,24,24,24,0,0,0,0,0,0,0,0
+1643,31195,28,24,24,24,0,0,0,0,0,0,0,0
+1644,31215,26,24,24,24,0,0,0,0,0,0,0,0
+1645,31235,25,24,24,24,0,0,0,0,0,0,0,0
+1646,31255,24,24,24,24,0,0,0,0,0,0,0,0
+1647,31275,22,16,16,16,24,24,0,0,0,0,0,0
+1649,31295,21,16,16,16,24,24,0,0,0,0,0,0
+1651,31315,20,16,16,16,24,24,0,0,0,0,0,0
+1652,31335,18,16,16,16,24,24,0,0,0,0,0,0
+1653,31355,17,16,16,16,24,24,0,0,0,0,0,0
+1654,31375,16,16,16,16,24,24,0,0,0,0,0,0
+1655,31395,14,8,8,8,16,16,0,0,0,0,0,0
+1657,31415,13,8,8,8,16,16,0,0,0,0,0,0
+1659,31435,12,8,8,8,16,16,0,0,0,0,0,0
+1660,31455,10,8,8,8,16,16,0,0,0,0,0,0
+1661,31475,9,8,8,8,16,16,0,0,0,0,0,0
+1662,31495,8,8,8,8,16,16,0,0,0,0,0,0
+1663,31514,6,0,0,0,8,8,0,0,0,0,0,0
+1665,31534,5,0,0,0,8,8,0,0,0,0,0,0
+1667,31554,4,0,0,0,8,8,0,0,0,0,0,0
+1668,31574,2,0,0,0,8,8,0,0,0,0,0,0
+1669,31594,1,0,0,0,8,8,0,0,0,0,0,0
+1670,31614,0,0,0,0,8,8,0,0,0,0,0,0
+1671,31634,30,24,24,24,0,0,0,0,0,0,0,0
+1673,31654,29,24,24,24,0,0,0,0,0,0,0,0
+1675,31674,28,24,24,24,0,0,0,0,0,0,0,0
+1676,31694,26,24,24,24,0,0,0,0,0,0,0,0
+1677,31714,25,24,24,24,0,0,0,0,0,0,0,0
+1678,31734,24,24,24,24,0,0,0,0,0,0,0,0
+1679,31754,22,16,16,16,24,24,0,0,0,0,0,0
+1681,31774,21,16,16,16,24,24,0,0,0,0,0,0
+1683,31794,20,16,16,16,24,24,0,0,0,0,0,0
+1684,31814,18,16,16,16,24,24,0,0,0,0,0,0
+1685,31834,17,16,16,16,24,24,0,0,0,0,0,0
+1686,31854,16,16,16,16,24,24,0,0,0,0,0,0
+1687,31874,14,8,8,8,16,16,0,0,0,0,0,0
+1689,31894,13,8,8,8,16,16,0,0,0,0,0,0
+1691,31914,12,8,8,8,16,16,0,0,0,0,0,0
+1692,31934,10,8,8,8,16,16,0,0,0,0,0,0
+1693,31954,9,8,8,8,16,16,0,0,0,0,0,0
+1694,31974,8,8,8,8,16,16,0,0,0,0,0,0
+1695,31993,6,0,0,0,8,8,0,0,0,0,0,0
+1697,32013,5,0,0,0,8,8,0,0,0,0,0,0
+1699,32033,4,0,0,0,8,8,0,0,0,0,0,0
+1700,32053,2,0,0,0,8,8,0,0,0,0,0,0
+1701,32073,1,0,0,0,8,8,0,0,0,0,0,0
+1702,32093,0,0,0,0,8,8,0,0,0,0,0,0
+1703,32113,30,24,24,24,0,0,0,0,0,0,0,0
+1705,32133,29,24,24,24,0,0,0,0,0,0,0,0
+1707,32153,28,24,24,24,0,0,0,0,0,0,0,0
+1708,32173,26,24,24,24,0,0,0,0,0,0,0,0
+1709,32193,25,24,24,24,0,0,0,0,0,0,0,0
+1710,32213,24,24,24,24,0,0,0,0,0,0,0,0
+1711,32233,22,16,16,16,24,24,0,0,0,0,0,0
+1713,32253,21,16,16,16,24,24,0,0,0,0,0,0
+1715,32273,20,16,16,16,24,24,0,0,0,0,0,0
+1716,32293,18,16,16,16,24,24,0,0,0,0,0,0
+1717,32313,17,16,16,16,24,24,0,0,0,0,0,0
+1718,32333,16,16,16,16,24,24,0,0,0,0,0,0
+1719,32353,14,8,8,8,16,16,0,0,0,0,0,0
+1721,32373,13,8,8,8,16,16,0,0,0,0,0,0
+1722,32393,12,8,8,8,16,16,0,0,0,0,0,0
+1723,32413,10,8,8,8,16,16,0,0,0,0,0,0
+1724,32433,9,8,8,8,16,16,0,0,0,0,0,0
+1725,32453,8,8,8,8,16,16,0,0,0,0,0,0
+1726,32472,6,0,0,0,8,8,0,0,0,0,0,0
+1728,32492,5,0,0,0,8,8,0,0,0,0,0,0
+1730,32512,4,0,0,0,8,8,0,0,0,0,0,0
+1731,32532,2,0,0,0,8,8,0,0,0,0,0,0
+1732,32552,1,0,0,0,8,8,0,0,0,0,0,0
+1733,32572,0,0,0,0,8,8,0,0,0,0,0,0
+1734,32592,30,24,24,24,0,0,0,0,0,0,0,0
+1736,32612,29,24,24,24,0,0,0,0,0,0,0,0
+1738,32632,28,24,24,24,0,0,0,0,0,0,0,0
+1739,32652,26,24,24,24,0,0,0,0,0,0,0,0
+1740,32672,25,24,24,24,0,0,0,0,0,0,0,0
+1741,32692,24,24,24,24,0,0,0,0,0,0,0,0
+1742,32712,22,16,16,16,24,24,0,0,0,0,0,0
+1744,32732,22,16,16,16,24,24,0,0,0,0,0,0
+1746,32752,20,16,16,16,24,24,0,0,0,0,0,0
+1747,32772,18,16,16,16,24,24,0,0,0,0,0,0
+1748,32792,18,16,16,16,24,24,0,0,0,0,0,0
+1749,32812,16,16,16,16,24,24,0,0,0,0,0,0
+1750,32832,14,8,8,8,16,16,0,0,0,0,0,0
+1752,32852,14,8,8,8,16,16,0,0,0,0,0,0
+1754,32872,12,8,8,8,16,16,0,0,0,0,0,0
+1755,32892,10,8,8,8,16,16,0,0,0,0,0,0
+1756,32912,9,8,8,8,16,16,0,0,0,0,0,0
+1757,32932,8,8,8,8,16,16,0,0,0,0,0,0
+1758,32951,6,0,0,0,8,8,0,0,0,0,0,0
+1760,32971,5,0,0,0,8,8,0,0,0,0,0,0
+1762,32991,4,0,0,0,8,8,0,0,0,0,0,0
+1763,33011,2,0,0,0,8,8,0,0,0,0,0,0
+1764,33031,1,0,0,0,8,8,0,0,0,0,0,0
+1765,33051,0,0,0,0,8,8,0,0,0,0,0,0
+1766,33071,31,24,24,24,0,0,0,0,0,0,0,0
+1768,33091,30,24,24,24,0,0,0,0,0,0,0,0
+1770,33111,28,24,24,24,0,0,0,0,0,0,0,0
+1771,33131,27,24,24,24,0,0,0,0,0,0,0,0
+1772,33151,26,24,24,24,0,0,0,0,0,0,0,0
+1773,33171,24,24,24,24,0,0,0,0,0,0,0,0
+1774,33191,23,16,16,16,24,24,0,0,0,0,0,0
+1776,33211,22,16,16,16,24,24,0,0,0,0,0,0
+1778,33231,20,16,16,16,24,24,0,0,0,0,0,0
+1779,33251,19,16,16,16,24,24,0,0,0,0,0,0
+1780,33271,18,16,16,16,24,24,0,0,0,0,0,0
+1781,33291,16,16,16,16,24,24,0,0,0,0,0,0
+1782,33311,15,8,8,8,16,16,0,0,0,0,0,0
+1784,33331,14,8,8,8,16,16,0,0,0,0,0,0
+1786,33351,12,8,8,8,16,16,0,0,0,0,0,0
+1787,33371,11,8,8,8,16,16,0,0,0,0,0,0
+1788,33391,10,8,8,8,16,16,0,0,0,0,0,0
+1789,33411,8,8,8,8,16,16,0,0,0,0,0,0
+1790,33431,8,8,8,8,16,16,0,0,0,0,0,0
+1791,33450,6,0,0,0,8,8,0,0,0,0,0,0
+1793,33470,4,0,0,0,8,8,0,0,0,0,0,0
+1794,33490,4,0,0,0,8,8,0,0,0,0,0,0
+1795,33510,2,0,0,0,8,8,0,0,0,0,0,0
+1796,33530,0,0,0,0,8,8,0,0,0,0,0,0
+1797,33550,0,0,0,0,8,8,0,0,0,0,0,0
+1798,33570,30,24,24,24,0,0,0,0,0,0,0,0
+1800,33590,29,24,24,24,0,0,0,0,0,0,0,0
+1801,33610,28,24,24,24,0,0,0,0,0,0,0,0
+1802,33630,26,24,24,24,0,0,0,0,0,0,0,0
+1803,33650,24,24,24,24,0,0,0,0,0,0,0,0
+1804,33670,24,24,24,24,0,0,0,0,0,0,0,0
+1805,33690,22,16,16,16,24,24,0,0,0,0,0,0
+1807,33710,21,16,16,16,24,24,0,0,0,0,0,0
+1808,33730,19,16,16,16,24,24,0,0,0,0,0,0
+1809,33750,18,16,16,16,24,24,0,0,0,0,0,0
+1810,33770,16,16,16,16,24,24,0,0,0,0,0,0
+1811,33790,15,8,8,8,16,16,0,0,0,0,0,0
+1813,33810,14,8,8,8,16,16,0,0,0,0,0,0
+1815,33830,13,8,8,8,16,16,0,0,0,0,0,0
+1816,33850,12,8,8,8,16,16,0,0,0,0,0,0
+1817,33870,10,8,8,8,16,16,0,0,0,0,0,0
+1818,33890,9,8,8,8,16,16,0,0,0,0,0,0
+1819,33910,8,8,8,8,16,16,0,0,0,0,0,0
+1820,33929,6,0,0,0,8,8,0,0,0,0,0,0
+1822,33949,5,0,0,0,8,8,0,0,0,0,0,0
+1824,33969,4,0,0,0,8,8,0,0,0,0,0,0
+1825,33989,2,0,0,0,8,8,0,0,0,0,0,0
+1826,34009,1,0,0,0,8,8,0,0,0,0,0,0
+1827,34029,0,0,0,0,8,8,0,0,0,0,0,0
+1828,34049,30,24,24,24,0,0,0,0,0,0,0,0
+1830,34069,29,24,24,24,0,0,0,0,0,0,0,0
+1832,34089,28,24,24,24,0,0,0,0,0,0,0,0
+1833,34109,26,24,24,24,0,0,0,0,0,0,0,0
+1834,34129,25,24,24,24,0,0,0,0,0,0,0,0
+1835,34149,24,24,24,24,0,0,0,0,0,0,0,0
+1836,34169,22,16,16,16,24,24,0,0,0,0,0,0
+1838,34189,21,16,16,16,24,24,0,0,0,0,0,0
+1840,34209,20,16,16,16,24,24,0,0,0,0,0,0
+1841,34229,18,16,16,16,24,24,0,0,0,0,0,0
+1842,34249,17,16,16,16,24,24,0,0,0,0,0,0
+1843,34269,16,16,16,16,24,24,0,0,0,0,0,0
+1844,34289,14,8,8,8,16,16,0,0,0,0,0,0
+1846,34309,13,8,8,8,16,16,0,0,0,0,0,0
+1848,34329,12,8,8,8,16,16,0,0,0,0,0,0
+1849,34349,10,8,8,8,16,16,0,0,0,0,0,0
+1850,34369,9,8,8,8,16,16,0,0,0,0,0,0
+1851,34389,8,8,8,8,16,16,0,0,0,0,0,0
+1852,34408,6,0,0,0,8,8,0,0,0,0,0,0
+1854,34428,5,0,0,0,8,8,0,0,0,0,0,0
+1855,34448,4,0,0,0,8,8,0,0,0,0,0,0
+1856,34468,2,0,0,0,8,8,0,0,0,0,0,0
+1857,34488,1,0,0,0,8,8,0,0,0,0,0,0
+1858,34508,0,0,0,0,8,8,0,0,0,0,0,0
+1859,34528,30,24,24,24,0,0,0,0,0,0,0,0
+1861,34548,29,24,24,24,0,0,0,0,0,0,0,0
+1863,34568,28,24,24,24,0,0,0,0,0,0,0,0
+1864,34588,26,24,24,24,0,0,0,0,0,0,0,0
+1865,34608,25,24,24,24,0,0,0,0,0,0,0,0
+1866,34628,24,24,24,24,0,0,0,0,0,0,0,0
+1867,34648,22,16,16,16,24,24,0,0,0,0,0,0
+1869,34668,21,16,16,16,24,24,0,0,0,0,0,0
+1871,34688,20,16,16,16,24,24,0,0,0,0,0,0
+1872,34708,18,16,16,16,24,24,0,0,0,0,0,0
+1873,34728,17,16,16,16,24,24,0,0,0,0,0,0
+1874,34748,16,16,16,16,24,24,0,0,0,0,0,0
+1875,34768,14,8,8,8,16,16,0,0,0,0,0,0
+1877,34788,13,8,8,8,16,16,0,0,0,0,0,0
+1879,34808,12,8,8,8,16,16,0,0,0,0,0,0
+1880,34828,10,8,8,8,16,16,0,0,0,0,0,0
+1881,34848,9,8,8,8,16,16,0,0,0,0,0,0
+1882,34868,8,8,8,8,16,16,0,0,0,0,0,0
+1883,34887,6,0,0,0,8,8,0,0,0,0,0,0
+1885,34907,5,0,0,0,8,8,0,0,0,0,0,0
+1887,34927,4,0,0,0,8,8,0,0,0,0,0,0
+1888,34947,3,0,0,0,8,8,0,0,0,0,0,0
+1889,34967,2,0,0,0,8,8,0,0,0,0,0,0
+1890,34987,0,0,0,0,8,8,0,0,0,0,0,0
+1891,35007,31,24,24,24,0,0,0,0,0,0,0,0
+1893,35027,30,24,24,24,0,0,0,0,0,0,0,0
+1895,35047,28,24,24,24,0,0,0,0,0,0,0,0
+1896,35067,28,24,24,24,0,0,0,0,0,0,0,0
+1897,35087,26,24,24,24,0,0,0,0,0,0,0,0
+1898,35107,25,24,24,24,0,0,0,0,0,0,0,0
+1899,35127,24,24,24,24,0,0,0,0,0,0,0,0
+1900,35147,22,16,16,16,24,24,0,0,0,0,0,0
+1902,35167,21,16,16,16,24,24,0,0,0,0,0,0
+1904,35187,20,16,16,16,24,24,0,0,0,0,0,0
+1905,35207,18,16,16,16,24,24,0,0,0,0,0,0
+1906,35227,17,16,16,16,24,24,0,0,0,0,0,0
+1907,35247,16,16,16,16,24,24,0,0,0,0,0,0
+1908,35267,14,8,8,8,16,16,0,0,0,0,0,0
+1910,35287,12,8,8,8,16,16,0,0,0,0,0,0
+1911,35307,11,8,8,8,16,16,0,0,0,0,0,0
+1912,35327,10,8,8,8,16,16,0,0,0,0,0,0
+1913,35347,8,8,8,8,16,16,0,0,0,0,0,0
+1914,35366,7,0,0,0,8,8,0,0,0,0,0,0
+1916,35386,6,0,0,0,8,8,0,0,0,0,0,0
+1918,35406,4,0,0,0,8,8,0,0,0,0,0,0
+1919,35426,3,0,0,0,8,8,0,0,0,0,0,0
+1920,35446,2,0,0,0,8,8,0,0,0,0,0,0
+1921,35466,0,0,0,0,8,8,0,0,0,0,0,0
+1922,35486,31,24,24,24,0,0,0,0,0,0,0,0
+1924,35506,30,24,24,24,0,0,0,0,0,0,0,0
+1926,35526,28,24,24,24,0,0,0,0,0,0,0,0
+1927,35546,27,24,24,24,0,0,0,0,0,0,0,0
+1928,35566,26,24,24,24,0,0,0,0,0,0,0,0
+1929,35586,24,24,24,24,0,0,0,0,0,0,0,0
+1930,35606,23,16,16,16,24,24,0,0,0,0,0,0
+1932,35626,22,16,16,16,24,24,0,0,0,0,0,0
+1934,35646,20,16,16,16,24,24,0,0,0,0,0,0
+1935,35666,18,16,16,16,24,24,0,0,0,0,0,0
+1936,35686,17,16,16,16,24,24,0,0,0,0,0,0
+1937,35706,16,16,16,16,24,24,0,0,0,0,0,0
+1938,35726,14,8,8,8,16,16,0,0,0,0,0,0
+1940,35746,13,8,8,8,16,16,0,0,0,0,0,0
+1942,35766,12,8,8,8,16,16,0,0,0,0,0,0
+1943,35786,11,8,8,8,16,16,0,0,0,0,0,0
+1944,35806,10,8,8,8,16,16,0,0,0,0,0,0
+1945,35826,8,8,8,8,16,16,0,0,0,0,0,0
+1946,35845,6,0,0,0,8,8,0,0,0,0,0,0
+1948,35865,6,0,0,0,8,8,0,0,0,0,0,0
+1950,35885,4,0,0,0,8,8,0,0,0,0,0,0
+1951,35905,3,0,0,0,8,8,0,0,0,0,0,0
+1952,35925,2,0,0,0,8,8,0,0,0,0,0,0
+1953,35945,0,0,0,0,8,8,0,0,0,0,0,0
+1954,35965,30,24,24,24,0,0,0,0,0,0,0,0
+1956,35985,30,24,24,24,0,0,0,0,0,0,0,0
+1958,36005,28,24,24,24,0,0,0,0,0,0,0,0
+1959,36025,26,24,24,24,0,0,0,0,0,0,0,0
+1960,36045,26,24,24,24,0,0,0,0,0,0,0,0
+1961,36065,24,24,24,24,0,0,0,0,0,0,0,0
+1962,36085,23,16,16,16,24,24,0,0,0,0,0,0
+1964,36105,22,16,16,16,24,24,0,0,0,0,0,0
+1966,36125,20,16,16,16,24,24,0,0,0,0,0,0
+1967,36145,19,16,16,16,24,24,0,0,0,0,0,0
+1968,36165,18,16,16,16,24,24,0,0,0,0,0,0
+1969,36185,16,16,16,16,24,24,0,0,0,0,0,0
+1970,36205,15,8,8,8,16,16,0,0,0,0,0,0
+1972,36225,14,8,8,8,16,16,0,0,0,0,0,0
+1974,36245,13,8,8,8,16,16,0,0,0,0,0,0
+1975,36265,12,8,8,8,16,16,0,0,0,0,0,0
+1976,36285,10,8,8,8,16,16,0,0,0,0,0,0
+1977,36305,9,8,8,8,16,16,0,0,0,0,0,0
+1978,36325,8,8,8,8,16,16,0,0,0,0,0,0
+1979,36344,6,0,0,0,8,8,0,0,0,0,0,0
+1981,36364,5,0,0,0,8,8,0,0,0,0,0,0
+1983,36384,4,0,0,0,8,8,0,0,0,0,0,0
+1984,36404,2,0,0,0,8,8,0,0,0,0,0,0
+1985,36424,1,0,0,0,8,8,0,0,0,0,0,0
+1986,36444,0,0,0,0,8,8,0,0,0,0,0,0
+1987,36464,30,24,24,24,0,0,0,0,0,0,0,0
+1989,36484,30,24,24,24,0,0,0,0,0,0,0,0
+1991,36504,28,24,24,24,0,0,0,0,0,0,0,0
+1992,36524,27,24,24,24,0,0,0,0,0,0,0,0
+1993,36544,26,24,24,24,0,0,0,0,0,0,0,0
+1994,36564,24,24,24,24,0,0,0,0,0,0,0,0
+1995,36584,23,16,16,16,24,24,0,0,0,0,0,0
+1997,36604,22,16,16,16,24,24,0,0,0,0,0,0
+1999,36624,20,16,16,16,24,24,0,0,0,0,0,0
+2000,36644,19,16,16,16,24,24,0,0,0,0,0,0
+2001,36664,18,16,16,16,24,24,0,0,0,0,0,0
+2002,36684,16,16,16,16,24,24,0,0,0,0,0,0
+2003,36704,15,8,8,8,16,16,0,0,0,0,0,0
+2005,36724,14,8,8,8,16,16,0,0,0,0,0,0
+2007,36744,12,8,8,8,16,16,0,0,0,0,0,0
+2008,36764,11,8,8,8,16,16,0,0,0,0,0,0
+2009,36784,10,8,8,8,16,16,0,0,0,0,0,0
+2010,36804,8,8,8,8,16,16,0,0,0,0,0,0
+2011,36823,7,0,0,0,8,8,0,0,0,0,0,0
+2013,36843,6,0,0,0,8,8,0,0,0,0,0,0
+2015,36863,4,0,0,0,8,8,0,0,0,0,0,0
+2016,36883,3,0,0,0,8,8,0,0,0,0,0,0
+2017,36903,2,0,0,0,8,8,0,0,0,0,0,0
+2018,36923,0,0,0,0,8,8,0,0,0,0,0,0
+2019,36943,31,24,24,24,0,0,0,0,0,0,0,0
+2021,36963,30,24,24,24,0,0,0,0,0,0,0,0
+2023,36983,28,24,24,24,0,0,0,0,0,0,0,0
+2024,37003,27,24,24,24,0,0,0,0,0,0,0,0
+2025,37023,26,24,24,24,0,0,0,0,0,0,0,0
+2026,37043,24,24,24,24,0,0,0,0,0,0,0,0
+2027,37063,22,16,16,16,24,24,0,0,0,0,0,0
+2029,37083,21,16,16,16,24,24,0,0,0,0,0,0
+2031,37103,20,16,16,16,24,24,0,0,0,0,0,0
+2032,37123,18,16,16,16,24,24,0,0,0,0,0,0
+2033,37143,17,16,16,16,24,24,0,0,0,0,0,0
+2034,37163,16,16,16,16,24,24,0,0,0,0,0,0
+2035,37183,14,8,8,8,16,16,0,0,0,0,0,0
+2037,37203,13,8,8,8,16,16,0,0,0,0,0,0
+2039,37223,12,8,8,8,16,16,0,0,0,0,0,0
+2040,37243,10,8,8,8,16,16,0,0,0,0,0,0
+2041,37263,9,8,8,8,16,16,0,0,0,0,0,0
+2042,37283,8,8,8,8,16,16,0,0,0,0,0,0
+2043,37302,6,0,0,0,8,8,0,0,0,0,0,0
+2045,37322,5,0,0,0,8,8,0,0,0,0,0,0
+2047,37342,4,0,0,0,8,8,0,0,0,0,0,0
+2048,37362,2,0,0,0,8,8,0,0,0,0,0,0
+2049,37382,1,0,0,0,8,8,0,0,0,0,0,0
+2050,37402,0,0,0,0,8,8,0,0,0,0,0,0
+2051,37422,30,24,24,24,0,0,0,0,0,0,0,0
+2053,37442,29,24,24,24,0,0,0,0,0,0,0,0
+2054,37462,28,24,24,24,0,0,0,0,0,0,0,0
+2055,37482,26,24,24,24,0,0,0,0,0,0,0,0
+2056,37502,24,24,24,24,0,0,0,0,0,0,0,0
+2057,37522,24,24,24,24,0,0,0,0,0,0,0,0
+2058,37542,22,16,16,16,24,24,0,0,0,0,0,0
+2060,37562,20,16,16,16,24,24,0,0,0,0,0,0
+2061,37582,19,16,16,16,24,24,0,0,0,0,0,0
+2062,37602,18,16,16,16,24,24,0,0,0,0,0,0
+2063,37622,16,16,16,16,24,24,0,0,0,0,0,0
+2064,37642,15,8,8,8,16,16,0,0,0,0,0,0
+2066,37662,14,8,8,8,16,16,0,0,0,0,0,0
+2068,37682,12,8,8,8,16,16,0,0,0,0,0,0
+2069,37702,11,8,8,8,16,16,0,0,0,0,0,0
+2070,37722,10,8,8,8,16,16,0,0,0,0,0,0
+2071,37742,8,8,8,8,16,16,0,0,0,0,0,0
+2072,37761,7,0,0,0,8,8,0,0,0,0,0,0
+2074,37781,6,0,0,0,8,8,0,0,0,0,0,0
+2076,37801,4,0,0,0,8,8,0,0,0,0,0,0
+2077,37821,3,0,0,0,8,8,0,0,0,0,0,0
+2078,37841,2,0,0,0,8,8,0,0,0,0,0,0
+2079,37861,0,0,0,0,8,8,0,0,0,0,0,0
+2080,37881,30,24,24,24,0,0,0,0,0,0,0,0
+2082,37901,30,24,24,24,0,0,0,0,0,0,0,0
+2084,37921,28,24,24,24,0,0,0,0,0,0,0,0
+2085,37941,27,24,24,24,0,0,0,0,0,0,0,0
+2086,37961,26,24,24,24,0,0,0,0,0,0,0,0
+2087,37981,24,24,24,24,0,0,0,0,0,0,0,0
+2088,38001,23,16,16,16,24,24,0,0,0,0,0,0
+2090,38021,22,16,16,16,24,24,0,0,0,0,0,0
+2092,38041,20,16,16,16,24,24,0,0,0,0,0,0
+2093,38061,19,16,16,16,24,24,0,0,0,0,0,0
+2094,38081,18,16,16,16,24,24,0,0,0,0,0,0
+2095,38101,16,16,16,16,24,24,0,0,0,0,0,0
+2096,38121,15,8,8,8,16,16,0,0,0,0,0,0
+2098,38141,14,8,8,8,16,16,0,0,0,0,0,0
+2100,38161,12,8,8,8,16,16,0,0,0,0,0,0
+2101,38181,10,8,8,8,16,16,0,0,0,0,0,0
+2102,38201,10,8,8,8,16,16,0,0,0,0,0,0
+2103,38221,8,8,8,8,16,16,0,0,0,0,0,0
+2104,38240,6,0,0,0,8,8,0,0,0,0,0,0
+2106,38260,5,0,0,0,8,8,0,0,0,0,0,0
+2108,38280,4,0,0,0,8,8,0,0,0,0,0,0
+2109,38300,2,0,0,0,8,8,0,0,0,0,0,0
+2110,38320,2,0,0,0,8,8,0,0,0,0,0,0
+2111,38340,0,0,0,0,8,8,0,0,0,0,0,0
+2112,38360,31,24,24,24,0,0,0,0,0,0,0,0
+2114,38380,30,24,24,24,0,0,0,0,0,0,0,0
+2116,38400,28,24,24,24,0,0,0,0,0,0,0,0
+2117,38420,27,24,24,24,0,0,0,0,0,0,0,0
+2118,38440,26,24,24,24,0,0,0,0,0,0,0,0
+2119,38460,24,24,24,24,0,0,0,0,0,0,0,0
+2120,38480,23,16,16,16,24,24,0,0,0,0,0,0
+2122,38500,22,16,16,16,24,24,0,0,0,0,0,0
+2124,38520,20,16,16,16,24,24,0,0,0,0,0,0
+2125,38540,19,16,16,16,24,24,0,0,0,0,0,0
+2126,38560,18,16,16,16,24,24,0,0,0,0,0,0
+2127,38580,17,16,16,16,24,24,0,0,0,0,0,0
+2128,38600,16,16,16,16,24,24,0,0,0,0,0,0
+2129,38620,14,8,8,8,16,16,0,0,0,0,0,0
+2131,38640,12,8,8,8,16,16,0,0,0,0,0,0
+2132,38660,12,8,8,8,16,16,0,0,0,0,0,0
+2133,38680,10,8,8,8,16,16,0,0,0,0,0,0
+2134,38700,9,8,8,8,16,16,0,0,0,0,0,0
+2135,38720,8,8,8,8,16,16,0,0,0,0,0,0
+2136,38739,6,0,0,0,8,8,0,0,0,0,0,0
+2138,38759,5,0,0,0,8,8,0,0,0,0,0,0
+2140,38779,4,0,0,0,8,8,0,0,0,0,0,0
+2141,38799,2,0,0,0,8,8,0,0,0,0,0,0
+2142,38819,1,0,0,0,8,8,0,0,0,0,0,0
+2143,38839,0,0,0,0,8,8,0,0,0,0,0,0
+2144,38859,30,24,24,24,0,0,0,0,0,0,0,0
+2146,38879,30,24,24,24,0,0,0,0,0,0,0,0
+2148,38899,28,24,24,24,0,0,0,0,0,0,0,0
+2149,38919,27,24,24,24,0,0,0,0,0,0,0,0
+2150,38939,26,24,24,24,0,0,0,0,0,0,0,0
+2151,38959,24,24,24,24,0,0,0,0,0,0,0,0
+2152,38979,23,16,16,16,24,24,0,0,0,0,0,0
+2154,38999,22,16,16,16,24,24,0,0,0,0,0,0
+2156,39019,20,16,16,16,24,24,0,0,0,0,0,0
+2157,39039,19,16,16,16,24,24,0,0,0,0,0,0
+2158,39059,18,16,16,16,24,24,0,0,0,0,0,0
+2159,39079,16,16,16,16,24,24,0,0,0,0,0,0
+2160,39099,14,8,8,8,16,16,0,0,0,0,0,0
+2162,39119,14,8,8,8,16,16,0,0,0,0,0,0
+2164,39139,12,8,8,8,16,16,0,0,0,0,0,0
+2165,39159,10,8,8,8,16,16,0,0,0,0,0,0
+2166,39179,9,8,8,8,16,16,0,0,0,0,0,0
+2167,39199,8,8,8,8,16,16,0,0,0,0,0,0
+2168,39218,6,0,0,0,8,8,0,0,0,0,0,0
+2170,39238,5,0,0,0,8,8,0,0,0,0,0,0
+2172,39258,4,0,0,0,8,8,0,0,0,0,0,0
+2173,39278,2,0,0,0,8,8,0,0,0,0,0,0
+2174,39298,1,0,0,0,8,8,0,0,0,0,0,0
+2175,39318,0,0,0,0,8,8,0,0,0,0,0,0
+2176,39338,31,24,24,24,0,0,0,0,0,0,0,0
+2178,39358,30,24,24,24,0,0,0,0,0,0,0,0
+2180,39378,28,24,24,24,0,0,0,0,0,0,0,0
+2181,39398,27,24,24,24,0,0,0,0,0,0,0,0
+2182,39418,26,24,24,24,0,0,0,0,0,0,0,0
+2183,39438,24,24,24,24,0,0,0,0,0,0,0,0
+2184,39458,23,16,16,16,24,24,0,0,0,0,0,0
+2186,39478,22,16,16,16,24,24,0,0,0,0,0,0
+2188,39498,20,16,16,16,24,24,0,0,0,0,0,0
+2189,39518,19,16,16,16,24,24,0,0,0,0,0,0
+2190,39538,18,16,16,16,24,24,0,0,0,0,0,0
+2191,39558,16,16,16,16,24,24,0,0,0,0,0,0
+2192,39578,15,8,8,8,16,16,0,0,0,0,0,0
+2194,39598,14,8,8,8,16,16,0,0,0,0,0,0
+2196,39618,12,8,8,8,16,16,0,0,0,0,0,0
+2197,39638,11,8,8,8,16,16,0,0,0,0,0,0
+2198,39658,10,8,8,8,16,16,0,0,0,0,0,0
+2199,39678,8,8,8,8,16,16,0,0,0,0,0,0
+2200,39697,6,0,0,0,8,8,0,0,0,0,0,0
+2202,39717,6,0,0,0,8,8,0,0,0,0,0,0
+2204,39737,4,0,0,0,8,8,0,0,0,0,0,0
+2205,39757,3,0,0,0,8,8,0,0,0,0,0,0
+2206,39777,2,0,0,0,8,8,0,0,0,0,0,0
+2207,39797,0,0,0,0,8,8,0,0,0,0,0,0
+2208,39817,31,24,24,24,0,0,0,0,0,0,0,0
+2210,39837,30,24,24,24,0,0,0,0,0,0,0,0
+2212,39857,28,24,24,24,0,0,0,0,0,0,0,0
+2213,39877,26,24,24,24,0,0,0,0,0,0,0,0
+2214,39897,25,24,24,24,0,0,0,0,0,0,0,0
+2215,39917,24,24,24,24,0,0,0,0,0,0,0,0
+2216,39937,22,16,16,16,24,24,0,0,0,0,0,0
+2218,39957,21,16,16,16,24,24,0,0,0,0,0,0
+2220,39977,20,16,16,16,24,24,0,0,0,0,0,0
+2221,39997,18,16,16,16,24,24,0,0,0,0,0,0
+2222,40017,17,16,16,16,24,24,0,0,0,0,0,0
+2223,40037,16,16,16,16,24,24,0,0,0,0,0,0
+2224,40057,14,8,8,8,16,16,0,0,0,0,0,0
+2226,40077,13,8,8,8,16,16,0,0,0,0,0,0
+2228,40097,12,8,8,8,16,16,0,0,0,0,0,0
+2229,40117,10,8,8,8,16,16,0,0,0,0,0,0
+2230,40137,9,8,8,8,16,16,0,0,0,0,0,0
+2231,40157,8,8,8,8,16,16,0,0,0,0,0,0
+2232,40176,6,0,0,0,8,8,0,0,0,0,0,0
+2234,40196,5,0,0,0,8,8,0,0,0,0,0,0
+2236,40216,4,0,0,0,8,8,0,0,0,0,0,0
+2237,40236,2,0,0,0,8,8,0,0,0,0,0,0
+2238,40256,1,0,0,0,8,8,0,0,0,0,0,0
+2239,40276,0,0,0,0,8,8,0,0,0,0,0,0
+2240,40296,30,24,24,24,0,0,0,0,0,0,0,0
+2242,40316,29,24,24,24,0,0,0,0,0,0,0,0
+2244,40336,28,24,24,24,0,0,0,0,0,0,0,0
+2245,40356,26,24,24,24,0,0,0,0,0,0,0,0
+2246,40376,25,24,24,24,0,0,0,0,0,0,0,0
+2247,40396,24,24,24,24,0,0,0,0,0,0,0,0
+2248,40416,22,16,16,16,24,24,0,0,0,0,0,0
+2250,40436,21,16,16,16,24,24,0,0,0,0,0,0
+2252,40456,20,16,16,16,24,24,0,0,0,0,0,0
+2253,40476,18,16,16,16,24,24,0,0,0,0,0,0
+2254,40496,17,16,16,16,24,24,0,0,0,0,0,0
+2255,40516,16,16,16,16,24,24,0,0,0,0,0,0
+2256,40536,14,8,8,8,16,16,0,0,0,0,0,0
+2258,40556,13,8,8,8,16,16,0,0,0,0,0,0
+2260,40576,12,8,8,8,16,16,0,0,0,0,0,0
+2261,40596,10,8,8,8,16,16,0,0,0,0,0,0
+2262,40616,9,8,8,8,16,16,0,0,0,0,0,0
+2263,40636,8,8,8,8,16,16,0,0,0,0,0,0
+2264,40655,6,0,0,0,8,8,0,0,0,0,0,0
+2266,40675,5,0,0,0,8,8,0,0,0,0,0,0
+2268,40695,4,0,0,0,8,8,0,0,0,0,0,0
+2269,40715,2,0,0,0,8,8,0,0,0,0,0,0
+2270,40735,1,0,0,0,8,8,0,0,0,0,0,0
+2271,40755,0,0,0,0,8,8,0,0,0,0,0,0
+2272,40775,30,24,24,24,0,0,0,0,0,0,0,0
+2274,40795,29,24,24,24,0,0,0,0,0,0,0,0
+2276,40815,28,24,24,24,0,0,0,0,0,0,0,0
+2277,40835,26,24,24,24,0,0,0,0,0,0,0,0
+2278,40855,25,24,24,24,0,0,0,0,0,0,0,0
+2279,40875,24,24,24,24,0,0,0,0,0,0,0,0
+2280,40895,22,16,16,16,24,24,0,0,0,0,0,0
+2282,40915,21,16,16,16,24,24,0,0,0,0,0,0
+2284,40935,20,16,16,16,24,24,0,0,0,0,0,0
+2285,40955,18,16,16,16,24,24,0,0,0,0,0,0
+2286,40975,16,16,16,16,24,24,0,0,0,0,0,0
+2287,40995,15,8,8,8,16,16,0,0,0,0,0,0
+2289,41015,14,8,8,8,16,16,0,0,0,0,0,0
+2291,41035,12,8,8,8,16,16,0,0,0,0,0,0
+2292,41055,11,8,8,8,16,16,0,0,0,0,0,0
+2293,41075,10,8,8,8,16,16,0,0,0,0,0,0
+2294,41095,8,8,8,8,16,16,0,0,0,0,0,0
+2295,41114,7,0,0,0,8,8,0,0,0,0,0,0
+2297,41134,6,0,0,0,8,8,0,0,0,0,0,0
+2299,41154,4,0,0,0,8,8,0,0,0,0,0,0
+2300,41174,3,0,0,0,8,8,0,0,0,0,0,0
+2301,41194,2,0,0,0,8,8,0,0,0,0,0,0
+2302,41214,0,0,0,0,8,8,0,0,0,0,0,0
+2303,41234,31,24,24,24,0,0,0,0,0,0,0,0
+2305,41254,30,24,24,24,0,0,0,0,0,0,0,0
+2307,41274,28,24,24,24,0,0,0,0,0,0,0,0
+2308,41294,27,24,24,24,0,0,0,0,0,0,0,0
+2309,41314,26,24,24,24,0,0,0,0,0,0,0,0
+2310,41334,24,24,24,24,0,0,0,0,0,0,0,0
+2311,41354,23,16,16,16,24,24,0,0,0,0,0,0
+2313,41374,22,16,16,16,24,24,0,0,0,0,0,0
+2315,41394,20,16,16,16,24,24,0,0,0,0,0,0
+2316,41414,19,16,16,16,24,24,0,0,0,0,0,0
+2317,41434,18,16,16,16,24,24,0,0,0,0,0,0
+2318,41454,16,16,16,16,24,24,0,0,0,0,0,0
+2319,41474,14,8,8,8,16,16,0,0,0,0,0,0
+2321,41494,14,8,8,8,16,16,0,0,0,0,0,0
+2323,41514,12,8,8,8,16,16,0,0,0,0,0,0
+2324,41534,10,8,8,8,16,16,0,0,0,0,0,0
+2325,41554,10,8,8,8,16,16,0,0,0,0,0,0
+2326,41574,8,8,8,8,16,16,0,0,0,0,0,0
+2327,41593,6,0,0,0,8,8,0,0,0,0,0,0
+2329,41613,5,0,0,0,8,8,0,0,0,0,0,0
+2331,41633,4,0,0,0,8,8,0,0,0,0,0,0
+2332,41653,2,0,0,0,8,8,0,0,0,0,0,0
+2333,41673,1,0,0,0,8,8,0,0,0,0,0,0
+2334,41693,0,0,0,0,8,8,0,0,0,0,0,0
+2335,41713,30,24,24,24,0,0,0,0,0,0,0,0
+2337,41733,29,24,24,24,0,0,0,0,0,0,0,0
+2339,41753,28,24,24,24,0,0,0,0,0,0,0,0
+2340,41773,26,24,24,24,0,0,0,0,0,0,0,0
+2341,41793,25,24,24,24,0,0,0,0,0,0,0,0
+2342,41813,24,24,24,24,0,0,0,0,0,0,0,0
+2343,41833,22,16,16,16,24,24,0,0,0,0,0,0
+2345,41853,21,16,16,16,24,24,0,0,0,0,0,0
+2347,41873,20,16,16,16,24,24,0,0,0,0,0,0
+2348,41893,18,16,16,16,24,24,0,0,0,0,0,0
+2349,41913,17,16,16,16,24,24,0,0,0,0,0,0
+2350,41933,16,16,16,16,24,24,0,0,0,0,0,0
+2351,41953,14,8,8,8,16,16,0,0,0,0,0,0
+2353,41973,13,8,8,8,16,16,0,0,0,0,0,0
+2355,41993,12,8,8,8,16,16,0,0,0,0,0,0
+2356,42013,10,8,8,8,16,16,0,0,0,0,0,0
+2357,42033,9,8,8,8,16,16,0,0,0,0,0,0
+2358,42053,8,8,8,8,16,16,0,0,0,0,0,0
+2359,42072,6,0,0,0,8,8,0,0,0,0,0,0
+2361,42092,6,0,0,0,8,8,0,0,0,0,0,0
+2363,42112,4,0,0,0,8,8,0,0,0,0,0,0
+2364,42132,2,0,0,0,8,8,0,0,0,0,0,0
+2365,42152,2,0,0,0,8,8,0,0,0,0,0,0
+2366,42172,0,0,0,0,8,8,0,0,0,0,0,0
+2367,42192,31,24,24,24,0,0,0,0,0,0,0,0
+2369,42212,30,24,24,24,0,0,0,0,0,0,0,0
+2371,42232,28,24,24,24,0,0,0,0,0,0,0,0
+2372,42252,27,24,24,24,0,0,0,0,0,0,0,0
+2373,42272,26,24,24,24,0,0,0,0,0,0,0,0
+2374,42292,24,24,24,24,0,0,0,0,0,0,0,0
+2375,42312,23,16,16,16,24,24,0,0,0,0,0,0
+2377,42332,22,16,16,16,24,24,0,0,0,0,0,0
+2379,42352,21,16,16,16,24,24,0,0,0,0,0,0
+2380,42372,19,16,16,16,24,24,0,0,0,0,0,0
+2381,42392,18,16,16,16,24,24,0,0,0,0,0,0
+2382,42412,16,16,16,16,24,24,0,0,0,0,0,0
+2383,42432,15,8,8,8,16,16,0,0,0,0,0,0
+2385,42452,14,8,8,8,16,16,0,0,0,0,0,0
+2387,42472,12,8,8,8,16,16,0,0,0,0,0,0
+2388,42492,11,8,8,8,16,16,0,0,0,0,0,0
+2389,42512,10,8,8,8,16,16,0,0,0,0,0,0
+2390,42532,8,8,8,8,16,16,0,0,0,0,0,0
+2391,42551,7,0,0,0,8,8,0,0,0,0,0,0
+2393,42571,6,0,0,0,8,8,0,0,0,0,0,0
+2395,42591,4,0,0,0,8,8,0,0,0,0,0,0
+2396,42611,3,0,0,0,8,8,0,0,0,0,0,0
+2397,42631,2,0,0,0,8,8,0,0,0,0,0,0
+2398,42651,0,0,0,0,8,8,0,0,0,0,0,0
+2399,42671,31,24,24,24,0,0,0,0,0,0,0,0
+2401,42691,30,24,24,24,0,0,0,0,0,0,0,0
+2403,42711,28,24,24,24,0,0,0,0,0,0,0,0
+2404,42731,27,24,24,24,0,0,0,0,0,0,0,0
+2405,42751,26,24,24,24,0,0,0,0,0,0,0,0
+2406,42771,24,24,24,24,0,0,0,0,0,0,0,0
+2407,42791,23,16,16,16,24,24,0,0,0,0,0,0
+2409,42811,22,16,16,16,24,24,0,0,0,0,0,0
+2411,42831,20,16,16,16,24,24,0,0,0,0,0,0
+2412,42851,19,16,16,16,24,24,0,0,0,0,0,0
+2413,42871,18,16,16,16,24,24,0,0,0,0,0,0
+2414,42891,16,16,16,16,24,24,0,0,0,0,0,0
+2415,42911,15,8,8,8,16,16,0,0,0,0,0,0
+2417,42931,14,8,8,8,16,16,0,0,0,0,0,0
+2419,42951,12,8,8,8,16,16,0,0,0,0,0,0
+2420,42971,11,8,8,8,16,16,0,0,0,0,0,0
+2421,42991,10,8,8,8,16,16,0,0,0,0,0,0
+2422,43011,8,8,8,8,16,16,0,0,0,0,0,0
+2423,43030,7,0,0,0,8,8,0,0,0,0,0,0
+2425,43050,6,0,0,0,8,8,0,0,0,0,0,0
+2427,43070,4,0,0,0,8,8,0,0,0,0,0,0
+2428,43090,2,0,0,0,8,8,0,0,0,0,0,0
+2429,43110,1,0,0,0,8,8,0,0,0,0,0,0
+2430,43130,0,0,0,0,8,8,0,0,0,0,0,0
+2431,43150,31,24,24,24,0,0,0,0,0,0,0,0
+2433,43170,30,24,24,24,0,0,0,0,0,0,0,0
+2435,43190,28,24,24,24,0,0,0,0,0,0,0,0
+2436,43210,27,24,24,24,0,0,0,0,0,0,0,0
+2437,43230,26,24,24,24,0,0,0,0,0,0,0,0
+2438,43250,24,24,24,24,0,0,0,0,0,0,0,0
+2439,43270,23,16,16,16,24,24,0,0,0,0,0,0
+2441,43290,22,16,16,16,24,24,0,0,0,0,0,0
+2443,43310,20,16,16,16,24,24,0,0,0,0,0,0
+2444,43330,18,16,16,16,24,24,0,0,0,0,0,0
+2445,43350,17,16,16,16,24,24,0,0,0,0,0,0
+2446,43370,16,16,16,16,24,24,0,0,0,0,0,0
+2447,43390,14,8,8,8,16,16,0,0,0,0,0,0
+2449,43410,13,8,8,8,16,16,0,0,0,0,0,0
+2451,43430,12,8,8,8,16,16,0,0,0,0,0,0
+2452,43450,10,8,8,8,16,16,0,0,0,0,0,0
+2453,43470,9,8,8,8,16,16,0,0,0,0,0,0
+2454,43490,8,8,8,8,16,16,0,0,0,0,0,0
+2455,43509,6,0,0,0,8,8,0,0,0,0,0,0
+2457,43529,5,0,0,0,8,8,0,0,0,0,0,0
+2459,43549,4,0,0,0,8,8,0,0,0,0,0,0
+2460,43569,2,0,0,0,8,8,0,0,0,0,0,0
+2461,43589,1,0,0,0,8,8,0,0,0,0,0,0
+2462,43609,0,0,0,0,8,8,0,0,0,0,0,0
+2463,43629,30,24,24,24,0,0,0,0,0,0,0,0
+2465,43649,29,24,24,24,0,0,0,0,0,0,0,0
+2467,43669,28,24,24,24,0,0,0,0,0,0,0,0
+2468,43689,26,24,24,24,0,0,0,0,0,0,0,0
+2469,43709,25,24,24,24,0,0,0,0,0,0,0,0
+2470,43729,24,24,24,24,0,0,0,0,0,0,0,0
+2471,43749,22,16,16,16,24,24,0,0,0,0,0,0
+2473,43769,21,16,16,16,24,24,0,0,0,0,0,0
+2475,43789,20,16,16,16,24,24,0,0,0,0,0,0
+2476,43809,18,16,16,16,24,24,0,0,0,0,0,0
+2477,43829,17,16,16,16,24,24,0,0,0,0,0,0
+2478,43849,16,16,16,16,24,24,0,0,0,0,0,0
+2479,43869,14,8,8,8,16,16,0,0,0,0,0,0
+2481,43889,12,8,8,8,16,16,0,0,0,0,0,0
+2482,43909,12,8,8,8,16,16,0,0,0,0,0,0
+2483,43929,10,8,8,8,16,16,0,0,0,0,0,0
+2484,43949,8,8,8,8,16,16,0,0,0,0,0,0
+2485,43969,8,8,8,8,16,16,0,0,0,0,0,0
+2486,43988,6,0,0,0,8,8,0,0,0,0,0,0
+2488,44008,5,0,0,0,8,8,0,0,0,0,0,0
+2489,44028,4,0,0,0,8,8,0,0,0,0,0,0
+2490,44048,2,0,0,0,8,8,0,0,0,0,0,0
+2491,44068,0,0,0,0,8,8,0,0,0,0,0,0
+2492,44088,31,24,24,24,0,0,0,0,0,0,0,0
+2494,44108,30,24,24,24,0,0,0,0,0,0,0,0
+2496,44128,28,24,24,24,0,0,0,0,0,0,0,0
+2497,44148,28,24,24,24,0,0,0,0,0,0,0,0
+2498,44168,26,24,24,24,0,0,0,0,0,0,0,0
+2499,44188,24,24,24,24,0,0,0,0,0,0,0,0
+2500,44208,23,16,16,16,24,24,0,0,0,0,0,0
+2502,44228,22,16,16,16,24,24,0,0,0,0,0,0
+2504,44248,20,16,16,16,24,24,0,0,0,0,0,0
+2505,44268,19,16,16,16,24,24,0,0,0,0,0,0
+2506,44288,18,16,16,16,24,24,0,0,0,0,0,0
+2507,44308,16,16,16,16,24,24,0,0,0,0,0,0
+2508,44328,15,8,8,8,16,16,0,0,0,0,0,0
+2510,44348,14,8,8,8,16,16,0,0,0,0,0,0
+2512,44368,12,8,8,8,16,16,0,0,0,0,0,0
+2513,44388,11,8,8,8,16,16,0,0,0,0,0,0
+2514,44408,10,8,8,8,16,16,0,0,0,0,0,0
+2515,44428,8,8,8,8,16,16,0,0,0,0,0,0
+2516,44447,7,0,0,0,8,8,0,0,0,0,0,0
+2518,44467,6,0,0,0,8,8,0,0,0,0,0,0
+2520,44487,4,0,0,0,8,8,0,0,0,0,0,0
+2521,44507,2,0,0,0,8,8,0,0,0,0,0,0
+2522,44527,2,0,0,0,8,8,0,0,0,0,0,0
+2523,44547,0,0,0,0,8,8,0,0,0,0,0,0
+2524,44567,31,24,24,24,0,0,0,0,0,0,0,0
+2526,44587,30,24,24,24,0,0,0,0,0,0,0,0
+2528,44607,28,24,24,24,0,0,0,0,0,0,0,0
+2529,44627,27,24,24,24,0,0,0,0,0,0,0,0
+2530,44647,26,24,24,24,0,0,0,0,0,0,0,0
+2531,44667,24,24,24,24,0,0,0,0,0,0,0,0
+2532,44687,23,16,16,16,24,24,0,0,0,0,0,0
+2534,44707,22,16,16,16,24,24,0,0,0,0,0,0
+2536,44727,20,16,16,16,24,24,0,0,0,0,0,0
+2537,44747,18,16,16,16,24,24,0,0,0,0,0,0
+2538,44767,18,16,16,16,24,24,0,0,0,0,0,0
+2539,44787,16,16,16,16,24,24,0,0,0,0,0,0
+2540,44807,15,8,8,8,16,16,0,0,0,0,0,0
+2542,44827,14,8,8,8,16,16,0,0,0,0,0,0
+2544,44847,12,8,8,8,16,16,0,0,0,0,0,0
+2545,44867,11,8,8,8,16,16,0,0,0,0,0,0
+2546,44887,10,8,8,8,16,16,0,0,0,0,0,0
+2547,44907,8,8,8,8,16,16,0,0,0,0,0,0
+2548,44926,7,0,0,0,8,8,0,0,0,0,0,0
+2550,44946,6,0,0,0,8,8,0,0,0,0,0,0
+2552,44966,4,0,0,0,8,8,0,0,0,0,0,0
+2553,44986,2,0,0,0,8,8,0,0,0,0,0,0
+2554,45006,2,0,0,0,8,8,0,0,0,0,0,0
+2555,45026,0,0,0,0,8,8,0,0,0,0,0,0
+2556,45046,30,24,24,24,0,0,0,0,0,0,0,0
+2558,45066,29,24,24,24,0,0,0,0,0,0,0,0
+2560,45086,28,24,24,24,0,0,0,0,0,0,0,0
+2561,45106,26,24,24,24,0,0,0,0,0,0,0,0
+2562,45126,25,24,24,24,0,0,0,0,0,0,0,0
+2563,45146,24,24,24,24,0,0,0,0,0,0,0,0
+2564,45166,22,16,16,16,24,24,0,0,0,0,0,0
+2566,45186,21,16,16,16,24,24,0,0,0,0,0,0
+2568,45206,20,16,16,16,24,24,0,0,0,0,0,0
+2569,45226,18,16,16,16,24,24,0,0,0,0,0,0
+2570,45246,17,16,16,16,24,24,0,0,0,0,0,0
+2571,45266,16,16,16,16,24,24,0,0,0,0,0,0
+2572,45286,14,8,8,8,16,16,0,0,0,0,0,0
+2574,45306,13,8,8,8,16,16,0,0,0,0,0,0
+2575,45326,11,8,8,8,16,16,0,0,0,0,0,0
+2576,45346,10,8,8,8,16,16,0,0,0,0,0,0
+2577,45366,8,8,8,8,16,16,0,0,0,0,0,0
+2578,45385,7,0,0,0,8,8,0,0,0,0,0,0
+2580,45405,6,0,0,0,8,8,0,0,0,0,0,0
+2582,45425,4,0,0,0,8,8,0,0,0,0,0,0
+2583,45445,3,0,0,0,8,8,0,0,0,0,0,0
+2584,45465,2,0,0,0,8,8,0,0,0,0,0,0
+2585,45485,0,0,0,0,8,8,0,0,0,0,0,0
+2586,45505,31,24,24,24,0,0,0,0,0,0,0,0
+2588,45525,30,24,24,24,0,0,0,0,0,0,0,0
+2590,45545,28,24,24,24,0,0,0,0,0,0,0,0
+2591,45565,27,24,24,24,0,0,0,0,0,0,0,0
+2592,45585,26,24,24,24,0,0,0,0,0,0,0,0
+2593,45605,24,24,24,24,0,0,0,0,0,0,0,0
+2594,45625,23,16,16,16,24,24,0,0,0,0,0,0
+2596,45645,22,16,16,16,24,24,0,0,0,0,0,0
+2598,45665,20,16,16,16,24,24,0,0,0,0,0,0
+2599,45685,19,16,16,16,24,24,0,0,0,0,0,0
+2600,45705,18,16,16,16,24,24,0,0,0,0,0,0
+2601,45725,16,16,16,16,24,24,0,0,0,0,0,0
+2602,45745,15,8,8,8,16,16,0,0,0,0,0,0
+2604,45765,14,8,8,8,16,16,0,0,0,0,0,0
+2606,45785,12,8,8,8,16,16,0,0,0,0,0,0
+2607,45805,11,8,8,8,16,16,0,0,0,0,0,0
+2608,45825,10,8,8,8,16,16,0,0,0,0,0,0
+2609,45845,8,8,8,8,16,16,0,0,0,0,0,0
+2610,45864,6,0,0,0,8,8,0,0,0,0,0,0
+2612,45884,6,0,0,0,8,8,0,0,0,0,0,0
+2614,45904,4,0,0,0,8,8,0,0,0,0,0,0
+2615,45924,2,0,0,0,8,8,0,0,0,0,0,0
+2616,45944,1,0,0,0,8,8,0,0,0,0,0,0
+2617,45964,0,0,0,0,8,8,0,0,0,0,0,0
+2618,45984,30,24,24,24,0,0,0,0,0,0,0,0
+2620,46004,29,24,24,24,0,0,0,0,0,0,0,0
+2622,46024,28,24,24,24,0,0,0,0,0,0,0,0
+2623,46044,26,24,24,24,0,0,0,0,0,0,0,0
+2624,46064,26,24,24,24,0,0,0,0,0,0,0,0
+2625,46084,24,24,24,24,0,0,0,0,0,0,0,0
+2626,46104,22,16,16,16,24,24,0,0,0,0,0,0
+2628,46124,21,16,16,16,24,24,0,0,0,0,0,0
+2630,46144,20,16,16,16,24,24,0,0,0,0,0,0
+2631,46164,18,16,16,16,24,24,0,0,0,0,0,0
+2632,46184,17,16,16,16,24,24,0,0,0,0,0,0
+2633,46204,16,16,16,16,24,24,0,0,0,0,0,0
+2634,46224,14,8,8,8,16,16,0,0,0,0,0,0
+2636,46244,13,8,8,8,16,16,0,0,0,0,0,0
+2638,46264,12,8,8,8,16,16,0,0,0,0,0,0
+2639,46284,10,8,8,8,16,16,0,0,0,0,0,0
+2640,46304,9,8,8,8,16,16,0,0,0,0,0,0
+2641,46324,8,8,8,8,16,16,0,0,0,0,0,0
+2642,46343,6,0,0,0,8,8,0,0,0,0,0,0
+2644,46363,5,0,0,0,8,8,0,0,0,0,0,0
+2646,46383,4,0,0,0,8,8,0,0,0,0,0,0
+2647,46403,2,0,0,0,8,8,0,0,0,0,0,0
+2648,46423,1,0,0,0,8,8,0,0,0,0,0,0
+2649,46443,0,0,0,0,8,8,0,0,0,0,0,0
+2650,46463,30,24,24,24,0,0,0,0,0,0,0,0
+2652,46483,29,24,24,24,0,0,0,0,0,0,0,0
+2654,46503,28,24,24,24,0,0,0,0,0,0,0,0
+2655,46523,26,24,24,24,0,0,0,0,0,0,0,0
+2656,46543,25,24,24,24,0,0,0,0,0,0,0,0
+2657,46563,24,24,24,24,0,0,0,0,0,0,0,0
+2658,46583,22,16,16,16,24,24,0,0,0,0,0,0
+2660,46603,21,16,16,16,24,24,0,0,0,0,0,0
+2662,46623,20,16,16,16,24,24,0,0,0,0,0,0
+2663,46643,18,16,16,16,24,24,0,0,0,0,0,0
+2664,46663,17,16,16,16,24,24,0,0,0,0,0,0
+2665,46683,16,16,16,16,24,24,0,0,0,0,0,0
+2666,46703,14,8,8,8,16,16,0,0,0,0,0,0
+2668,46723,13,8,8,8,16,16,0,0,0,0,0,0
+2670,46743,12,8,8,8,16,16,0,0,0,0,0,0
+2671,46763,10,8,8,8,16,16,0,0,0,0,0,0
+2672,46783,9,8,8,8,16,16,0,0,0,0,0,0
+2673,46803,8,8,8,8,16,16,0,0,0,0,0,0
+2674,46822,6,0,0,0,8,8,0,0,0,0,0,0
+2676,46842,5,0,0,0,8,8,0,0,0,0,0,0
+2678,46862,4,0,0,0,8,8,0,0,0,0,0,0
+2679,46882,2,0,0,0,8,8,0,0,0,0,0,0
+2680,46902,1,0,0,0,8,8,0,0,0,0,0,0
+2681,46922,0,0,0,0,8,8,0,0,0,0,0,0
+2682,46942,30,24,24,24,0,0,0,0,0,0,0,0
+2684,46962,29,24,24,24,0,0,0,0,0,0,0,0
+2686,46982,28,24,24,24,0,0,0,0,0,0,0,0
+2687,47002,26,24,24,24,0,0,0,0,0,0,0,0
+2688,47022,25,24,24,24,0,0,0,0,0,0,0,0
+2689,47042,24,24,24,24,0,0,0,0,0,0,0,0
+2690,47062,22,16,16,16,24,24,0,0,0,0,0,0
+2692,47082,21,16,16,16,24,24,0,0,0,0,0,0
+2694,47102,20,16,16,16,24,24,0,0,0,0,0,0
+2695,47122,18,16,16,16,24,24,0,0,0,0,0,0
+2696,47142,17,16,16,16,24,24,0,0,0,0,0,0
+2697,47162,16,16,16,16,24,24,0,0,0,0,0,0
+2698,47182,14,8,8,8,16,16,0,0,0,0,0,0
+2700,47202,13,8,8,8,16,16,0,0,0,0,0,0
+2702,47222,12,8,8,8,16,16,0,0,0,0,0,0
+2703,47242,10,8,8,8,16,16,0,0,0,0,0,0
+2704,47262,9,8,8,8,16,16,0,0,0,0,0,0
+2705,47282,8,8,8,8,16,16,0,0,0,0,0,0
+2706,47301,6,0,0,0,8,8,0,0,0,0,0,0
+2708,47321,5,0,0,0,8,8,0,0,0,0,0,0
+2710,47341,4,0,0,0,8,8,0,0,0,0,0,0
+2711,47361,2,0,0,0,8,8,0,0,0,0,0,0
+2712,47381,1,0,0,0,8,8,0,0,0,0,0,0
+2713,47401,0,0,0,0,8,8,0,0,0,0,0,0
+2714,47421,30,24,24,24,0,0,0,0,0,0,0,0
+2716,47441,29,24,24,24,0,0,0,0,0,0,0,0
+2718,47461,28,24,24,24,0,0,0,0,0,0,0,0
+2719,47481,26,24,24,24,0,0,0,0,0,0,0,0
+2720,47501,25,24,24,24,0,0,0,0,0,0,0,0
+2721,47521,24,24,24,24,0,0,0,0,0,0,0,0
+2722,47541,22,16,16,16,24,24,0,0,0,0,0,0
+2724,47561,21,16,16,16,24,24,0,0,0,0,0,0
+2726,47581,20,16,16,16,24,24,0,0,0,0,0,0
+2727,47601,18,16,16,16,24,24,0,0,0,0,0,0
+2728,47621,17,16,16,16,24,24,0,0,0,0,0,0
+2729,47641,16,16,16,16,24,24,0,0,0,0,0,0
+2730,47661,14,8,8,8,16,16,0,0,0,0,0,0
+2732,47681,13,8,8,8,16,16,0,0,0,0,0,0
+2733,47701,12,8,8,8,16,16,0,0,0,0,0,0
+2734,47721,10,8,8,8,16,16,0,0,0,0,0,0
+2735,47741,9,8,8,8,16,16,0,0,0,0,0,0
+2736,47761,8,8,8,8,16,16,0,0,0,0,0,0
+2737,47780,6,0,0,0,8,8,0,0,0,0,0,0
+2739,47800,5,0,0,0,8,8,0,0,0,0,0,0
+2740,47820,4,0,0,0,8,8,0,0,0,0,0,0
+2741,47840,2,0,0,0,8,8,0,0,0,0,0,0
+2742,47860,1,0,0,0,8,8,0,0,0,0,0,0
+2743,47880,0,0,0,0,8,8,0,0,0,0,0,0
+2744,47900,30,24,24,24,0,0,0,0,0,0,0,0
+2746,47920,29,24,24,24,0,0,0,0,0,0,0,0
+2748,47940,28,24,24,24,0,0,0,0,0,0,0,0
+2749,47960,26,24,24,24,0,0,0,0,0,0,0,0
+2750,47980,25,24,24,24,0,0,0,0,0,0,0,0
+2751,48000,24,24,24,24,0,0,0,0,0,0,0,0
+2752,48020,22,16,16,16,24,24,0,0,0,0,0,0
+2754,48040,21,16,16,16,24,24,0,0,0,0,0,0
+2756,48060,20,16,16,16,24,24,0,0,0,0,0,0
+2757,48080,18,16,16,16,24,24,0,0,0,0,0,0
+2758,48100,17,16,16,16,24,24,0,0,0,0,0,0
+2759,48120,15,8,8,8,16,16,0,0,0,0,0,0
+2761,48140,14,8,8,8,16,16,0,0,0,0,0,0
+2763,48160,12,8,8,8,16,16,0,0,0,0,0,0
+2764,48180,11,8,8,8,16,16,0,0,0,0,0,0
+2765,48200,10,8,8,8,16,16,0,0,0,0,0,0
+2766,48220,8,8,8,8,16,16,0,0,0,0,0,0
+2767,48239,7,0,0,0,8,8,0,0,0,0,0,0
+2769,48259,6,0,0,0,8,8,0,0,0,0,0,0
+2771,48279,4,0,0,0,8,8,0,0,0,0,0,0
+2772,48299,3,0,0,0,8,8,0,0,0,0,0,0
+2773,48319,2,0,0,0,8,8,0,0,0,0,0,0
+2774,48339,0,0,0,0,8,8,0,0,0,0,0,0
+2775,48359,31,24,24,24,0,0,0,0,0,0,0,0
+2777,48379,30,24,24,24,0,0,0,0,0,0,0,0
+2779,48399,28,24,24,24,0,0,0,0,0,0,0,0
+2780,48419,27,24,24,24,0,0,0,0,0,0,0,0
+2781,48439,26,24,24,24,0,0,0,0,0,0,0,0
+2782,48459,24,24,24,24,0,0,0,0,0,0,0,0
+2783,48479,23,16,16,16,24,24,0,0,0,0,0,0
+2785,48499,22,16,16,16,24,24,0,0,0,0,0,0
+2787,48519,20,16,16,16,24,24,0,0,0,0,0,0
+2788,48539,19,16,16,16,24,24,0,0,0,0,0,0
+2789,48559,18,16,16,16,24,24,0,0,0,0,0,0
+2790,48579,16,16,16,16,24,24,0,0,0,0,0,0
+2791,48599,14,8,8,8,16,16,0,0,0,0,0,0
+2793,48619,13,8,8,8,16,16,0,0,0,0,0,0
+2795,48639,12,8,8,8,16,16,0,0,0,0,0,0
+2796,48659,10,8,8,8,16,16,0,0,0,0,0,0
+2797,48679,9,8,8,8,16,16,0,0,0,0,0,0
+2798,48699,8,8,8,8,16,16,0,0,0,0,0,0
+2799,48718,6,0,0,0,8,8,0,0,0,0,0,0
+2801,48738,5,0,0,0,8,8,0,0,0,0,0,0
+2803,48758,4,0,0,0,8,8,0,0,0,0,0,0
+2804,48778,2,0,0,0,8,8,0,0,0,0,0,0
+2805,48798,1,0,0,0,8,8,0,0,0,0,0,0
+2806,48818,0,0,0,0,8,8,0,0,0,0,0,0
+2807,48838,30,24,24,24,0,0,0,0,0,0,0,0
+2809,48858,29,24,24,24,0,0,0,0,0,0,0,0
+2811,48878,28,24,24,24,0,0,0,0,0,0,0,0
+2812,48898,26,24,24,24,0,0,0,0,0,0,0,0
+2813,48918,25,24,24,24,0,0,0,0,0,0,0,0
+2814,48938,24,24,24,24,0,0,0,0,0,0,0,0
+2815,48958,22,16,16,16,24,24,0,0,0,0,0,0
+2817,48978,21,16,16,16,24,24,0,0,0,0,0,0
+2818,48998,20,16,16,16,24,24,0,0,0,0,0,0
+2819,49018,18,16,16,16,24,24,0,0,0,0,0,0
+2820,49038,17,16,16,16,24,24,0,0,0,0,0,0
+2821,49058,15,8,8,8,16,16,0,0,0,0,0,0
+2823,49078,14,8,8,8,16,16,0,0,0,0,0,0
+2825,49098,13,8,8,8,16,16,0,0,0,0,0,0
+2826,49118,12,8,8,8,16,16,0,0,0,0,0,0
+2827,49138,10,8,8,8,16,16,0,0,0,0,0,0
+2828,49158,9,8,8,8,16,16,0,0,0,0,0,0
+2829,49177,7,0,0,0,8,8,0,0,0,0,0,0
+2831,49197,6,0,0,0,8,8,0,0,0,0,0,0
+2833,49217,5,0,0,0,8,8,0,0,0,0,0,0
+2834,49237,4,0,0,0,8,8,0,0,0,0,0,0
+2835,49257,2,0,0,0,8,8,0,0,0,0,0,0
+2836,49277,1,0,0,0,8,8,0,0,0,0,0,0
+2837,49297,0,0,0,0,8,8,0,0,0,0,0,0
+2838,49317,30,24,24,24,0,0,0,0,0,0,0,0
+2840,49337,28,24,24,24,0,0,0,0,0,0,0,0
+2841,49357,27,24,24,24,0,0,0,0,0,0,0,0
+2842,49377,26,24,24,24,0,0,0,0,0,0,0,0
+2843,49397,24,24,24,24,0,0,0,0,0,0,0,0
+2844,49417,23,16,16,16,24,24,0,0,0,0,0,0
+2846,49437,22,16,16,16,24,24,0,0,0,0,0,0
+2848,49457,20,16,16,16,24,24,0,0,0,0,0,0
+2849,49477,19,16,16,16,24,24,0,0,0,0,0,0
+2850,49497,18,16,16,16,24,24,0,0,0,0,0,0
+2851,49517,16,16,16,16,24,24,0,0,0,0,0,0
+2852,49537,15,8,8,8,16,16,0,0,0,0,0,0
+2854,49557,14,8,8,8,16,16,0,0,0,0,0,0
+2856,49577,12,8,8,8,16,16,0,0,0,0,0,0
+2857,49597,11,8,8,8,16,16,0,0,0,0,0,0
+2858,49617,10,8,8,8,16,16,0,0,0,0,0,0
+2859,49637,8,8,8,8,16,16,0,0,0,0,0,0
+2860,49656,7,0,0,0,8,8,0,0,0,0,0,0
+2862,49676,6,0,0,0,8,8,0,0,0,0,0,0
+2864,49696,4,0,0,0,8,8,0,0,0,0,0,0
+2865,49716,3,0,0,0,8,8,0,0,0,0,0,0
+2866,49736,2,0,0,0,8,8,0,0,0,0,0,0
+2867,49756,1,0,0,0,8,8,0,0,0,0,0,0
+2868,49776,0,0,0,0,8,8,0,0,0,0,0,0
+2869,49796,30,24,24,24,0,0,0,0,0,0,0,0
+2871,49816,29,24,24,24,0,0,0,0,0,0,0,0
+2873,49836,28,24,24,24,0,0,0,0,0,0,0,0
+2874,49856,26,24,24,24,0,0,0,0,0,0,0,0
+2875,49876,25,24,24,24,0,0,0,0,0,0,0,0
+2876,49896,24,24,24,24,0,0,0,0,0,0,0,0
+2877,49916,22,16,16,16,24,24,0,0,0,0,0,0
+2879,49936,21,16,16,16,24,24,0,0,0,0,0,0
+2881,49956,20,16,16,16,24,24,0,0,0,0,0,0
+2882,49976,18,16,16,16,24,24,0,0,0,0,0,0
+2883,49996,16,16,16,16,24,24,0,0,0,0,0,0
+2884,50016,15,8,8,8,16,16,0,0,0,0,0,0
+2886,50036,14,8,8,8,16,16,0,0,0,0,0,0
+2888,50056,12,8,8,8,16,16,0,0,0,0,0,0
+2889,50076,11,8,8,8,16,16,0,0,0,0,0,0
+2890,50096,10,8,8,8,16,16,0,0,0,0,0,0
+2891,50116,8,8,8,8,16,16,0,0,0,0,0,0
+2892,50135,6,0,0,0,8,8,0,0,0,0,0,0
+2894,50155,6,0,0,0,8,8,0,0,0,0,0,0
+2896,50175,4,0,0,0,8,8,0,0,0,0,0,0
+2897,50195,3,0,0,0,8,8,0,0,0,0,0,0
+2898,50215,2,0,0,0,8,8,0,0,0,0,0,0
+2899,50235,0,0,0,0,8,8,0,0,0,0,0,0
+2900,50255,31,24,24,24,0,0,0,0,0,0,0,0
+2902,50275,30,24,24,24,0,0,0,0,0,0,0,0
+2904,50295,28,24,24,24,0,0,0,0,0,0,0,0
+2905,50315,27,24,24,24,0,0,0,0,0,0,0,0
+2906,50335,26,24,24,24,0,0,0,0,0,0,0,0
+2907,50355,24,24,24,24,0,0,0,0,0,0,0,0
+2908,50375,22,16,16,16,24,24,0,0,0,0,0,0
+2910,50395,21,16,16,16,24,24,0,0,0,0,0,0
+2912,50415,20,16,16,16,24,24,0,0,0,0,0,0
+2913,50435,18,16,16,16,24,24,0,0,0,0,0,0
+2914,50455,17,16,16,16,24,24,0,0,0,0,0,0
+2915,50475,16,16,16,16,24,24,0,0,0,0,0,0
+2916,50495,14,8,8,8,16,16,0,0,0,0,0,0
+2918,50515,14,8,8,8,16,16,0,0,0,0,0,0
+2920,50535,12,8,8,8,16,16,0,0,0,0,0,0
+2921,50555,10,8,8,8,16,16,0,0,0,0,0,0
+2922,50575,9,8,8,8,16,16,0,0,0,0,0,0
+2923,50595,8,8,8,8,16,16,0,0,0,0,0,0
+2924,50614,6,0,0,0,8,8,0,0,0,0,0,0
+2926,50634,5,0,0,0,8,8,0,0,0,0,0,0
+2928,50654,4,0,0,0,8,8,0,0,0,0,0,0
+2929,50674,2,0,0,0,8,8,0,0,0,0,0,0
+2930,50694,1,0,0,0,8,8,0,0,0,0,0,0
+2931,50714,0,0,0,0,8,8,0,0,0,0,0,0
+2932,50734,30,24,24,24,0,0,0,0,0,0,0,0
+2934,50754,29,24,24,24,0,0,0,0,0,0,0,0
+2936,50774,28,24,24,24,0,0,0,0,0,0,0,0
+2937,50794,27,24,24,24,0,0,0,0,0,0,0,0
+2938,50814,26,24,24,24,0,0,0,0,0,0,0,0
+2939,50834,24,24,24,24,0,0,0,0,0,0,0,0
+2940,50854,23,16,16,16,24,24,0,0,0,0,0,0
+2942,50874,22,16,16,16,24,24,0,0,0,0,0,0
+2944,50894,20,16,16,16,24,24,0,0,0,0,0,0
+2945,50914,19,16,16,16,24,24,0,0,0,0,0,0
+2946,50934,18,16,16,16,24,24,0,0,0,0,0,0
+2947,50954,16,16,16,16,24,24,0,0,0,0,0,0
+2948,50974,14,8,8,8,16,16,0,0,0,0,0,0
+2950,50994,14,8,8,8,16,16,0,0,0,0,0,0
+2952,51014,12,8,8,8,16,16,0,0,0,0,0,0
+2953,51034,11,8,8,8,16,16,0,0,0,0,0,0
+2954,51054,10,8,8,8,16,16,0,0,0,0,0,0
+2955,51074,8,8,8,8,16,16,0,0,0,0,0,0
+2956,51093,6,0,0,0,8,8,0,0,0,0,0,0
+2958,51113,6,0,0,0,8,8,0,0,0,0,0,0
+2960,51133,4,0,0,0,8,8,0,0,0,0,0,0
+2961,51153,3,0,0,0,8,8,0,0,0,0,0,0
+2962,51173,2,0,0,0,8,8,0,0,0,0,0,0
+2963,51193,0,0,0,0,8,8,0,0,0,0,0,0
+2964,51213,31,24,24,24,0,0,0,0,0,0,0,0
+2966,51233,30,24,24,24,0,0,0,0,0,0,0,0
+2968,51253,28,24,24,24,0,0,0,0,0,0,0,0
+2969,51273,27,24,24,24,0,0,0,0,0,0,0,0
+2970,51293,26,24,24,24,0,0,0,0,0,0,0,0
+2971,51313,24,24,24,24,0,0,0,0,0,0,0,0
+2972,51333,23,16,16,16,24,24,0,0,0,0,0,0
+2974,51353,22,16,16,16,24,24,0,0,0,0,0,0
+2976,51373,20,16,16,16,24,24,0,0,0,0,0,0
+2977,51393,19,16,16,16,24,24,0,0,0,0,0,0
+2978,51413,18,16,16,16,24,24,0,0,0,0,0,0
+2979,51433,16,16,16,16,24,24,0,0,0,0,0,0
+2980,51453,15,8,8,8,16,16,0,0,0,0,0,0
+2982,51473,14,8,8,8,16,16,0,0,0,0,0,0
+2984,51493,12,8,8,8,16,16,0,0,0,0,0,0
+2985,51513,10,8,8,8,16,16,0,0,0,0,0,0
+2986,51533,9,8,8,8,16,16,0,0,0,0,0,0
+2987,51553,8,8,8,8,16,16,0,0,0,0,0,0
+2988,51572,6,0,0,0,8,8,0,0,0,0,0,0
+2990,51592,5,0,0,0,8,8,0,0,0,0,0,0
+2991,51612,4,0,0,0,8,8,0,0,0,0,0,0
+2992,51632,2,0,0,0,8,8,0,0,0,0,0,0
+2993,51652,1,0,0,0,8,8,0,0,0,0,0,0
+2994,51672,0,0,0,0,8,8,0,0,0,0,0,0
+2995,51692,30,24,24,24,0,0,0,0,0,0,0,0
+2997,51712,29,24,24,24,0,0,0,0,0,0,0,0
+2998,51732,28,24,24,24,0,0,0,0,0,0,0,0
+2999,51752,26,24,24,24,0,0,0,0,0,0,0,0
+3000,51772,25,24,24,24,0,0,0,0,0,0,0,0
+3001,51792,24,24,24,24,0,0,0,0,0,0,0,0
+3002,51812,22,16,16,16,24,24,0,0,0,0,0,0
+3004,51832,21,16,16,16,24,24,0,0,0,0,0,0
+3005,51852,20,16,16,16,24,24,0,0,0,0,0,0
+3006,51872,18,16,16,16,24,24,0,0,0,0,0,0
+3007,51892,16,16,16,16,24,24,0,0,0,0,0,0
+3008,51912,15,8,8,8,16,16,0,0,0,0,0,0
+3010,51932,14,8,8,8,16,16,0,0,0,0,0,0
+3012,51952,12,8,8,8,16,16,0,0,0,0,0,0
+3013,51972,11,8,8,8,16,16,0,0,0,0,0,0
+3014,51992,10,8,8,8,16,16,0,0,0,0,0,0
+3015,52012,8,8,8,8,16,16,0,0,0,0,0,0
+3016,52031,7,0,0,0,8,8,0,0,0,0,0,0
+3018,52051,6,0,0,0,8,8,0,0,0,0,0,0
+3020,52071,4,0,0,0,8,8,0,0,0,0,0,0
+3021,52091,3,0,0,0,8,8,0,0,0,0,0,0
+3022,52111,2,0,0,0,8,8,0,0,0,0,0,0
+3023,52131,0,0,0,0,8,8,0,0,0,0,0,0
+3024,52151,31,24,24,24,0,0,0,0,0,0,0,0
+3026,52171,30,24,24,24,0,0,0,0,0,0,0,0
+3028,52191,28,24,24,24,0,0,0,0,0,0,0,0
+3029,52211,27,24,24,24,0,0,0,0,0,0,0,0
+3030,52231,26,24,24,24,0,0,0,0,0,0,0,0
+3031,52251,24,24,24,24,0,0,0,0,0,0,0,0
+3032,52271,23,16,16,16,24,24,0,0,0,0,0,0
+3034,52291,22,16,16,16,24,24,0,0,0,0,0,0
+3036,52311,20,16,16,16,24,24,0,0,0,0,0,0
+3037,52331,19,16,16,16,24,24,0,0,0,0,0,0
+3038,52351,18,16,16,16,24,24,0,0,0,0,0,0
+3039,52371,16,16,16,16,24,24,0,0,0,0,0,0
+3040,52391,15,8,8,8,16,16,0,0,0,0,0,0
+3042,52411,14,8,8,8,16,16,0,0,0,0,0,0
+3044,52431,12,8,8,8,16,16,0,0,0,0,0,0
+3045,52451,10,8,8,8,16,16,0,0,0,0,0,0
+3046,52471,9,8,8,8,16,16,0,0,0,0,0,0
+3047,52491,8,8,8,8,16,16,0,0,0,0,0,0
+3048,52510,6,0,0,0,8,8,0,0,0,0,0,0
+3050,52530,6,0,0,0,8,8,0,0,0,0,0,0
+3052,52550,4,0,0,0,8,8,0,0,0,0,0,0
+3053,52570,3,0,0,0,8,8,0,0,0,0,0,0
+3054,52590,2,0,0,0,8,8,0,0,0,0,0,0
+3055,52610,0,0,0,0,8,8,0,0,0,0,0,0
+3056,52630,31,24,24,24,0,0,0,0,0,0,0,0
+3058,52650,30,24,24,24,0,0,0,0,0,0,0,0
+3060,52670,28,24,24,24,0,0,0,0,0,0,0,0
+3061,52690,27,24,24,24,0,0,0,0,0,0,0,0
+3062,52710,26,24,24,24,0,0,0,0,0,0,0,0
+3063,52730,24,24,24,24,0,0,0,0,0,0,0,0
+3064,52750,23,16,16,16,24,24,0,0,0,0,0,0
+3066,52770,22,16,16,16,24,24,0,0,0,0,0,0
+3068,52790,20,16,16,16,24,24,0,0,0,0,0,0
+3069,52810,19,16,16,16,24,24,0,0,0,0,0,0
+3070,52830,18,16,16,16,24,24,0,0,0,0,0,0
+3071,52850,16,16,16,16,24,24,0,0,0,0,0,0
+3072,52870,15,8,8,8,16,16,0,0,0,0,0,0
+3074,52890,14,8,8,8,16,16,0,0,0,0,0,0
+3076,52910,12,8,8,8,16,16,0,0,0,0,0,0
+3077,52930,11,8,8,8,16,16,0,0,0,0,0,0
+3078,52950,10,8,8,8,16,16,0,0,0,0,0,0
+3079,52970,8,8,8,8,16,16,0,0,0,0,0,0
+3080,52989,7,0,0,0,8,8,0,0,0,0,0,0
+3082,53009,6,0,0,0,8,8,0,0,0,0,0,0
+3084,53029,5,0,0,0,8,8,0,0,0,0,0,0
+3085,53049,4,0,0,0,8,8,0,0,0,0,0,0
+3086,53069,2,0,0,0,8,8,0,0,0,0,0,0
+3087,53089,0,0,0,0,8,8,0,0,0,0,0,0
+3088,53109,31,24,24,24,0,0,0,0,0,0,0,0
+3090,53129,30,24,24,24,0,0,0,0,0,0,0,0
+3092,53149,28,24,24,24,0,0,0,0,0,0,0,0
+3093,53169,27,24,24,24,0,0,0,0,0,0,0,0
+3094,53189,26,24,24,24,0,0,0,0,0,0,0,0
+3095,53209,24,24,24,24,0,0,0,0,0,0,0,0
+3096,53229,23,16,16,16,24,24,0,0,0,0,0,0
+3098,53249,22,16,16,16,24,24,0,0,0,0,0,0
+3100,53269,20,16,16,16,24,24,0,0,0,0,0,0
+3101,53289,19,16,16,16,24,24,0,0,0,0,0,0
+3102,53309,18,16,16,16,24,24,0,0,0,0,0,0
+3103,53329,16,16,16,16,24,24,0,0,0,0,0,0
+3104,53349,15,8,8,8,16,16,0,0,0,0,0,0
+3106,53369,14,8,8,8,16,16,0,0,0,0,0,0
+3108,53389,13,8,8,8,16,16,0,0,0,0,0,0
+3109,53409,12,8,8,8,16,16,0,0,0,0,0,0
+3110,53429,10,8,8,8,16,16,0,0,0,0,0,0
+3111,53449,9,8,8,8,16,16,0,0,0,0,0,0
+3112,53469,8,8,8,8,16,16,0,0,0,0,0,0
+3113,53488,6,0,0,0,8,8,0,0,0,0,0,0
+3115,53508,5,0,0,0,8,8,0,0,0,0,0,0
+3117,53528,4,0,0,0,8,8,0,0,0,0,0,0
+3118,53548,2,0,0,0,8,8,0,0,0,0,0,0
+3119,53568,1,0,0,0,8,8,0,0,0,0,0,0
+3120,53588,0,0,0,0,8,8,0,0,0,0,0,0
+3121,53608,30,24,24,24,0,0,0,0,0,0,0,0
+3123,53628,29,24,24,24,0,0,0,0,0,0,0,0
+3124,53648,28,24,24,24,0,0,0,0,0,0,0,0
+3125,53668,26,24,24,24,0,0,0,0,0,0,0,0
+3126,53688,24,24,24,24,0,0,0,0,0,0,0,0
+3127,53708,24,24,24,24,0,0,0,0,0,0,0,0
+3128,53728,22,16,16,16,24,24,0,0,0,0,0,0
+3130,53748,21,16,16,16,24,24,0,0,0,0,0,0
+3131,53768,20,16,16,16,24,24,0,0,0,0,0,0
+3132,53788,18,16,16,16,24,24,0,0,0,0,0,0
+3133,53808,17,16,16,16,24,24,0,0,0,0,0,0
+3134,53828,16,16,16,16,24,24,0,0,0,0,0,0
+3135,53848,14,8,8,8,16,16,0,0,0,0,0,0
+3137,53868,13,8,8,8,16,16,0,0,0,0,0,0
+3139,53888,12,8,8,8,16,16,0,0,0,0,0,0
+3140,53908,10,8,8,8,16,16,0,0,0,0,0,0
+3141,53928,9,8,8,8,16,16,0,0,0,0,0,0
+3142,53948,8,8,8,8,16,16,0,0,0,0,0,0
+3143,53967,6,0,0,0,8,8,0,0,0,0,0,0
+3145,53987,5,0,0,0,8,8,0,0,0,0,0,0
+3147,54007,4,0,0,0,8,8,0,0,0,0,0,0
+3148,54027,2,0,0,0,8,8,0,0,0,0,0,0
+3149,54047,1,0,0,0,8,8,0,0,0,0,0,0
+3150,54067,0,0,0,0,8,8,0,0,0,0,0,0
+3151,54087,30,24,24,24,0,0,0,0,0,0,0,0
+3153,54107,29,24,24,24,0,0,0,0,0,0,0,0
+3155,54127,28,24,24,24,0,0,0,0,0,0,0,0
+3156,54147,26,24,24,24,0,0,0,0,0,0,0,0
+3157,54167,26,24,24,24,0,0,0,0,0,0,0,0
+3158,54187,24,24,24,24,0,0,0,0,0,0,0,0
+3159,54207,23,16,16,16,24,24,0,0,0,0,0,0
+3161,54227,22,16,16,16,24,24,0,0,0,0,0,0
+3163,54247,20,16,16,16,24,24,0,0,0,0,0,0
+3164,54267,19,16,16,16,24,24,0,0,0,0,0,0
+3165,54287,18,16,16,16,24,24,0,0,0,0,0,0
+3166,54307,16,16,16,16,24,24,0,0,0,0,0,0
+3167,54327,15,8,8,8,16,16,0,0,0,0,0,0
+3169,54347,14,8,8,8,16,16,0,0,0,0,0,0
+3171,54367,12,8,8,8,16,16,0,0,0,0,0,0
+3172,54387,11,8,8,8,16,16,0,0,0,0,0,0
+3173,54407,10,8,8,8,16,16,0,0,0,0,0,0
+3174,54427,8,8,8,8,16,16,0,0,0,0,0,0
+3175,54446,6,0,0,0,8,8,0,0,0,0,0,0
+3177,54466,5,0,0,0,8,8,0,0,0,0,0,0
+3179,54486,4,0,0,0,8,8,0,0,0,0,0,0
+3180,54506,2,0,0,0,8,8,0,0,0,0,0,0
+3181,54526,1,0,0,0,8,8,0,0,0,0,0,0
+3182,54546,0,0,0,0,8,8,0,0,0,0,0,0
+3183,54566,30,24,24,24,0,0,0,0,0,0,0,0
+3185,54586,30,24,24,24,0,0,0,0,0,0,0,0
+3187,54606,28,24,24,24,0,0,0,0,0,0,0,0
+3188,54626,27,24,24,24,0,0,0,0,0,0,0,0
+3189,54646,26,24,24,24,0,0,0,0,0,0,0,0
+3190,54666,24,24,24,24,0,0,0,0,0,0,0,0
+3191,54686,23,16,16,16,24,24,0,0,0,0,0,0
+3193,54706,22,16,16,16,24,24,0,0,0,0,0,0
+3195,54726,20,16,16,16,24,24,0,0,0,0,0,0
+3196,54746,19,16,16,16,24,24,0,0,0,0,0,0
+3197,54766,18,16,16,16,24,24,0,0,0,0,0,0
+3198,54786,16,16,16,16,24,24,0,0,0,0,0,0
+3199,54806,15,8,8,8,16,16,0,0,0,0,0,0
+3201,54826,14,8,8,8,16,16,0,0,0,0,0,0
+3203,54846,12,8,8,8,16,16,0,0,0,0,0,0
+3204,54866,11,8,8,8,16,16,0,0,0,0,0,0
+3205,54886,10,8,8,8,16,16,0,0,0,0,0,0
+3206,54906,8,8,8,8,16,16,0,0,0,0,0,0
+3207,54925,7,0,0,0,8,8,0,0,0,0,0,0
+3209,54945,6,0,0,0,8,8,0,0,0,0,0,0
+3211,54965,4,0,0,0,8,8,0,0,0,0,0,0
+3212,54985,3,0,0,0,8,8,0,0,0,0,0,0
+3213,55005,2,0,0,0,8,8,0,0,0,0,0,0
+3214,55025,0,0,0,0,8,8,0,0,0,0,0,0
+3215,55045,31,24,24,24,0,0,0,0,0,0,0,0
+3217,55065,30,24,24,24,0,0,0,0,0,0,0,0
+3219,55085,28,24,24,24,0,0,0,0,0,0,0,0
+3220,55105,27,24,24,24,0,0,0,0,0,0,0,0
+3221,55125,26,24,24,24,0,0,0,0,0,0,0,0
+3222,55145,24,24,24,24,0,0,0,0,0,0,0,0
+3223,55165,23,16,16,16,24,24,0,0,0,0,0,0
+3225,55185,22,16,16,16,24,24,0,0,0,0,0,0
+3227,55205,20,16,16,16,24,24,0,0,0,0,0,0
+3228,55225,19,16,16,16,24,24,0,0,0,0,0,0
+3229,55245,18,16,16,16,24,24,0,0,0,0,0,0
+3230,55265,17,16,16,16,24,24,0,0,0,0,0,0
+3231,55285,16,16,16,16,24,24,0,0,0,0,0,0
+3232,55305,14,8,8,8,16,16,0,0,0,0,0,0
+3234,55325,12,8,8,8,16,16,0,0,0,0,0,0
+3235,55345,11,8,8,8,16,16,0,0,0,0,0,0
+3236,55365,10,8,8,8,16,16,0,0,0,0,0,0
+3237,55385,8,8,8,8,16,16,0,0,0,0,0,0
+3238,55404,7,0,0,0,8,8,0,0,0,0,0,0
+3240,55424,6,0,0,0,8,8,0,0,0,0,0,0
+3242,55444,4,0,0,0,8,8,0,0,0,0,0,0
+3243,55464,3,0,0,0,8,8,0,0,0,0,0,0
+3244,55484,2,0,0,0,8,8,0,0,0,0,0,0
+3245,55504,0,0,0,0,8,8,0,0,0,0,0,0
+3246,55524,31,24,24,24,0,0,0,0,0,0,0,0
+3248,55544,30,24,24,24,0,0,0,0,0,0,0,0
+3250,55564,28,24,24,24,0,0,0,0,0,0,0,0
+3251,55584,27,24,24,24,0,0,0,0,0,0,0,0
+3252,55604,26,24,24,24,0,0,0,0,0,0,0,0
+3253,55624,24,24,24,24,0,0,0,0,0,0,0,0
+3254,55644,23,16,16,16,24,24,0,0,0,0,0,0
+3256,55664,22,16,16,16,24,24,0,0,0,0,0,0
+3258,55684,20,16,16,16,24,24,0,0,0,0,0,0
+3259,55704,19,16,16,16,24,24,0,0,0,0,0,0
+3260,55724,18,16,16,16,24,24,0,0,0,0,0,0
+3261,55744,16,16,16,16,24,24,0,0,0,0,0,0
+3262,55764,15,8,8,8,16,16,0,0,0,0,0,0
+3264,55784,14,8,8,8,16,16,0,0,0,0,0,0
+3266,55804,12,8,8,8,16,16,0,0,0,0,0,0
+3267,55824,11,8,8,8,16,16,0,0,0,0,0,0
+3268,55844,10,8,8,8,16,16,0,0,0,0,0,0
+3269,55864,8,8,8,8,16,16,0,0,0,0,0,0
+3270,55883,7,0,0,0,8,8,0,0,0,0,0,0
+3272,55903,6,0,0,0,8,8,0,0,0,0,0,0
+3274,55923,4,0,0,0,8,8,0,0,0,0,0,0
+3275,55943,4,0,0,0,8,8,0,0,0,0,0,0
+3276,55963,2,0,0,0,8,8,0,0,0,0,0,0
+3277,55983,1,0,0,0,8,8,0,0,0,0,0,0
+3278,56003,0,0,0,0,8,8,0,0,0,0,0,0
+3279,56023,30,24,24,24,0,0,0,0,0,0,0,0
+3281,56043,29,24,24,24,0,0,0,0,0,0,0,0
+3282,56063,28,24,24,24,0,0,0,0,0,0,0,0
+3283,56083,26,24,24,24,0,0,0,0,0,0,0,0
+3284,56103,25,24,24,24,0,0,0,0,0,0,0,0
+3285,56123,24,24,24,24,0,0,0,0,0,0,0,0
+3286,56143,22,16,16,16,24,24,0,0,0,0,0,0
+3288,56163,21,16,16,16,24,24,0,0,0,0,0,0
+3290,56183,20,16,16,16,24,24,0,0,0,0,0,0
+3291,56203,18,16,16,16,24,24,0,0,0,0,0,0
+3292,56223,17,16,16,16,24,24,0,0,0,0,0,0
+3293,56243,16,16,16,16,24,24,0,0,0,0,0,0
+3294,56263,15,8,8,8,16,16,0,0,0,0,0,0
+3296,56283,14,8,8,8,16,16,0,0,0,0,0,0
+3298,56303,12,8,8,8,16,16,0,0,0,0,0,0
+3299,56323,10,8,8,8,16,16,0,0,0,0,0,0
+3300,56343,10,8,8,8,16,16,0,0,0,0,0,0
+3301,56363,8,8,8,8,16,16,0,0,0,0,0,0
+3302,56382,6,0,0,0,8,8,0,0,0,0,0,0
+3304,56402,6,0,0,0,8,8,0,0,0,0,0,0
+3306,56422,4,0,0,0,8,8,0,0,0,0,0,0
+3307,56442,3,0,0,0,8,8,0,0,0,0,0,0
+3308,56462,2,0,0,0,8,8,0,0,0,0,0,0
+3309,56482,0,0,0,0,8,8,0,0,0,0,0,0
+3310,56502,31,24,24,24,0,0,0,0,0,0,0,0
+3312,56522,30,24,24,24,0,0,0,0,0,0,0,0
+3314,56542,28,24,24,24,0,0,0,0,0,0,0,0
+3315,56562,27,24,24,24,0,0,0,0,0,0,0,0
+3316,56582,26,24,24,24,0,0,0,0,0,0,0,0
+3317,56602,24,24,24,24,0,0,0,0,0,0,0,0
+3318,56622,23,16,16,16,24,24,0,0,0,0,0,0
+3320,56642,22,16,16,16,24,24,0,0,0,0,0,0
+3322,56662,21,16,16,16,24,24,0,0,0,0,0,0
+3323,56682,20,16,16,16,24,24,0,0,0,0,0,0
+3324,56702,18,16,16,16,24,24,0,0,0,0,0,0
+3325,56722,17,16,16,16,24,24,0,0,0,0,0,0
+3326,56742,16,16,16,16,24,24,0,0,0,0,0,0
+3327,56762,14,8,8,8,16,16,0,0,0,0,0,0
+3329,56782,13,8,8,8,16,16,0,0,0,0,0,0
+3330,56802,12,8,8,8,16,16,0,0,0,0,0,0
+3331,56822,10,8,8,8,16,16,0,0,0,0,0,0
+3332,56842,8,8,8,8,16,16,0,0,0,0,0,0
+3333,56861,7,0,0,0,8,8,0,0,0,0,0,0
+3335,56881,6,0,0,0,8,8,0,0,0,0,0,0
+3337,56901,4,0,0,0,8,8,0,0,0,0,0,0
+3338,56921,3,0,0,0,8,8,0,0,0,0,0,0
+3339,56941,2,0,0,0,8,8,0,0,0,0,0,0
+3340,56961,0,0,0,0,8,8,0,0,0,0,0,0
+3341,56981,31,24,24,24,0,0,0,0,0,0,0,0
+3343,57001,30,24,24,24,0,0,0,0,0,0,0,0
+3345,57021,28,24,24,24,0,0,0,0,0,0,0,0
+3346,57041,27,24,24,24,0,0,0,0,0,0,0,0
+3347,57061,26,24,24,24,0,0,0,0,0,0,0,0
+3348,57081,24,24,24,24,0,0,0,0,0,0,0,0
+3349,57101,23,16,16,16,24,24,0,0,0,0,0,0
+3351,57121,22,16,16,16,24,24,0,0,0,0,0,0
+3353,57141,20,16,16,16,24,24,0,0,0,0,0,0
+3354,57161,19,16,16,16,24,24,0,0,0,0,0,0
+3355,57181,18,16,16,16,24,24,0,0,0,0,0,0
+3356,57201,16,16,16,16,24,24,0,0,0,0,0,0
+3357,57221,15,8,8,8,16,16,0,0,0,0,0,0
+3359,57241,14,8,8,8,16,16,0,0,0,0,0,0
+3361,57261,12,8,8,8,16,16,0,0,0,0,0,0
+3362,57281,11,8,8,8,16,16,0,0,0,0,0,0
+3363,57301,10,8,8,8,16,16,0,0,0,0,0,0
+3364,57321,8,8,8,8,16,16,0,0,0,0,0,0
+3365,57340,6,0,0,0,8,8,0,0,0,0,0,0
+3367,57360,5,0,0,0,8,8,0,0,0,0,0,0
+3369,57380,4,0,0,0,8,8,0,0,0,0,0,0
+3370,57400,2,0,0,0,8,8,0,0,0,0,0,0
+3371,57420,1,0,0,0,8,8,0,0,0,0,0,0
+3372,57440,0,0,0,0,8,8,0,0,0,0,0,0
+3373,57460,30,24,24,24,0,0,0,0,0,0,0,0
+3375,57480,29,24,24,24,0,0,0,0,0,0,0,0
+3377,57500,28,24,24,24,0,0,0,0,0,0,0,0
+3378,57520,26,24,24,24,0,0,0,0,0,0,0,0
+3379,57540,25,24,24,24,0,0,0,0,0,0,0,0
+3380,57560,24,24,24,24,0,0,0,0,0,0,0,0
+3381,57580,22,16,16,16,24,24,0,0,0,0,0,0
+3383,57600,22,16,16,16,24,24,0,0,0,0,0,0
+3385,57620,20,16,16,16,24,24,0,0,0,0,0,0
+3386,57640,19,16,16,16,24,24,0,0,0,0,0,0
+3387,57660,18,16,16,16,24,24,0,0,0,0,0,0
+3388,57680,16,16,16,16,24,24,0,0,0,0,0,0
+3389,57700,15,8,8,8,16,16,0,0,0,0,0,0
+3391,57720,14,8,8,8,16,16,0,0,0,0,0,0
+3393,57740,12,8,8,8,16,16,0,0,0,0,0,0
+3394,57760,11,8,8,8,16,16,0,0,0,0,0,0
+3395,57780,10,8,8,8,16,16,0,0,0,0,0,0
+3396,57800,8,8,8,8,16,16,0,0,0,0,0,0
+3397,57819,7,0,0,0,8,8,0,0,0,0,0,0
+3399,57839,6,0,0,0,8,8,0,0,0,0,0,0
+3401,57859,4,0,0,0,8,8,0,0,0,0,0,0
+3402,57879,3,0,0,0,8,8,0,0,0,0,0,0
+3403,57899,2,0,0,0,8,8,0,0,0,0,0,0
+3404,57919,0,0,0,0,8,8,0,0,0,0,0,0
+3405,57939,31,24,24,24,0,0,0,0,0,0,0,0
+3407,57959,30,24,24,24,0,0,0,0,0,0,0,0
+3409,57979,28,24,24,24,0,0,0,0,0,0,0,0
+3410,57999,27,24,24,24,0,0,0,0,0,0,0,0
+3411,58019,26,24,24,24,0,0,0,0,0,0,0,0
+3412,58039,24,24,24,24,0,0,0,0,0,0,0,0
+3413,58059,23,16,16,16,24,24,0,0,0,0,0,0
+3415,58079,22,16,16,16,24,24,0,0,0,0,0,0
+3417,58099,20,16,16,16,24,24,0,0,0,0,0,0
+3418,58119,19,16,16,16,24,24,0,0,0,0,0,0
+3419,58139,18,16,16,16,24,24,0,0,0,0,0,0
+3420,58159,16,16,16,16,24,24,0,0,0,0,0,0
+3421,58179,14,8,8,8,16,16,0,0,0,0,0,0
+3423,58199,13,8,8,8,16,16,0,0,0,0,0,0
+3425,58219,12,8,8,8,16,16,0,0,0,0,0,0
+3426,58239,10,8,8,8,16,16,0,0,0,0,0,0
+3427,58259,9,8,8,8,16,16,0,0,0,0,0,0
+3428,58279,8,8,8,8,16,16,0,0,0,0,0,0
+3429,58298,6,0,0,0,8,8,0,0,0,0,0,0
+3431,58318,5,0,0,0,8,8,0,0,0,0,0,0
+3433,58338,4,0,0,0,8,8,0,0,0,0,0,0
+3434,58358,2,0,0,0,8,8,0,0,0,0,0,0
+3435,58378,1,0,0,0,8,8,0,0,0,0,0,0
+3436,58398,0,0,0,0,8,8,0,0,0,0,0,0
+3437,58418,30,24,24,24,0,0,0,0,0,0,0,0
+3439,58438,29,24,24,24,0,0,0,0,0,0,0,0
+3441,58458,28,24,24,24,0,0,0,0,0,0,0,0
+3442,58478,27,24,24,24,0,0,0,0,0,0,0,0
+3443,58498,25,24,24,24,0,0,0,0,0,0,0,0
+3444,58518,24,24,24,24,0,0,0,0,0,0,0,0
+3445,58538,23,16,16,16,24,24,0,0,0,0,0,0
+3447,58558,22,16,16,16,24,24,0,0,0,0,0,0
+3449,58578,20,16,16,16,24,24,0,0,0,0,0,0
+3450,58598,19,16,16,16,24,24,0,0,0,0,0,0
+3451,58618,18,16,16,16,24,24,0,0,0,0,0,0
+3452,58638,16,16,16,16,24,24,0,0,0,0,0,0
+3453,58658,15,8,8,8,16,16,0,0,0,0,0,0
+3455,58678,14,8,8,8,16,16,0,0,0,0,0,0
+3457,58698,12,8,8,8,16,16,0,0,0,0,0,0
+3458,58718,10,8,8,8,16,16,0,0,0,0,0,0
+3459,58738,9,8,8,8,16,16,0,0,0,0,0,0
+3460,58758,8,8,8,8,16,16,0,0,0,0,0,0
+3461,58777,6,0,0,0,8,8,0,0,0,0,0,0
+3463,58797,5,0,0,0,8,8,0,0,0,0,0,0
+3465,58817,4,0,0,0,8,8,0,0,0,0,0,0
+3466,58837,2,0,0,0,8,8,0,0,0,0,0,0
+3467,58857,1,0,0,0,8,8,0,0,0,0,0,0
+3468,58877,0,0,0,0,8,8,0,0,0,0,0,0
+3469,58897,30,24,24,24,0,0,0,0,0,0,0,0
+3471,58917,29,24,24,24,0,0,0,0,0,0,0,0
+3473,58937,28,24,24,24,0,0,0,0,0,0,0,0
+3474,58957,26,24,24,24,0,0,0,0,0,0,0,0
+3475,58977,25,24,24,24,0,0,0,0,0,0,0,0
+3476,58997,24,24,24,24,0,0,0,0,0,0,0,0
+3477,59017,22,16,16,16,24,24,0,0,0,0,0,0
+3479,59037,21,16,16,16,24,24,0,0,0,0,0,0
+3481,59057,20,16,16,16,24,24,0,0,0,0,0,0
+3482,59077,18,16,16,16,24,24,0,0,0,0,0,0
+3483,59097,17,16,16,16,24,24,0,0,0,0,0,0
+3484,59117,16,16,16,16,24,24,0,0,0,0,0,0
+3485,59137,14,8,8,8,16,16,0,0,0,0,0,0
+3487,59157,13,8,8,8,16,16,0,0,0,0,0,0
+3488,59177,12,8,8,8,16,16,0,0,0,0,0,0
+3489,59197,10,8,8,8,16,16,0,0,0,0,0,0
+3490,59217,9,8,8,8,16,16,0,0,0,0,0,0
+3491,59237,8,8,8,8,16,16,0,0,0,0,0,0
+3492,59256,6,0,0,0,8,8,0,0,0,0,0,0
+3494,59276,4,0,0,0,8,8,0,0,0,0,0,0
+3495,59296,3,0,0,0,8,8,0,0,0,0,0,0
+3496,59316,2,0,0,0,8,8,0,0,0,0,0,0
+3497,59336,0,0,0,0,8,8,0,0,0,0,0,0
+3498,59356,31,24,24,24,0,0,0,0,0,0,0,0
+3500,59376,30,24,24,24,0,0,0,0,0,0,0,0
+3502,59396,28,24,24,24,0,0,0,0,0,0,0,0
+3503,59416,27,24,24,24,0,0,0,0,0,0,0,0
+3504,59436,26,24,24,24,0,0,0,0,0,0,0,0
+3505,59456,24,24,24,24,0,0,0,0,0,0,0,0
+3506,59476,23,16,16,16,24,24,0,0,0,0,0,0
+3508,59496,22,16,16,16,24,24,0,0,0,0,0,0
+3510,59516,20,16,16,16,24,24,0,0,0,0,0,0
+3511,59536,19,16,16,16,24,24,0,0,0,0,0,0
+3512,59556,18,16,16,16,24,24,0,0,0,0,0,0
+3513,59576,16,16,16,16,24,24,0,0,0,0,0,0
+3514,59596,15,8,8,8,16,16,0,0,0,0,0,0
+3516,59616,14,8,8,8,16,16,0,0,0,0,0,0
+3518,59636,12,8,8,8,16,16,0,0,0,0,0,0
+3519,59656,11,8,8,8,16,16,0,0,0,0,0,0
+3520,59676,10,8,8,8,16,16,0,0,0,0,0,0
+3521,59696,8,8,8,8,16,16,0,0,0,0,0,0
+3522,59715,7,0,0,0,8,8,0,0,0,0,0,0
+3524,59735,6,0,0,0,8,8,0,0,0,0,0,0
+3526,59755,4,0,0,0,8,8,0,0,0,0,0,0
+3527,59775,2,0,0,0,8,8,0,0,0,0,0,0
+3528,59795,2,0,0,0,8,8,0,0,0,0,0,0
+3529,59815,0,0,0,0,8,8,0,0,0,0,0,0
+3530,59835,30,24,24,24,0,0,0,0,0,0,0,0
+3532,59855,30,24,24,24,0,0,0,0,0,0,0,0
+3534,59875,28,24,24,24,0,0,0,0,0,0,0,0
+3535,59895,27,24,24,24,0,0,0,0,0,0,0,0
+3536,59915,26,24,24,24,0,0,0,0,0,0,0,0
+3537,59935,24,24,24,24,0,0,0,0,0,0,0,0
+3538,59955,23,16,16,16,24,24,0,0,0,0,0,0
+3540,59975,22,16,16,16,24,24,0,0,0,0,0,0
+3542,59995,20,16,16,16,24,24,0,0,0,0,0,0
+3543,60015,19,16,16,16,24,24,0,0,0,0,0,0
+3544,60035,18,16,16,16,24,24,0,0,0,0,0,0
+3545,60055,16,16,16,16,24,24,0,0,0,0,0,0
+3546,60075,15,8,8,8,16,16,0,0,0,0,0,0
+3548,60095,14,8,8,8,16,16,0,0,0,0,0,0
+3550,60115,12,8,8,8,16,16,0,0,0,0,0,0
+3551,60135,11,8,8,8,16,16,0,0,0,0,0,0
+3552,60155,10,8,8,8,16,16,0,0,0,0,0,0
+3553,60175,8,8,8,8,16,16,0,0,0,0,0,0
+3554,60194,7,0,0,0,8,8,0,0,0,0,0,0
+3556,60214,6,0,0,0,8,8,0,0,0,0,0,0
+3558,60234,4,0,0,0,8,8,0,0,0,0,0,0
+3559,60254,3,0,0,0,8,8,0,0,0,0,0,0
+3560,60274,2,0,0,0,8,8,0,0,0,0,0,0
+3561,60294,0,0,0,0,8,8,0,0,0,0,0,0
+3562,60314,31,24,24,24,0,0,0,0,0,0,0,0
+3564,60334,30,24,24,24,0,0,0,0,0,0,0,0
+3566,60354,28,24,24,24,0,0,0,0,0,0,0,0
+3567,60374,27,24,24,24,0,0,0,0,0,0,0,0
+3568,60394,26,24,24,24,0,0,0,0,0,0,0,0
+3569,60414,24,24,24,24,0,0,0,0,0,0,0,0
+3570,60434,23,16,16,16,24,24,0,0,0,0,0,0
diff --git a/legacy/TLU_v1c/scripts/startTLU.sh b/legacy/TLU_v1c/scripts/startTLU.sh
new file mode 100755
index 00000000..ac0b41ba
--- /dev/null
+++ b/legacy/TLU_v1c/scripts/startTLU.sh
@@ -0,0 +1,25 @@
+#!/bin/bash
+
+echo "=========================="
+CURRENT_DIR=${0%/*}
+echo "CURRENT DIRECTORY: " $CURRENT_DIR
+
+echo "============"
+echo "SETTING PATHS"
+export PYTHONPATH=$CURRENT_DIR/../../../../Python_Scripts/PyChips_1_5_0_pre2A/src:$PYTHONPATH
+export PYTHONPATH=~/Python_Scripts/PyChips_1_5_0_pre2A/src:$PYTHONPATH
+export PYTHONPATH=../../packages:$PYTHONPATH
+echo "PYTHON PATH= " $PYTHONPATH
+export LD_LIBRARY_PATH=/opt/cactus/lib:$LD_LIBRARY_PATH
+echo "LD_LIBRARY_PATH= " $LD_LIBRARY_PATH
+export PATH=/usr/bin/:/opt/cactus/bin:$PATH
+echo "PATH= " $PATH
+
+cd $CURRENT_DIR
+
+echo "============"
+echo "STARTING PYTHON SCRIPT FOR TLU"
+#python $CURRENT_DIR/startTLU_v8.py $@
+
+python startTLU_v8.py $@
+#python testTLU_script.py
diff --git a/legacy/TLU_v1c/scripts/startTLU_v6.py b/legacy/TLU_v1c/scripts/startTLU_v6.py
new file mode 100644
index 00000000..b7948f20
--- /dev/null
+++ b/legacy/TLU_v1c/scripts/startTLU_v6.py
@@ -0,0 +1,232 @@
+#
+# Script to setup AIDA TLU for TPix3 telescope <--> TORCH synchronization
+#
+# David Cussans, December 2012
+#
+# Nasty hack - use both PyChips and uHAL ( for block read ... )
+
+from PyChipsUser import *
+from FmcTluI2c import *
+
+import uhal
+
+import sys
+
+import time
+
+from datetime import datetime
+
+from optparse import OptionParser
+
+# For single character non-blocking input:
+import select
+import tty
+import termios
+
+from initTLU import *
+
+def isData():
+    return select.select([sys.stdin], [], [], 0) == ([sys.stdin], [], [])
+
+now = datetime.now().strftime('%Y-%m-%dT%H_%M_%S')
+default_filename = 'tluData_' + now + '.root'
+parser = OptionParser()
+
+parser.add_option('-r','--rootFname',dest='rootFname',
+                       default=default_filename,help='Path of output file')
+parser.add_option('-o','--writeTimestamps',dest='writeTimestamps',
+                       default="True",help='Set True to write timestamps to ROOT file')
+parser.add_option('-p','--printTimestamps',dest='printTimestamps',
+                       default="True",help='Set True to print timestamps to screen (nothing printed unless also output to file) ')
+parser.add_option('-s','--listenForTelescopeShutter',dest='listenForTelescopeShutter',
+                       default=False,help='Set True to veto triggers when shutter goes high')
+parser.add_option('-d','--pulseDelay',dest='pulseDelay', type=int,
+                       default=0x00,help='Delay added to input triggers. Four 5-bit numbers packed into 32-bt word, Units of 6.125ns')
+parser.add_option('-w','--pulseStretch',dest='pulseStretch',type=int,
+                       default=0x00,help='Width added to input triggers. Four 5-bit numbers packed into 32-bt word. Units of 6.125ns')
+parser.add_option('-t','--triggerPattern',dest='triggerPattern',type=int,
+                       default=0xFFFEFFFE,help='Pattern match to generate trigger. Two 16-bit words packed into 32-bit word.')
+parser.add_option('-m','--DUTMask',dest='DUTMask',type=int,
+                       default=0x01,help='Three-bit mask selecting which DUTs are active.')
+parser.add_option('-y','--ignoreDUTBusy',dest='ignoreDUTBusy',type=int,
+                       default=0x0F,help='Three-bit mask selecting which DUTs can veto triggers by setting BUSY high. Low = can veto, high = ignore busy.')
+parser.add_option('-i','--triggerInterval',dest='triggerInterval',type=int,
+                       default=0,help='Interval between internal trigers ( in units of 6.125ns ). Set to zero to turn off internal triggers')
+parser.add_option('-v','--thresholdVoltage',dest='thresholdVoltage',type=float,
+                       default=-0.2,help='Threshold voltage for TLU inputs ( units of volts)')
+
+(options, args) = parser.parse_args(sys.argv[1:])
+
+from ROOT import TFile, TTree
+from ROOT import gROOT
+
+print "SETTING UP AIDA TLU TO SUPPLY CLOCK AND TRIGGER TO TORCH READOUT\n"
+
+# Point to board in uHAL
+manager = uhal.ConnectionManager("file://./connection.xml")
+hw = manager.getDevice("minitlu")
+device_id = hw.id()
+
+# Point to TLU in Pychips
+bAddrTab = AddressTable("./aida_mini_tlu_addr_map.txt")
+
+# Assume DIP-switch controlled address. Switches at 2
+board = ChipsBusUdp(bAddrTab,"192.168.200.32",50001)
+
+# Open Root file
+print "OPENING ROOT FILE:", options.rootFname
+f = TFile( options.rootFname, 'RECREATE' )
+
+# Create a root "tree"
+tree = TTree( 'T', 'TLU Data' )
+highWord =0
+lowWord =0
+evtNumber=0
+timeStamp=0
+evtType=0
+trigsFired=0
+bufPos = 0
+
+# Create a branch for each piece of data
+tree.Branch( 'tluHighWord'  , highWord  , "HighWord/l")
+tree.Branch( 'tluLowWord'   , lowWord   , "LowWord/l")
+tree.Branch( 'tluTimeStamp' , timeStamp , "TimeStamp/l")
+tree.Branch( 'tluBufPos'    , bufPos    , "Bufpos/s")
+tree.Branch( 'tluEvtNumber' , evtNumber , "EvtNumber/i")
+tree.Branch( 'tluEvtType'   , evtType   , "EvtType/b")
+tree.Branch( 'tluTrigFired' , trigsFired, "TrigsFired/b")
+
+# Initialize TLU registers
+initTLU( uhalDevice = hw, pychipsBoard = board, listenForTelescopeShutter = options.listenForTelescopeShutter, pulseDelay = options.pulseDelay, pulseStretch = options.pulseStretch, triggerPattern = options.triggerPattern , DUTMask = options.DUTMask, ignoreDUTBusy = options.ignoreDUTBusy , triggerInterval = options.triggerInterval, thresholdVoltage = options.thresholdVoltage )
+
+loopWait = 0.1
+oldEvtNumber = 0
+
+oldPreVetotriggerCount = board.read("PreVetoTriggersR")
+oldPostVetotriggerCount = board.read("PostVetoTriggersR")
+
+oldThresholdCounter0 =0
+oldThresholdCounter1 =0
+oldThresholdCounter2 =0
+oldThresholdCounter3 =0
+
+print "STARTING POLLING LOOP"
+
+eventFifoFillLevel = 0
+loopRunning = True
+runStarted = False
+
+oldTime = time.time()
+
+# Save old terminal settings
+oldTermSettings = termios.tcgetattr(sys.stdin)
+tty.setcbreak(sys.stdin.fileno())
+
+while loopRunning:
+
+    if isData():
+        c = sys.stdin.read(1)
+        print "\tGOT INPUT:", c
+        if c == 't':
+            loopRunning = False
+            print "\tTERMINATING LOOP"
+        elif c == 'c':
+            runStarted = True
+            print "\tSTARTING RUN"
+            startTLU( uhalDevice = hw, pychipsBoard = board,  writeTimestamps = ( options.writeTimestamps == "True" ) )
+        elif c == 'f':
+            # runStarted = True
+            print "\tSTOPPING TRIGGERS"
+            stopTLU( uhalDevice = hw, pychipsBoard = board )
+
+
+    if runStarted:
+
+        eventFifoFillLevel = hw.getNode("eventBuffer.EventFifoFillLevel").read()
+
+        preVetotriggerCount = hw.getNode("triggerLogic.PreVetoTriggersR").read()
+        postVetotriggerCount = hw.getNode("triggerLogic.PostVetoTriggersR").read()
+
+        timestampHigh = hw.getNode("Event_Formatter.CurrentTimestampHR").read()
+        timestampLow  = hw.getNode("Event_Formatter.CurrentTimestampLR").read()
+
+        thresholdCounter0 = hw.getNode("triggerInputs.ThrCount0R").read()
+        thresholdCounter1 = hw.getNode("triggerInputs.ThrCount1R").read()
+        thresholdCounter2 = hw.getNode("triggerInputs.ThrCount2R").read()
+        thresholdCounter3 = hw.getNode("triggerInputs.ThrCount3R").read()
+
+        hw.dispatch()
+
+        newTime = time.time()
+        timeDelta = newTime - oldTime
+        oldTime = newTime
+        #print "time delta = " , timeDelta
+        preVetoFreq = (preVetotriggerCount-oldPreVetotriggerCount)/timeDelta
+        postVetoFreq = (postVetotriggerCount-oldPostVetotriggerCount)/timeDelta
+        oldPreVetotriggerCount = preVetotriggerCount
+        oldPostVetotriggerCount = postVetotriggerCount
+
+        deltaCounts0 = thresholdCounter0 - oldThresholdCounter0
+        oldThresholdCounter0 = thresholdCounter0
+        deltaCounts1 = thresholdCounter1 - oldThresholdCounter1
+        oldThresholdCounter1 = thresholdCounter1
+        deltaCounts2 = thresholdCounter2 - oldThresholdCounter2
+        oldThresholdCounter2 = thresholdCounter2
+        deltaCounts3 = thresholdCounter3 - oldThresholdCounter3
+        oldThresholdCounter3 = thresholdCounter3
+
+        print "pre , post  veto triggers , pre , post frequency = " , preVetotriggerCount , postVetotriggerCount , preVetoFreq , postVetoFreq
+
+        print "CURRENT TIMESTAMP HIGH, LOW (hex) = " , hex(timestampHigh) , hex(timestampLow)
+
+        print "Input counts 0,1,2,3 = "      , thresholdCounter0 , thresholdCounter1 , thresholdCounter2 , thresholdCounter3
+        print "Input freq (Hz) 0,1,2,3 = " , deltaCounts0/timeDelta , deltaCounts1/timeDelta , deltaCounts2/timeDelta , deltaCounts3/timeDelta
+
+        nEvents = int(eventFifoFillLevel)//4  # only read out whole events ( 4 x 32-bit words )
+        wordsToRead =  nEvents*4
+
+        print "FIFO FILL LEVEL= " , eventFifoFillLevel
+
+        print "# EVENTS IN FIFO = ",nEvents
+        print "WORDS TO READ FROM FIFO  = ",wordsToRead
+
+        # get timestamp data and fifo fill in same outgoing packet.
+        timestampData = hw.getNode("eventBuffer.EventFifoData").readBlock(wordsToRead)
+
+        hw.dispatch()
+
+    #    print timestampData
+        for bufPos in range (0, nEvents ):
+            lowWord  = timestampData[bufPos*4 + 1] + 0x100000000* timestampData[ (bufPos*4) + 0] # timestamp
+
+            highWord = timestampData[bufPos*4 + 3] + 0x100000000* timestampData[ (bufPos*4) + 2] # evt number
+            evtNumber = timestampData[bufPos*4 + 3]
+
+            if evtNumber != ( oldEvtNumber + 1 ):
+                print "***WARNING *** Non sqeuential event numbers *** , evt,oldEvt = ",  evtNumber , oldEvtNumber
+
+            oldEvtNumber = evtNumber
+
+            timeStamp = lowWord & 0xFFFFFFFFFFFF
+
+            evtType = timestampData[ (bufPos*4) + 0] >> 28
+
+            trigsFired = (timestampData[ (bufPos*4) + 0] >> 16) & 0xFFF
+
+            if (options.printTimestamps == "True" ):
+                print "bufferPos, highWord , lowWord , event-number , timestamp , evtType = %x %016x %016x %08x %012x %01x %03x" % ( bufPos , highWord , lowWord, evtNumber , timeStamp , evtType , trigsFired)
+
+            # Fill root branch - see example in http://wlav.web.cern.ch/wlav/pyroot/tpytree.html : write raw data and decoded data for now.
+            tree.Fill()
+
+    time.sleep( loopWait)
+
+# Fixme - at the moment infinite loop.
+preVetotriggerCount = board.read("PreVetoTriggersR")
+postVetotriggerCount = board.read("PostVetoTriggersR")
+print "EXIT POLLING LOOP"
+print "\nTRIGGER COUNT AT THE END OF RUN [pre, post]:" , preVetotriggerCount , postVetotriggerCount
+
+termios.tcsetattr(sys.stdin, termios.TCSADRAIN, oldTermSettings)
+f.Write()
+f.Close()
diff --git a/legacy/TLU_v1c/scripts/startTLU_v8.py b/legacy/TLU_v1c/scripts/startTLU_v8.py
new file mode 100644
index 00000000..5682cbaf
--- /dev/null
+++ b/legacy/TLU_v1c/scripts/startTLU_v8.py
@@ -0,0 +1,72 @@
+# -*- coding: utf-8 -*-
+# miniTLU test script
+
+#from PyChipsUser import *
+from FmcTluI2c import *
+import uhal
+import sys
+import time
+# from ROOT import TFile, TTree
+# from ROOT import gROOT
+from datetime import datetime
+
+from TLU import TLU
+# Use to have interactive shell
+import cmd
+
+class MyPrompt(cmd.Cmd):
+
+
+    def do_startRun(self, args):
+	"""Starts the TLU run"""
+	print "COMMAND RECEIVED: STARTING TLU RUN"
+	startTLU( uhalDevice = self.hw, pychipsBoard = self.board,  writeTimestamps = ( options.writeTimestamps == "True" ) )
+	#print self.hw
+
+    def do_stopRun(self, args):
+	"""Stops the TLU run"""
+	print "COMMAND RECEIVED: STOP TLU RUN"
+	#stopTLU( uhalDevice = hw, pychipsBoard = board )
+
+    def do_quit(self, args):
+        """Quits the program."""
+        print "COMMAND RECEIVED: QUITTING SCRIPT."
+        #raise SystemExit
+	return True
+
+# # Override methods in Cmd object ##
+#     def preloop(self):
+#         """Initialization before prompting user for commands.
+#            Despite the claims in the Cmd documentaion, Cmd.preloop() is not a stub.
+#         """
+#         cmd.Cmd.preloop(self)  # # sets up command completion
+#         self._hist = []  # # No history yet
+#         self._locals = {}  # # Initialize execution namespace for user
+#         self._globals = {}
+#         print "\nINITIALIZING"
+#         now = datetime.now().strftime('%Y-%m-%dT%H_%M_%S')
+#         default_filename = './rootfiles/tluData_' + now + '.root'
+#         print "SETTING UP AIDA TLU TO SUPPLY CLOCK AND TRIGGER TO TORCH READOUT\n"
+#         self.manager = uhal.ConnectionManager("file://./connection.xml")
+#         self.hw = self.manager.getDevice("minitlu")
+#         self.device_id = self.hw.id()
+#
+#         # Point to TLU in Pychips
+#         self.bAddrTab = AddressTable("./aida_mini_tlu_addr_map.txt")
+#
+#         # Assume DIP-switch controlled address. Switches at 2
+#         self.board = ChipsBusUdp(self.bAddrTab,"192.168.200.32",50001)
+
+
+#################################################
+if __name__ == "__main__":
+    TLU= TLU("tlu", "file://./TLUconnection.xml")
+    TLU.initialize()
+
+    logdata= True
+    TLU.start(logdata)
+    time.sleep(0.2)
+    TLU.stop()
+    # prompt = MyPrompt()
+    # prompt.prompt = '>> '
+    # prompt.cmdloop("Welcome to miniTLU test console.\nType HELP for a list of commands.")
diff --git a/legacy/TLU_v1c/scripts/test.py b/legacy/TLU_v1c/scripts/test.py
new file mode 100644
index 00000000..ac682018
--- /dev/null
+++ b/legacy/TLU_v1c/scripts/test.py
@@ -0,0 +1,34 @@
+import matplotlib.pyplot as plt
+import numpy as np
+import matplotlib.mlab as mlab
+
+print "TEST.py"
+myFile= "./500ns_23ns.txt"
+
+with open(myFile) as f:
+    nsDeltas = map(float, f)
+
+P= 1000000000 #display in ns
+nsDeltas = [x * P for x in nsDeltas]
+centerRange= 25
+windowsns= 5
+minRange= centerRange-windowsns
+maxRange= centerRange+windowsns
+plt.hist(nsDeltas, 60, range=[minRange, maxRange], facecolor='blue', align='mid', alpha= 0.75)
+#plt.hist(nsDeltas, 100, normed=True, facecolor='blue', align='mid', alpha=0.75)
+#plt.xlim((min(nsDeltas), max(nsDeltas)))
+plt.xlabel('Time (ns)')
+plt.ylabel('Entries')
+plt.title('Histogram DeltaTime')
+plt.grid(True)
+
+#Superimpose Gauss
+mean = np.mean(nsDeltas)
+variance = np.var(nsDeltas)
+sigma = np.sqrt(variance)
+x = np.linspace(min(nsDeltas), max(nsDeltas), 100)
+plt.plot(x, mlab.normpdf(x, mean, sigma))
+print (mean, sigma)
+
+#Display plot
+plt.show()
diff --git a/legacy/TLU_v1c/scripts/testTLU_script.py b/legacy/TLU_v1c/scripts/testTLU_script.py
new file mode 100644
index 00000000..9d8b334b
--- /dev/null
+++ b/legacy/TLU_v1c/scripts/testTLU_script.py
@@ -0,0 +1,79 @@
+# miniTLU test script
+
+from FmcTluI2c import *
+import uhal
+import sys
+import time
+from I2CuHal import I2CCore
+from miniTLU import MiniTLU
+from datetime import datetime
+
+if __name__ == "__main__":
+    print "\tTEST TLU SCRIPT"
+    miniTLU= MiniTLU("minitlu", "file://./connection.xml")
+    #(self, target, wclk, i2cclk, name="i2c", delay=None)
+    TLU_I2C= I2CCore(miniTLU.hw, 10, 5, "i2c_master", None)
+    TLU_I2C.state()
+
+
+    #READ CONTENT OF EEPROM ON 24AA02E48 (0xFA - 0XFF)
+    mystop= 1
+    time.sleep(0.1)
+    myaddr= [0xfa]
+    TLU_I2C.write( 0x50, myaddr, mystop)
+    res=TLU_I2C.read( 0x50, 6)
+    print "Checkin EEPROM:"
+    result="\t"
+    for iaddr in res:
+        result+="%02x "%(iaddr)
+    print result
+
+    #SCAN I2C ADDRESSES
+    #WRITE PROM
+    #WRITE DAC
+
+
+    #Convert required threshold voltage to DAC code
+    #def convert_voltage_to_dac(self, desiredVoltage, Vref=1.300):
+    print("Writing DAC setting:")
+    Vref= 1.300
+    desiredVoltage= 3.3
+    channel= 0
+    i2cSlaveAddrDac = 0x1F
+    vrefOn= 0
+    Vdaq = ( desiredVoltage + Vref ) / 2
+    dacCode = 0xFFFF * Vdaq / Vref
+    dacCode= 0x391d
+    print "\tVreq:", desiredVoltage
+    print "\tDAC code:"  , dacCode
+    print "\tCH:", channel
+    print "\tIntRef:", vrefOn
+
+    #Set DAC value
+    #def set_dac(self,channel,value , vrefOn = 0 , i2cSlaveAddrDac = 0x1F):
+    if channel<0 or channel>7:
+        print "set_dac ERROR: channel",channel,"not in range 0-7 (bit mask)"
+        ##return -1
+    if dacCode<0 or dacCode>0xFFFF:
+        print "set_dac ERROR: value",dacCode ,"not in range 0-0xFFFF"
+        ##return -1
+    # AD5665R chip with A0,A1 tied to ground
+    #i2cSlaveAddrDac = 0x1F   # seven bit address, binary 00011111
+
+    # print "I2C address of DAC = " , hex(i2cSlaveAddrDac)
+    # dac = RawI2cAccess(self.i2cBusProps, i2cSlaveAddrDac)
+    # # if we want to enable internal voltage reference:
+
+    if vrefOn:
+        # enter vref-on mode:
+        print "\tTurning internal reference ON"
+        #dac.write([0x38,0x00,0x01])
+        TLU_I2C.write( i2cSlaveAddrDac, [0x38,0x00,0x01], 0)
+    else:
+        print "\tTurning internal reference OFF"
+        #dac.write([0x38,0x00,0x00])
+        TLU_I2C.write( i2cSlaveAddrDac, [0x38,0x00,0x00], 0)
+    # Now set the actual value
+    sequence=[( 0x18 + ( channel &0x7 ) ) , int(dacCode/256)&0xff , int(dacCode)&0xff]
+    print "\tWriting byte sequence:", sequence
+    TLU_I2C.write( i2cSlaveAddrDac, sequence, 0)
diff --git a/legacy/TLU_v1c/scripts/test_T0.py b/legacy/TLU_v1c/scripts/test_T0.py
new file mode 100644
index 00000000..cf81b33d
--- /dev/null
+++ b/legacy/TLU_v1c/scripts/test_T0.py
@@ -0,0 +1,92 @@
+#
+# Script to exercise AIDA mini-TLU
+#
+# David Cussans, December 2012
+# 
+# Nasty hack - use both PyChips and uHAL ( for block read ... )
+
+from PyChipsUser import *
+from FmcTluI2c import *
+
+import sys
+import time
+
+
+# Point to TLU in Pychips
+bAddrTab = AddressTable("./aida_mini_tlu_addr_map.txt")
+# Assume DIP-switch controlled address. Switches at 2 
+board = ChipsBusUdp(bAddrTab,"192.168.200.32",50001)
+
+# Check the bus for I2C devices
+boardi2c = FmcTluI2c(board)
+
+firmwareID=board.read("FirmwareId")
+
+print "Firmware (from PyChips) = " , hex(firmwareID)
+
+print "Scanning I2C bus:"
+scanResults = boardi2c.i2c_scan()
+print scanResults
+
+boardId = boardi2c.get_serial_number()
+print "FMC-TLU serial number = " , boardId
+
+resetClocks = 0
+ 
+
+
+clockStatus = board.read("LogicClocksCSR")
+print "Clock status = " , hex(clockStatus)
+
+if resetClocks:
+    print "Resetting clocks"
+    board.write("LogicRst", 1 )
+
+    clockStatus = board.read("LogicClocksCSR")
+    print "Clock status after reset = " , hex(clockStatus)
+
+
+board.write("InternalTriggerIntervalW",0)
+
+print "Enabling DUT 0 and 1"
+board.write("DUTMaskW",3)
+DUTMask = board.read("DUTMaskR")
+print "DUTMaskR = " , DUTMask
+
+print "Ignore veto on DUT 0 and 1"
+board.write("IgnoreDUTBusyW",3)
+IgnoreDUTBusy = board.read("IgnoreDUTBusyR")
+print "IgnoreDUTBusyR = " , IgnoreDUTBusy
+
+print "Turning off software trigger veto"
+board.write("TriggerVetoW",0)
+
+print "Reseting FIFO"
+board.write("EventFifoCSR",0x2)
+eventFifoFillLevel = board.read("EventFifoFillLevel")
+print "FIFO fill level after resetting FIFO = " , eventFifoFillLevel
+
+print "Enabling data recording"
+board.write("Enable_Record_Data",1)
+
+#print "Enabling handshake: No-handshake"
+#board.write("HandshakeTypeW",1)
+
+#TriggerInterval = 400000
+TriggerInterval = 0
+print "Setting internal trigger interval to " , TriggerInterval
+board.write("InternalTriggerIntervalW",TriggerInterval)  #0->Internal pulse generator disabled. Any other value will generate pulses with a frequency of n*6.25ns
+trigInterval = board.read("InternalTriggerIntervalR")
+print "Trigger interval read back as ", trigInterval
+
+print "Setting TPix_maskexternal to ignore external shutter and T0"
+board.write("TPix_maskexternal",0x0003)
+
+numLoops = 500000
+oldEvtNumber = 0
+
+for iLoop in range(0,numLoops):
+
+    board.write("TPix_T0", 0x0001)
+
+#   time.sleep( 1.0)
diff --git a/legacy/TLU_v1c/test/clock_divider_s6.v b/legacy/TLU_v1c/test/clock_divider_s6.v
new file mode 100644
index 00000000..3e29a336
--- /dev/null
+++ b/legacy/TLU_v1c/test/clock_divider_s6.v
@@ -0,0 +1,47 @@
+`timescale 1ns / 1ps
+
+module clock_divider_s6(
+    input clk,
+    output d25,
+    output d28
+    );
+
+	wire [6:0] q;
+	reg [5:0] qr = 0;
+	reg [2:0] ctr = 0;
+   //wire 	  unconnected; // horrid hack
+   
+	assign q[0] = 1'b1;
+	
+	generate
+		genvar i;
+		for(i=1; i<=5; i=i+1) begin: gen_sr
+
+			SRLC32E #(
+				.INIT(32'h80000000)
+			) sr_0 (
+				.Q(q[i]),
+				.A(5'b11111),
+				.CE(q[i-1] & ~qr[i-1]),
+				.CLK(clk),
+				.D(q[i])
+			);
+
+			always @(posedge clk)
+			begin
+				qr[i] <= q[i];
+			end
+
+		end
+	endgenerate
+
+	assign d25 = q[5];
+
+	always @(posedge clk)
+	begin
+		if(q[5] & ~qr[5]) ctr <= ctr + 1;
+	end
+	
+	assign d28 = ctr[2];
+	
+endmodule
diff --git a/legacy/TLU_v1c/test/clocks_s6_extphy.vhd b/legacy/TLU_v1c/test/clocks_s6_extphy.vhd
new file mode 100644
index 00000000..ddca849e
--- /dev/null
+++ b/legacy/TLU_v1c/test/clocks_s6_extphy.vhd
@@ -0,0 +1,110 @@
+-- clocks_s6_extphy
+--
+-- Generates a 125MHz ethernet clock and 31MHz ipbus clock from the 200MHz reference
+-- Includes reset logic for ipbus
+--
+-- Dave Newbold, April 2011
+--
+-- $Id$
+
+library ieee;
+use ieee.std_logic_1164.all;
+
+library unisim;
+use unisim.VComponents.all;
+
+entity clocks_s6_extphy is port(
+	sysclk_p, sysclk_n: in std_logic;
+	clko_125: out std_logic;
+	clko_ipb: out std_logic;
+	locked: out std_logic;
+	rsto_125: out std_logic;
+	rsto_ipb: out std_logic;
+	onehz: out std_logic
+	);
+
+end clocks_s6_extphy;
+
+architecture rtl of clocks_s6_extphy is
+
+	signal clk_ipb_i, clk_ipb_b, clk_125_i, clk_125_b, sysclk: std_logic;
+	signal d25, d25_d, dcm_locked: std_logic;
+	signal rst: std_logic := '1';
+	
+	component clock_divider_s6 port(
+		clk: in std_logic;
+		d25: out std_logic;
+		d28: out std_logic
+	);
+	end component;
+	
+begin
+
+	ibufgds0: IBUFGDS port map(
+		i => sysclk_p,
+		ib => sysclk_n,
+		o => sysclk
+	);
+
+	bufg_125: BUFG port map(
+		i => clk_125_i,
+		o => clk_125_b
+	);
+	
+	clko_125 <= clk_125_b;
+	
+	bufg_ipb: BUFG port map(
+		i => clk_ipb_i,
+		o => clk_ipb_b
+	);
+	
+	clko_ipb <= clk_ipb_b;
+
+	dcm0: DCM_CLKGEN
+		generic map(
+			CLKIN_PERIOD => 5.0,
+			CLKFX_MULTIPLY => 5,
+			CLKFX_DIVIDE => 8,
+			CLKFXDV_DIVIDE => 4
+		)
+		port map(
+			clkin => sysclk,
+			clkfx => clk_125_i,
+			clkfxdv => clk_ipb_i,
+			locked => dcm_locked,
+			rst => '0'
+		);
+		
+	clkdiv: clock_divider_s6 port map(
+		clk => sysclk,
+		d25 => d25,
+		d28 => onehz
+	);
+	
+	process(sysclk)
+	begin
+		if rising_edge(sysclk) then
+			d25_d <= d25;
+			if d25='1' and d25_d='0' then
+				rst <= not dcm_locked;
+			end if;
+		end if;
+	end process;
+	
+	locked <= dcm_locked;
+
+	process(clk_ipb_b)
+	begin
+		if rising_edge(clk_ipb_b) then
+			rsto_ipb <= rst;
+		end if;
+	end process;
+	
+	process(clk_125_b)
+	begin
+		if rising_edge(clk_125_b) then
+			rsto_125 <= rst;
+		end if;
+	end process;
+
+end rtl;
diff --git a/legacy/TLU_v1c/test/comb_generator_rtl.vhd b/legacy/TLU_v1c/test/comb_generator_rtl.vhd
new file mode 100644
index 00000000..0ad1db2c
--- /dev/null
+++ b/legacy/TLU_v1c/test/comb_generator_rtl.vhd
@@ -0,0 +1,90 @@
+--@file
+--
+--@brief Generates a series of "10" bits followed by a run of "0". The number
+-- of "10" is the same as the output bit plus one.
+--
+--@detailed i.e. output(0) has "1000......0010......" etc.
+-- output(1) has "1010.......001010......" etc. and so on.
+--
+-- David Cussans, February 2011
+-------------------------------------------------------------------------------
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.all;
+use ieee.numeric_std.all;
+
+
+entity comb_generator is
+  
+  generic (
+    g_SEQUENCE_LENGTH : positive := 4;  -- --! Length of sequence before repeat = 2^g_SEQUENCE_LENGTH
+    g_N_OUTPUT_BITS   : positive := 5);  -- --! Number of bits in output. g_N_OUTPUT_BITS<2^g_SEQUENCE_LENGTH
+
+  port (
+    clk_i   : in  std_logic;            -- --! Rising edge active
+    reset_i : in  std_logic;            -- --! Active high. Synchronous
+    data_o  : out std_logic_vector(g_N_OUTPUT_BITS-1 downto 0));  --! Output pattern
+
+  subtype t_COMB_ARRAY is std_logic_vector( 2**g_SEQUENCE_LENGTH -1 downto 0);
+  -- Function to generate a "10101010" pattern. 
+  function f_GenerateComb ( v_Length : positive ) return t_COMB_ARRAY is
+    variable v_Comb : t_COMB_ARRAY ;
+    begin
+      for v_bit in v_Comb'range loop
+        if ((v_bit mod 2) = 0) then
+          v_Comb(v_bit) := '0';
+        else
+          v_Comb(v_bit) := '1';
+        end if;
+      end loop;
+      return v_Comb;
+    end f_GenerateComb;
+    
+end entity comb_generator;
+
+architecture rtl of comb_generator is
+
+  signal s_counter : unsigned( g_SEQUENCE_LENGTH-1 downto 0) := ( others => '0');  -- --! roll over of the counter sets the sequence length
+  constant c_SEQUENCE_WIDTH : positive := 2**g_SEQUENCE_LENGTH;  -- generate a constant to make code easier to read...
+  constant c_ZEROS : std_logic_vector(c_SEQUENCE_WIDTH-1 downto 0) := (others => '0');  --! a vector of zeros to pad out sequence
+  constant c_COMB : std_logic_vector(c_SEQUENCE_WIDTH-1 downto 0)  := f_GenerateComb(1);  -- --! Pattern of 1 and 0
+  subtype t_sequence is std_logic_vector(c_SEQUENCE_WIDTH-1 downto 0);
+  type t_patternArray is array(g_N_OUTPUT_BITS-1 downto 0) of t_sequence;
+  signal s_pattern : t_patternArray := ( others => ( others => '0'));  --! Array of patterns. One for each output bit.
+  
+begin  -- architecture rtl
+
+  gen_bits: for v_bitNumber in 1 to g_N_OUTPUT_BITS generate
+
+    -- purpose: Generates the comb pattern. Different for each bit
+    -- type   : sequential
+    -- inputs : clk_i, reset_i, s_counter
+    -- outputs: data_o(v_bitNumber)
+    p_genPattern: process (clk_i, reset_i) is
+    begin  -- process p_genPattern
+      if rising_edge(clk_i) then  -- rising clock edge
+        if reset_i = '1' then             -- synchronous reset (active high)
+          s_counter <= ( others => '0');
+        else
+          
+          s_counter <= s_counter + 1 ;
+          data_o(v_bitNumber-1) <= s_pattern(v_bitNumber-1)(0);
+          
+          if ( s_counter = 0 ) then
+            s_pattern(v_bitNumber-1) <= c_COMB( (v_bitNumber*2)-1 downto 0) & c_ZEROS( c_SEQUENCE_WIDTH - (v_bitNumber*2)-1 downto 0);
+          else
+            s_pattern(v_bitNumber-1) <= '0' & s_pattern(v_bitNumber-1)(c_SEQUENCE_WIDTH-1 downto 1);
+          end if;
+        end if;
+      end if;
+    end process p_genPattern;
+    
+  end generate gen_bits;
+  
+
+
+end architecture rtl;
+
+
+
+
diff --git a/legacy/TLU_v1c/test/dtype_fd.vhdl b/legacy/TLU_v1c/test/dtype_fd.vhdl
new file mode 100644
index 00000000..2ab1f676
--- /dev/null
+++ b/legacy/TLU_v1c/test/dtype_fd.vhdl
@@ -0,0 +1,38 @@
+----- CELL dtype_fd                       -----
+--
+--@file
+--
+--@brief Aims to be the same as the Xilinx "FD" primitive -
+-- D-Type flip-flop
+--
+-- Modified from D-type example in VHDL book.
+-- See Xilinx spartan6_scm.pdf
+--
+-- David Cussans, Feb 2011
+--
+library IEEE;
+use IEEE.STD_LOGIC_1164.all;
+
+entity dtype_fd is
+
+  port(
+    Q : out std_logic;      --! Output
+    CLK   : in std_logic;   --! Clock - rising edge active
+    D   : in std_logic     --! Input
+    );
+
+end dtype_fd;
+
+architecture rtl of dtype_fd is
+begin
+
+  VITALBehavior         : process(CLK)
+  begin
+
+    if  rising_edge(CLK) then
+      Q <= D ;
+    end if;
+  end process;
+
+end rtl;
+
diff --git a/legacy/TLU_v1c/test/dtype_fdpe.vhdl b/legacy/TLU_v1c/test/dtype_fdpe.vhdl
new file mode 100644
index 00000000..d6c2e8a3
--- /dev/null
+++ b/legacy/TLU_v1c/test/dtype_fdpe.vhdl
@@ -0,0 +1,43 @@
+----- CELL dtype_fdpe                       -----
+--
+--@file
+--
+--@brief Aims to be the same as the Xilinx "FDPE" primitive -
+-- D-Type flip-flop with asynchronous set.
+--
+-- Modified from D-type example in VHDL book.
+-- See Xilinx spartan6_scm.pdf
+--
+-- David Cussans, Feb 2011
+--
+library IEEE;
+use IEEE.STD_LOGIC_1164.all;
+-- use IEEE.VITAL_Timing.all;
+
+entity dtype_fdpe is
+
+  port(
+    Q : out std_logic;      --! Output
+    CLK   : in std_logic;   --! Clock - rising edge active
+    D   : in std_logic;     --! Input
+    CE  : in std_logic;     --! Clock enable
+    PRE : in std_logic      --! Asynchronous preload
+    );
+
+end dtype_fdpe;
+
+architecture dtype_V of dtype_fdpe is
+begin
+
+  VITALBehavior         : process(CLK, PRE , CE)
+  begin
+
+    if (PRE = '1') then
+      Q <= '1';
+    elsif ( rising_edge(CLK) and CE = '1' ) then
+      Q <= D ;
+    end if;
+  end process;
+
+end dtype_V;
+
diff --git a/legacy/TLU_v1c/test/dtype_fdr.vhdl b/legacy/TLU_v1c/test/dtype_fdr.vhdl
new file mode 100644
index 00000000..cd388ae8
--- /dev/null
+++ b/legacy/TLU_v1c/test/dtype_fdr.vhdl
@@ -0,0 +1,75 @@
+
+--! @file dtype_fdr.vhdl
+--
+
+--
+library IEEE;
+
+use IEEE.STD_LOGIC_1164.all;
+
+-------------------------------------------------------------------------------
+-- --
+-- University of Bristol, High Energy Physics Group --
+-- --
+-------------------------------------------------------------------------------
+--
+-- unit name: dtype_fdr
+--
+--! @brief   Aims to be the same as the Xilinx "FD" primitive - D-Type flip-flop
+--
+--
+--! @author David.Cussans@bristol.ac.uk
+--
+--! @date 7/May/2011
+--
+--! @version 0.1
+--
+--! @details -- Modified from D-type example in VHDL book.
+--! See Xilinx spartan6_scm.pdfOutput goes high when input goes high ( asyncnronous to system clock).
+--
+--! <b>Dependencies:</b>\n
+--!
+--! <b>References:</b>\n
+--! <reference one> \n
+--! <reference two>
+--!
+--! <b>Modified by:</b>\n
+--! Author: <name>
+-------------------------------------------------------------------------------
+--! \n\n<b>Last changes:</b>\n
+--! <date> <initials> <log>\n
+--! <extended description>
+-------------------------------------------------------------------------------
+--! @todo <next thing to do> \n
+--! <another thing to do> \n
+--
+-------------------------------------------------------------------------------
+
+entity dtype_fdr is
+
+  port(
+    Q : out std_logic;      --! Output
+    CLK   : in std_logic;   --! Clock - rising edge active
+    RST : in std_logic;     --! Active high, synchronous
+    D   : in STD_LOGIC     --! Input
+    );
+
+end dtype_fdr;
+
+architecture rtl of dtype_fdr is
+begin
+
+  VITALBehavior : process(CLK)
+  begin
+
+    if  rising_edge(CLK) then
+      if (RST = '1') then
+        Q <= '0';
+      else
+        Q <= D ;
+      end if;
+    end if;
+  end process;
+
+end rtl;
+
diff --git a/legacy/TLU_v1c/test/dtype_fds.vhdl b/legacy/TLU_v1c/test/dtype_fds.vhdl
new file mode 100644
index 00000000..22593c5c
--- /dev/null
+++ b/legacy/TLU_v1c/test/dtype_fds.vhdl
@@ -0,0 +1,76 @@
+
+--! @file dtype_fds.vhdl
+--
+
+--
+library IEEE;
+
+use IEEE.STD_LOGIC_1164.all;
+
+-------------------------------------------------------------------------------
+-- --
+-- University of Bristol, High Energy Physics Group --
+-- --
+-------------------------------------------------------------------------------
+--
+-- unit name: dtype_fds
+--
+--! @brief   Aims to be the same as the Xilinx "FDS" primitive - D-Type flip-flop
+--
+--
+--! @author David.Cussans@bristol.ac.uk
+--
+--! @date 7/May/2011
+--
+--! @version 0.1
+--
+--! @details -- Modified from D-type example in VHDL book.
+--! See Xilinx spartan6_scm.pdf
+--! Output goes high when input goes high ( asyncnronous to system clock).
+--
+--! <b>Dependencies:</b>\n
+--!
+--! <b>References:</b>\n
+--! <reference one> \n
+--! <reference two>
+--!
+--! <b>Modified by:</b>\n
+--! Author: <name>
+-------------------------------------------------------------------------------
+--! \n\n<b>Last changes:</b>\n
+--! <date> <initials> <log>\n
+--! <extended description>
+-------------------------------------------------------------------------------
+--! @todo <next thing to do> \n
+--! <another thing to do> \n
+--
+-------------------------------------------------------------------------------
+
+entity dtype_fds is
+
+  port(
+    Q : out std_logic;      --! Output
+    CLK   : in std_logic;   --! Clock - rising edge active
+    SET : in std_logic;     --! Active high, synchronous
+    D   : in STD_LOGIC     --! Input
+    );
+
+end dtype_fds;
+
+architecture rtl of dtype_fds is
+begin
+
+  VITALBehavior : process(CLK)
+  begin
+
+    if  rising_edge(CLK) then
+      if (SET = '1') then
+        Q <= '1';
+      else
+        Q <= D ;
+      end if;
+    end if;
+  end process;
+
+end rtl;
+
diff --git a/legacy/TLU_v1c/test/fmc-tlu_sp601_pulse_shaper.vhdl b/legacy/TLU_v1c/test/fmc-tlu_sp601_pulse_shaper.vhdl
new file mode 100644
index 00000000..f9fe826f
--- /dev/null
+++ b/legacy/TLU_v1c/test/fmc-tlu_sp601_pulse_shaper.vhdl
@@ -0,0 +1,65 @@
+--@file
+--
+--@brief Top level for AIDA Mini-TLU in FMC format using IPBUS.
+--
+-- David Cussans, February 2011
+-------------------------------------------------------------------------------
+--
+library IEEE;
+use IEEE.STD_LOGIC_1164.all;
+
+--! Use library for instantiating Xilinx primitive components.
+library UNISIM;
+use UNISIM.vcomponents.all;
+
+entity fmc_tlu_sp601 is
+  port (
+    SYSCLK_N , SYSCLK_P : in  std_logic;   --! 200MHz crystal clock
+    D                   : in  std_logic;   --! pulse input
+    Q                   : out std_logic;   --! pulse_output
+    RST : in std_logic;                 --! active high. Syncronous
+    pulse_length          : in std_logic_vector(3 downto 0)  --!
+                                                                       --Dummy
+                                                                       --to
+                                                                       --avoid pruning
+    
+    );  
+
+end fmc_tlu_sp601;
+
+architecture rtl of fmc_tlu_sp601 is
+
+  -- constant MASK_WIDTH : integer := 16;  -- Number of registers in shift-reg
+  
+  component pulse_shaper
+    port (
+      D_a_i          : in  std_logic;         --! Input pulse
+      Q_a_o          : out std_logic;         --! output pulse
+      CLK_i        : in  std_logic;         --! Clock , rising edge active
+      RST_i        : in std_logic;        --! Active high. Synchronous
+      PULSE_LENGTH_i : in  std_logic_vector(3 downto 0));  -- ! Load with desired
+                                                        -- width of pulse.
+  end component;
+
+  signal buffered_clock : std_logic := '0';
+  
+begin  -- rtl
+
+ -- buf_sysclk : IBUFGDS
+--    port map (
+--      I  => sysclk_p,
+--      IB => sysclk_n,
+--      O  => buffered_clock);
+
+  -- for simulation bodge up by connecting buffered_clock to sysclk_p
+  buffered_clock <= sysclk_p;
+  
+  shaper : pulse_shaper
+    port map (
+      D_a_i          => D,
+      Q_a_o          => Q,
+      RST_i        => RST,
+      CLK_i        => buffered_clock,
+      pulse_length_i => pulse_length);
+  
+end rtl;
diff --git a/legacy/TLU_v1c/test/fmc_tlu_pin_test.vhd b/legacy/TLU_v1c/test/fmc_tlu_pin_test.vhd
new file mode 100644
index 00000000..3430ed9b
--- /dev/null
+++ b/legacy/TLU_v1c/test/fmc_tlu_pin_test.vhd
@@ -0,0 +1,216 @@
+--=============================================================================
+--! @file fmcTlu_pinTest_struct.vhd
+--=============================================================================
+--
+-------------------------------------------------------------------------------
+-- --
+-- University of Bristol, High Energy Physics Group.
+-- --
+------------------------------------------------------------------------------- --
+-- VHDL -- VHDL Architecture work.fmcTlu_pinTest.struct
+--
+--! @brief \n
+--! \n
+--
+--! @author David Cussans , David.Cussans@bristol.ac.uk ( phdgc.users (fortis.phy.bris.ac.uk))
+--
+--! @date 16:18:26 01/24/14
+--
+--! @version v0.1
+--
+--! @details
+--!
+--!
+--! <b>Dependencies:</b>\n
+--!
+--! <b>References:</b>\n
+--!
+--! <b>Modified by:</b>\n
+--! Author: 
+-------------------------------------------------------------------------------
+--! \n\n<b>Last changes:</b>\n
+-------------------------------------------------------------------------------
+--! @todo <next thing to do> \n
+--! <another thing to do> \n
+--
+--------------------------------------------------------------------------------
+--
+--
+LIBRARY ieee;
+USE ieee.std_logic_1164.all;
+USE ieee.numeric_std.all;
+
+ENTITY fmcTlu_pinTest IS
+   GENERIC( 
+      g_NUM_DUTS            : positive := 3;
+      g_NUM_TRIG_INPUTS     : positive := 4;
+      g_NUM_EXT_SLAVES      : positive := 11;      --! Number of slaves outside IPBus interface
+      g_EVENT_DATA_WIDTH    : positive := 64;
+      g_IPBUS_WIDTH         : positive := 32;
+      g_NUM_EDGE_INPUTS     : positive := 4;
+      g_SPILL_COUNTER_WIDTH : positive := 12
+   );
+   PORT( 
+      cfd_discr_n_i       : IN     std_logic_vector (g_NUM_TRIG_INPUTS-1 DOWNTO 0);
+      cfd_discr_p_i       : IN     std_logic_vector (g_NUM_TRIG_INPUTS-1 DOWNTO 0);
+      dip_switch_i        : IN     std_logic_vector (3 DOWNTO 0);
+      gmii_rx_clk_i       : IN     std_logic;
+      gmii_rx_dv_i        : IN     std_logic;
+      gmii_rx_er_i        : IN     std_logic;
+      gmii_rxd_i          : IN     std_logic_vector (7 DOWNTO 0);
+      sysclk_n_i          : IN     std_logic;                                        --! 200 MHz xtal clock
+      sysclk_p_i          : IN     std_logic;
+      threshold_discr_n_i : IN     std_logic_vector (g_NUM_TRIG_INPUTS-1 DOWNTO 0);
+      threshold_discr_p_i : IN     std_logic_vector (g_NUM_TRIG_INPUTS-1 DOWNTO 0);
+      reset_i				  : IN 		std_logic;
+      gmii_gtx_clk_o      : OUT    std_logic;
+      gmii_tx_en_o        : OUT    std_logic;
+      gmii_tx_er_o        : OUT    std_logic;
+      gmii_txd_o          : OUT    std_logic_vector (7 DOWNTO 0);
+      gpio_hdr            : OUT    std_logic_vector (7 DOWNTO 0);
+      leds_o              : OUT    std_logic_vector (3 DOWNTO 0);
+      phy_rstb_o          : OUT    std_logic;
+      i2c_scl_b           : INOUT  std_logic;
+      i2c_sda_b           : INOUT  std_logic;
+      -- Signal definitions for TLU in normal use:
+      --busy_n_i            : IN     std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);
+      --busy_p_i            : IN     std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);         --! Busy lines from DUTs ( active high )
+      --dut_clk_n_o         : INOUT    std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);
+      --dut_clk_p_o         : INOUT    std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);
+      --reset_or_clk_n_o    : OUT    std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);
+      --reset_or_clk_p_o    : OUT    std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);
+      --triggers_n_o        : OUT    std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);
+      --triggers_p_o        : OUT    std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);         --! Trigger lines to DUT
+      --extclk_n_b          : INOUT  std_logic;
+      --extclk_p_b          : INOUT  std_logic;                                        --! either external clock in, or a clock being driven out
+      -- Declare all as outputs for test purposes
+      busy_n_o            : OUT     std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);
+      busy_p_o            : OUT     std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);         --! Busy lines from DUTs ( active high )
+      dut_clk_n_o         : OUT    std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);
+      dut_clk_p_o         : OUT    std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);
+      reset_or_clk_n_o    : OUT    std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);
+      reset_or_clk_p_o    : OUT    std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);
+      triggers_n_o        : OUT    std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);
+      triggers_p_o        : OUT    std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);         --! Trigger lines to DUT
+		spare_p_o           : OUT    std_logic_vector (g_NUM_DUTS-1 DOWNTO 1);
+		spare_n_o           : OUT    std_logic_vector (g_NUM_DUTS-1 DOWNTO 1);
+      extclk_n_o          : OUT  std_logic;
+      extclk_p_o          : OUT  std_logic                                      --! either external clock in, or a clock being driven out
+
+   );
+
+-- Declarations
+
+END ENTITY fmcTlu_pinTest ;
+
+
+
+LIBRARY work;
+--USE work.ipbus.all;
+--USE work.emac_hostbus_decl.all;
+--
+--USE work.fmcTLU.all;
+LIBRARY unisim;
+USE unisim.vcomponents.all;
+
+
+ARCHITECTURE struct OF fmcTlu_pinTest IS
+
+   -- Architecture declarations
+	
+   constant c_NUM_OUTPUTS : positive := 6;
+   signal s_patternData : std_logic_vector( c_NUM_OUTPUTS-1 downto 0);
+   signal s_reset : std_logic := '0';
+	signal ipbus_clk : std_logic := '0';
+	
+BEGIN
+
+	cmp_clks: entity work.clocks_s6_extphy
+		port map (
+			sysclk_p        => sysclk_p_i,
+			sysclk_n        => sysclk_n_i,
+			clk_logic_xtal_o=> OPEN,
+			clko_125        => OPEN,
+			clko_ipb        => ipbus_clk,
+			locked          => leds_o(2),
+			rsto_125        => OPEN,
+			rsto_ipb        => s_reset,
+			onehz           => leds_o(3)
+		);
+	                              
+	leds_o(1 downto 0) <= ( others => '0');
+	
+	i2c_scl_b  <= 'Z';
+   i2c_sda_b  <= 'Z';
+		
+   cmp_pattern: entity work.comb_generator
+     generic map (
+       g_N_OUTPUT_BITS => c_NUM_OUTPUTS
+       )
+     port map (
+       clk_i => ipbus_clk,
+       reset_i => s_reset,
+       data_o => s_patternData
+       );
+
+   gen_duts: for nDut in 0 to g_NUM_DUTS-1 generate
+
+     OBUFDS_busy_inst : OBUFDS
+       generic map (
+         IOSTANDARD => "DEFAULT")
+       port map (
+         O =>  busy_p_o(nDut),    -- Diff_p output 
+         OB => busy_n_o(nDut),   -- Diff_n output 
+         I =>  s_patternData(0)      -- Buffer input
+         );     
+
+     OBUFDS_dut_clk_inst : OBUFDS
+       generic map (
+         IOSTANDARD => "DEFAULT")
+       port map (
+         O =>  dut_clk_p_o(nDut),    -- Diff_p output 
+         OB => dut_clk_n_o(nDut),   -- Diff_n output 
+         I =>  s_patternData(1)      -- Buffer input
+         );
+
+     OBUFDS_reset_or_clk_inst : OBUFDS
+       generic map (
+         IOSTANDARD => "DEFAULT")
+       port map (
+         O =>  reset_or_clk_p_o(nDut),    -- Diff_p output 
+         OB => reset_or_clk_n_o(nDut),   -- Diff_n output 
+         I =>  s_patternData(2)      -- Buffer input
+         );
+
+     OBUFDS_triggers_inst : OBUFDS
+       generic map (
+         IOSTANDARD => "DEFAULT")
+       port map (
+         O =>  triggers_p_o(nDut),    -- Diff_p output 
+         OB => triggers_n_o(nDut),   -- Diff_n output 
+         I =>  s_patternData(3)      -- Buffer input
+         );
+     		
+   end generate gen_duts;
+
+	gen_duts1: for nDut in 1 to g_NUM_DUTS-1 generate
+	    OBUFDS_spare_inst : OBUFDS
+			generic map (
+				IOSTANDARD => "DEFAULT")
+			port map (
+				O =>  spare_p_o(nDut),    -- Diff_p output 
+				OB => spare_n_o(nDut),   -- Diff_n output 
+				I =>  s_patternData(4)      -- Buffer input
+				);
+	end generate gen_duts1;
+	
+   OBUFDS_extclk_inst : OBUFDS
+     generic map (
+       IOSTANDARD => "DEFAULT")
+     port map (
+       O =>  extclk_p_o,    -- Diff_p output 
+       OB => extclk_n_o,   -- Diff_n output 
+       I =>  s_patternData(5)      -- Buffer input
+       );
+   
+END ARCHITECTURE struct;
diff --git a/legacy/TLU_v1c/test/fmc_tlu_sp601_tb.vhdl b/legacy/TLU_v1c/test/fmc_tlu_sp601_tb.vhdl
new file mode 100644
index 00000000..1ac494f5
--- /dev/null
+++ b/legacy/TLU_v1c/test/fmc_tlu_sp601_tb.vhdl
@@ -0,0 +1,160 @@
+--------------------------------------------------------------------------------
+-- Company: 
+-- Engineer:
+--
+-- Create Date:   16:24:12 02/25/2011
+-- Design Name:   
+-- Module Name:   /afs/phy.bris.ac.uk/cad/designs/fmc-mtlu/trunk/firmware/synthesis/ise/mTLU/fmc_tlu_sp601_tb.vhd
+-- Project Name:  mTLU
+-- Target Device:  
+-- Tool versions:  
+-- Description:   
+-- 
+-- VHDL Test Bench Created by ISE for module: fmc_tlu_sp601
+-- 
+-- Dependencies:
+-- 
+-- Revision:
+-- Revision 0.01 - File Created
+-- Additional Comments:
+--
+-- Notes: 
+-- This testbench has been automatically generated using types std_logic and
+-- std_logic_vector for the ports of the unit under test.  Xilinx recommends
+-- that these types always be used for the top-level I/O of a design in order
+-- to guarantee that the testbench will bind correctly to the post-implementation 
+-- simulation model.
+--------------------------------------------------------------------------------
+LIBRARY ieee;
+USE ieee.std_logic_1164.ALL;
+
+use IEEE.Math_real.all;
+ 
+-- Uncomment the following library declaration if using
+-- arithmetic functions with Signed or Unsigned values
+USE ieee.numeric_std.ALL;
+ 
+ENTITY fmc_tlu_sp601_tb IS
+END fmc_tlu_sp601_tb;
+ 
+ARCHITECTURE behavior OF fmc_tlu_sp601_tb IS 
+ 
+    -- Component Declaration for the Unit Under Test (UUT)
+ 
+  COMPONENT fmc_tlu_sp601
+    PORT(
+      SYSCLK_N : IN  std_logic;
+      SYSCLK_P : IN  std_logic;
+      D : IN  std_logic;
+      Q : OUT  std_logic;
+      RST: in std_logic;
+      pulse_length : IN  std_logic_vector(3 downto 0)
+      );
+  END COMPONENT;
+    
+  component pulse_shaper_scorer
+    port (
+      clk_i       : in std_logic;         -- ! system clock
+      pulse_in_a_i  : in std_logic;         -- ! input ( unstretched) pulse
+      pulse_out_a_i : in std_logic; -- ! stretched pulse (output of pulse_stretcher)
+      pulse_length_i : in std_logic_vector      --! Parameter to pulse_strecher
+      );  
+  end component;
+  
+  --min and max can be swapped quite happily
+  procedure rand_int( variable seed1, seed2 : inout positive;
+                      min, max : in integer;
+                      result : out integer) is
+    variable rand     : real;
+  begin
+    uniform(seed1, seed2, rand);
+    result := integer(real(min) + (rand * (real(max)-real(min)) ) );
+  end procedure;
+
+   --Inputs
+    signal SYSCLK_N : std_logic := '0';
+    signal SYSCLK_P : std_logic := '0';
+    signal SYSCLK : std_logic := '0';
+    signal D : std_logic := '0';
+  signal RST : std_logic := '0';
+    signal pulse_length : std_logic_vector(3 downto 0) := (others => '0');
+
+ 	--Outputs
+    signal Q : std_logic;
+ 
+    constant sysclk_period : time := 10.0 ns;
+ 
+    constant averagePulseWidth : real := 3.0;
+    constant averagePulseLow : real := 500.0;
+	
+BEGIN
+
+  --! set pulse length to 7(?) clock cycles + internal
+--	pulse_length <= "0100" ; 
+  --! set pulse length to 5 clock cycles + internal
+	pulse_length <= "0001" ; 
+	
+	-- Instantiate the Unit Under Test (UUT)
+        uut: fmc_tlu_sp601 PORT MAP (
+          SYSCLK_N => SYSCLK_N,
+          SYSCLK_P => SYSCLK_P,
+          D => D,
+          Q => Q,
+          RST => RST,
+          pulse_length => pulse_length
+        );
+
+        --! Instantiate "scorer" process
+        --! Examine signals and check for errors
+        scorer: pulse_shaper_scorer
+          port map (
+            clk_i       => sysclk , 
+            pulse_in_a_i  => D,
+            pulse_out_a_i => Q,
+            pulse_length_i => pulse_length
+            );  
+        
+   -- Clock process definitions
+   sysclk_process :process
+   begin
+		sysclk <= '0';
+		wait for sysclk_period/2;
+		sysclk <= '1';
+		wait for sysclk_period/2;
+   end process;
+	sysclk_n <= not sysclk;
+	sysclk_p <= sysclk;
+ 
+
+   -- Stimulus process
+   stim_proc: process
+	variable seed1 , seed2 : POSITIVE;
+	variable PulseWidth , PulseLow : time ;
+	variable Rand : real;
+	
+   begin
+     D <= '0';
+     RST <= '1';
+      -- hold reset state for 100 ns.
+     wait for 100 ns;	
+     RST <= '0';
+     
+     wait for sysclk_period*10;
+
+     -- insert stimulus here 
+     for I in 1 to 50 loop
+       D<= '1';
+       -- wait for random pulse width
+       uniform(seed1, seed2, Rand);
+       PulseWidth := Rand * averagePulseWidth * sysclk_period;
+       wait for PulseWidth;
+       D<= '0';
+       -- wait for random gap between pulses
+       uniform(seed1, seed2, Rand);
+       PulseLow := Rand * averagePulseLow * sysclk_period;
+       wait for PulseLow;
+     end loop;
+     wait;
+   end process;
+
+END;
diff --git a/legacy/TLU_v1c/test/fmc_tlu_top_sp601.vhd b/legacy/TLU_v1c/test/fmc_tlu_top_sp601.vhd
new file mode 100644
index 00000000..7587013a
--- /dev/null
+++ b/legacy/TLU_v1c/test/fmc_tlu_top_sp601.vhd
@@ -0,0 +1,164 @@
+--=============================================================================
+--! @file fmc_tlu_top_sp601.vhd
+--=============================================================================
+-- @brief Top-level design for ipbus Maroc test . You must edit this file to set the IP and MAC addresses
+--
+--! @details Based on ipbus_demo_sp601 by Dave Newbold, 23/2/11
+--! This version is for xc6slx16 on Xilinx SP601 eval board
+--! Uses the s6 soft TEMAC core with GMII inteface to an external Gb PHY
+--! You will need a license for the core
+--
+--! @author David Cussans, 31/07/12
+--
+
+-- Top-level design for trigger logic unit with IPBus readout
+--
+-- This version is for xc6slx16 on Xilinx SP601 eval board
+-- Uses the s6 soft TEMAC core with GMII inteface to an external Gb PHY
+-- You will need a license for the core
+--
+-- You must edit this file to set the IP and MAC addresses
+--
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+use work.ipbus.ALL;
+use work.ipbus_bus_decl.all;
+use work.emac_hostbus_decl.all;
+
+--! Use UNISIM for Xilix primitives
+Library UNISIM;
+use UNISIM.vcomponents.all;
+
+entity fmc_tlu_top is port(
+	sysclk_p, sysclk_n : in STD_LOGIC;
+	leds: out STD_LOGIC_VECTOR(3 downto 0);
+	gmii_gtx_clk, gmii_tx_en, gmii_tx_er : out STD_LOGIC;
+	gmii_txd : out STD_LOGIC_VECTOR(7 downto 0);
+	gmii_rx_clk, gmii_rx_dv, gmii_rx_er: in STD_LOGIC;
+	gmii_rxd : in STD_LOGIC_VECTOR(7 downto 0);
+	phy_rstb : out STD_LOGIC;
+	dip_switch: in std_logic_vector(3 downto 0);
+
+       	-- Main I2C signals
+	i2c_sda_io: inout std_logic;
+	i2c_scl_io: inout std_logic;
+
+	);
+end top;
+
+architecture rtl of top is
+        
+        --
+	signal clk125, ipb_clk, locked, rst_125, rst_ipb, onehz : STD_LOGIC;
+        signal ipb_clk_n : STD_LOGIC;
+	signal mac_txd, mac_rxd : STD_LOGIC_VECTOR(7 downto 0);
+	signal mac_txdvld, mac_txack, mac_rxclko, mac_rxdvld, mac_rxgoodframe, mac_rxbadframe : STD_LOGIC;
+	signal ipb_master_out : ipb_wbus;
+	signal ipb_master_in : ipb_rbus;
+	signal mac_addr: std_logic_vector(47 downto 0);
+	signal ip_addr: std_logic_vector(31 downto 0);
+	signal hostbus_in: emac_hostbus_in;
+	signal hostbus_out: emac_hostbus_out;
+
+	-- signals for main I2C
+	signal i2c_sda_oen_s: std_logic;
+	signal i2c_scl_oen_s: std_logic;
+
+begin
+
+--	DCM clock generation for internal bus, ethernet
+
+	clocks: entity work.clocks_s6_extphy port map(
+		sysclk_p => sysclk_p,
+		sysclk_n => sysclk_n,
+		clko_125 => clk125,
+		clko_ipb => ipb_clk,
+		locked => locked,
+		rsto_125 => rst_125,
+		rsto_ipb => rst_ipb,
+		onehz => onehz
+		);
+		
+	leds <= ('0', '0', locked, onehz);
+	
+--	Ethernet MAC core and PHY interface
+-- In this version, consists of hard MAC core and GMII interface to external PHY
+-- Can be replaced by any other MAC / PHY combination
+	
+	eth: entity work.eth_s6_gmii port map(
+		clk125 => clk125,
+		rst => rst_125,
+		gmii_gtx_clk => gmii_gtx_clk,
+		gmii_tx_en => gmii_tx_en,
+		gmii_tx_er => gmii_tx_er,
+		gmii_txd => gmii_txd,
+		gmii_rx_clk => gmii_rx_clk,
+		gmii_rx_dv => gmii_rx_dv,
+		gmii_rx_er => gmii_rx_er,
+		gmii_rxd => gmii_rxd,
+		txd => mac_txd,
+		txdvld => mac_txdvld,
+		txack => mac_txack,
+		rxd => mac_rxd,
+		rxclko => mac_rxclko,
+		rxdvld => mac_rxdvld,
+		rxgoodframe => mac_rxgoodframe,
+		rxbadframe => mac_rxbadframe,
+		hostbus_in => hostbus_in,
+		hostbus_out => hostbus_out
+	);
+	
+	phy_rstb <= '1';
+	
+-- ipbus control logic
+
+	ipbus: entity work.ipbus_ctrl_udponly port map(
+		ipb_clk => ipb_clk,
+		rst_ipb => rst_ipb,
+		rst_macclk => rst_125,
+		mac_txclk => clk125,
+		mac_rxclk => mac_rxclko,
+		mac_rxd => mac_rxd,
+		mac_rxdvld => mac_rxdvld,
+		mac_rxgoodframe => mac_rxgoodframe,
+		mac_rxbadframe => mac_rxbadframe,
+		mac_txd => mac_txd,
+		mac_txdvld => mac_txdvld,
+		mac_txack => mac_txack,
+		ipb_out => ipb_master_out,
+		ipb_in => ipb_master_in,
+		mac_addr => mac_addr,
+		ip_addr => ip_addr
+	);
+		
+	mac_addr <= X"020ddba115" & dip_switch & X"0"; -- Careful here, arbitrary addresses do not always work
+	ip_addr <= X"c0a8c8" & dip_switch & X"0"; -- 192.168.200.X
+
+-- ipbus slaves live in the entity below, and can expose top-level ports
+-- The ipbus fabric is instantiated within.
+
+	slaves: entity work.slaves port map(
+		ipb_clk => ipb_clk,
+		rst => rst_ipb,
+		ipb_in => ipb_master_out,
+		ipb_out => ipb_master_in,
+-- Top level ports from here
+		hostbus_out => hostbus_in,
+		hostbus_in => hostbus_out,
+
+                gpio => open,
+		-- Main I2C signals
+		i2c_scl_i => i2c_scl_io ,
+		i2c_scl_oen_o => i2c_scl_oen_s ,
+		i2c_sda_i => i2c_sda_io,
+		i2c_sda_oen_o => i2c_sda_oen_s,
+                
+	);
+
+        -- For main I2C bus, need to put in a tri-state....
+	i2c_scl_io <= '0' when (i2c_scl_oen_s = '0') else 'Z';
+	i2c_sda_io <= '0' when (i2c_sda_oen_s = '0') else 'Z';
+
+end rtl;
+
diff --git a/legacy/TLU_v1c/test/i2c_chipscope_debug.cdc b/legacy/TLU_v1c/test/i2c_chipscope_debug.cdc
new file mode 100644
index 00000000..1ead4c37
--- /dev/null
+++ b/legacy/TLU_v1c/test/i2c_chipscope_debug.cdc
@@ -0,0 +1,41 @@
+#ChipScope Core Inserter Project File Version 3.0
+#Tue Jul 23 13:58:01 BST 2013
+Project.device.designInputFile=/projects/HEP_Instrumentation/cad/designs/fmc-mtlu/trunk/firmware/workspace/fmcTLU/fmcTLU_v1/top_extphy_cs.ngc
+Project.device.designOutputFile=/projects/HEP_Instrumentation/cad/designs/fmc-mtlu/trunk/firmware/workspace/fmcTLU/fmcTLU_v1/top_extphy_cs.ngc
+Project.device.deviceFamily=18
+Project.device.enableRPMs=true
+Project.device.outputDirectory=/projects/HEP_Instrumentation/cad/designs/fmc-mtlu/trunk/firmware/workspace/fmcTLU/fmcTLU_v1/_ngo
+Project.device.useSRL16=true
+Project.filter.dimension=7
+Project.filter<0>=*i2c*
+Project.filter<1>=*sda*
+Project.filter<2>=i2c*
+Project.filter<3>=ipbus_clk*
+Project.filter<4>=*wb_clk*
+Project.filter<5>=wb_clk*
+Project.filter<6>=
+Project.icon.boundaryScanChain=1
+Project.icon.enableExtTriggerIn=false
+Project.icon.enableExtTriggerOut=false
+Project.icon.triggerInPinName=
+Project.icon.triggerOutPinName=
+Project.unit.dimension=1
+Project.unit<0>.clockEdge=Rising
+Project.unit<0>.dataDepth=1024
+Project.unit<0>.dataEqualsTrigger=true
+Project.unit<0>.dataPortWidth=8
+Project.unit<0>.enableGaps=false
+Project.unit<0>.enableStorageQualification=false
+Project.unit<0>.enableTimestamps=false
+Project.unit<0>.timestampDepth=0
+Project.unit<0>.timestampWidth=0
+Project.unit<0>.triggerConditionCountWidth=0
+Project.unit<0>.triggerMatchCount<0>=1
+Project.unit<0>.triggerMatchCountWidth<0><0>=0
+Project.unit<0>.triggerMatchType<0><0>=1
+Project.unit<0>.triggerPortCount=1
+Project.unit<0>.triggerPortIsData<0>=true
+Project.unit<0>.triggerPortWidth<0>=8
+Project.unit<0>.triggerSequencerLevels=16
+Project.unit<0>.triggerSequencerType=0
+Project.unit<0>.type=ilapro
diff --git a/legacy/TLU_v1c/test/ipbus_addr_decode.vhd b/legacy/TLU_v1c/test/ipbus_addr_decode.vhd
new file mode 100644
index 00000000..6521459d
--- /dev/null
+++ b/legacy/TLU_v1c/test/ipbus_addr_decode.vhd
@@ -0,0 +1,46 @@
+-- Address decode logic for ipbus fabric
+--
+-- This file has been AUTOGENERATED from the address table - do not hand edit
+--
+-- We assume the synthesis tool is clever enough to recognise exclusive conditions
+-- in the if statement.
+--
+-- Dave Newbold, February 2011
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.all;
+use ieee.numeric_std.all;
+use work.ipbus.all;
+
+package ipbus_addr_decode is
+
+  function ipbus_addr_sel(signal addr : in std_logic_vector(31 downto 0)) return integer;
+
+end ipbus_addr_decode;
+
+package body ipbus_addr_decode is
+
+  function ipbus_addr_sel(signal addr : in std_logic_vector(31 downto 0)) return integer is
+    variable sel : integer;
+  begin
+		if    std_match(addr, "--------------------------000-00") then
+			sel := 0; -- statusReg / base 00000000 / mask 00000000
+		elsif std_match(addr, "--------------------------000-01") then
+			sel := 1; -- controlReg / base 00000001 / mask 00000000
+		elsif std_match(addr, "--------------------------000-10") then
+			sel := 2; -- pulser / base 00000002 / mask 00000000
+		elsif std_match(addr, "--------------------------001---") then
+			sel := 3; -- cbcI2C / base 00000008 / mask 00000007
+		elsif std_match(addr, "--------------------------010---") then
+			sel := 4; -- mainI2C / base 00000010 / mask 00000007
+		elsif std_match(addr, "--------------------------011---") then
+			sel := 5; -- captureBuffer / base 00000018 / mask 00000007
+		elsif std_match(addr, "--------------------------100-0-") then
+			sel := 6; -- emac_hostbus / base 00000020 / mask 00000001
+		else
+			sel := 99;
+		end if;
+		return sel;
+	end ipbus_addr_sel;
+ 
+end ipbus_addr_decode;
diff --git a/legacy/TLU_v1c/test/ipbus_ver.vhd b/legacy/TLU_v1c/test/ipbus_ver.vhd
new file mode 100644
index 00000000..81529bda
--- /dev/null
+++ b/legacy/TLU_v1c/test/ipbus_ver.vhd
@@ -0,0 +1,41 @@
+-- Version register, returns a fixed value
+--
+-- To be replaced by a more coherent versioning mechanism later
+--
+-- Dave Newbold, August 2011
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+use work.ipbus.all;
+
+entity ipbus_ver is
+	port(
+		ipbus_in: in ipb_wbus;
+		ipbus_out: out ipb_rbus
+	);
+	
+end ipbus_ver;
+
+architecture rtl of ipbus_ver is
+
+begin
+
+  ipbus_out.ipb_rdata <= X"a5cd" & X"1008"; -- Lower 16b are ipbus firmware build ID (temporary arrangement).
+  ipbus_out.ipb_ack <= ipbus_in.ipb_strobe;
+  ipbus_out.ipb_err <= '0';
+
+end rtl;
+
+-- Build log
+--
+-- build 0x1000 : 22/08/11 : Starting build ID
+-- build 0x1001 : 29/08/11 : Version for SPI testing
+-- build 0x1002 : 27/09/11 : Bug fixes, new transactor code; v1.3 candidate
+-- build 0x1003 : buggy
+-- build 0x1004 : 18/10/11 : New mini-t top level, bug fixes, 1.3 codebase
+-- build 0x1005 : 20/10/11 : ipbus address config testing in mini-t
+-- build 0x1006 : 26/10/11 : trying with jumbo frames
+-- build 0x1007 : 27/10/11 : new slaves / address map + rhino frames
+-- build 0x1008 : 31/10/11 : rhino frames + multibus demo
+
+
diff --git a/legacy/TLU_v1c/test/pulse_shaper.vhdl b/legacy/TLU_v1c/test/pulse_shaper.vhdl
new file mode 100644
index 00000000..1d363ac8
--- /dev/null
+++ b/legacy/TLU_v1c/test/pulse_shaper.vhdl
@@ -0,0 +1,200 @@
+--=============================================================================
+--! @file pulse_shaper.vhdl
+--=============================================================================
+
+--! Standard library
+Library IEEE;
+
+--! Standard logic package
+use IEEE.STD_LOGIC_1164.all;
+
+--! Xilinx library
+Library UNISIM;
+
+--! Xilinx component
+use UNISIM.vcomponents.all;
+
+-------------------------------------------------------------------------------
+-- --
+-- University of Bristol, High Energy Physics Group --
+-- --
+-------------------------------------------------------------------------------
+--
+-- unit name: pulse_shaper
+--
+--! @brief  Output goes high when input goes high ( asyncnronous to system clock).
+--! Output goes low again a controllable number of clock cycles later,
+--! synchronous with the rising edge of the clock.
+--! Gap of at least one clock cycle before output goes high again.
+--
+--! @author David.Cussans@bristol.ac.uk
+--
+--! @date 7/May/2011
+--
+--! @version 0.1
+--
+--! @details Output won't retrigger if input is still high at end of pulse.
+--! Length of pulse (in clock cycles) is pulse_length+4
+--
+--! <b>Dependencies:</b>\n
+--! dtype_fdpe
+--! dtype_fdr
+--! dtype_fds
+--!
+--! <b>References:</b>\n
+--! <reference one> \n
+--! <reference two>
+--!
+--! <b>Modified by:</b>\n
+--! Author: <name>
+-------------------------------------------------------------------------------
+--! \n\n<b>Last changes:</b>\n
+--! <date> <initials> <log>\n
+--! <extended description>
+--
+-------------------------------------------------------------------------------
+--! @todo Broaden pulse fed into set/reset flip-flop \n
+--
+-------------------------------------------------------------------------------
+
+entity pulse_shaper is
+  port (
+    D_a_i                   : in  std_logic;         --! Input pulse
+    Q_a_o                   : out std_logic;         --! output pulse
+    CLK_i                 : in  std_logic;         --! Clock , rising edge active
+    RST_i                 : in std_logic;         --! Hold high for PULSE_LENGTH+4 
+    PULSE_LENGTH_i        : in  std_logic_vector(3 downto 0) --! length of output pulse
+    );  
+
+end pulse_shaper;
+
+architecture rtl of pulse_shaper is
+
+  component dtype_fdpe
+    port(
+      Q : out std_logic;      --! Output
+      CLK   : in std_logic;   --! Clock - rising edge active
+      D   : in std_logic;     --! Input
+      CE  : in std_logic;     --! Clock enable
+      PRE : in std_logic      --! Asynchronous preload
+      );
+  end component;
+
+  
+  component dtype_fd
+    port(
+      Q : out std_logic;     --! Output
+      CLK   : in std_logic;  --! Clock - rising edge active
+      D   : in std_logic     --! Input
+      );
+  end component;
+  
+  component dtype_fds
+    port(
+      Q : out std_logic;     --! Output
+      CLK   : in std_logic;  --! Clock - rising edge active
+      SET : in std_logic;    --! Active high. Synchronous
+      D   : in std_logic     --! Input
+      );
+  end component;
+
+    component dtype_fdr
+    port(
+      Q : out std_logic;     --! Output
+      CLK   : in std_logic;  --! Clock - rising edge active
+      RST : in std_logic;    --! Active high. Synchronous
+      D   : in std_logic     --! Input
+      );
+  end component;
+
+  signal s_vetoed_pulse_a : std_logic := '0';  --! input signal after internal veto
+
+  signal s_async_pulse_a : std_logic := '0';  -- ! Output from pre-settable D-type
+  
+  signal s_srl_ce , s_srl_d , s_srl_q : std_logic := '0';  -- ! Input, output from shift reg.
+
+  signal s_Q_d1 , s_Q_d2 , s_Q_d3 : std_logic := '0';       --! Output, delayed by one clock. Used to form veto.
+
+  signal s_D_d1 , s_D_d2  : std_logic := '0';       --! Input, delayed by one clock. Used to form veto.
+  
+begin  -- rtl
+
+  --! Input to SRL16 pulses high for one cycle on rising edge. Goes high on RST
+  s_srl_d <= s_Q_d2 and (not s_Q_d3);         
+
+  --! Clock the SRL if the output is high ( or if the output of the SRL is high.... )
+  s_srl_ce <= s_Q_d2 or s_srl_q ;
+  
+  SRL16E_inst : SRL16E
+    generic map (
+      INIT => X"0000")
+    port map (
+      Q => S_SRL_Q, -- SRL data output
+      A0 => PULSE_LENGTH_i(0), -- Select[0] input
+      A1 => PULSE_LENGTH_i(1), -- Select[1] input
+      A2 => PULSE_LENGTH_i(2), -- Select[2] input
+      A3 => PULSE_LENGTH_i(3), -- Select[3] input
+      CE => S_SRL_CE, -- Clock enable input
+      CLK => CLK_i, --Clock input
+      D => S_SRL_D -- SRL data input
+      );
+
+  --! In order for a pulse to get to the PREset input, the output must be low
+  --! and the input must be low. Goes low on RST high
+  s_vetoed_pulse_a <= D_a_i and (not s_Q_d2) and (not s_D_d2);
+  
+  Q_a_o <= s_async_pulse_a;                     --! Connect output of FDPE to output.
+
+  --! Async. set, sync clear.
+  async_reg: dtype_fdpe
+    port map (
+      Q   => s_async_pulse_a,
+      D   => '0',                       --! Clock in zero when shift reg. spits out a '1'
+      CLK => CLK_i,
+      CE  => S_SRL_Q,
+      PRE => s_vetoed_pulse_a ) ;
+    
+  q_reg1 : dtype_fdr                     --! Delay the output signal
+    port map (
+      Q   => s_Q_d1,
+      D   => s_async_pulse_a,
+      RST => RST_i,
+      CLK => CLK_i
+      ) ;
+
+  --! Delay the output signal
+  q_reg2 : dtype_fds                     
+    port map (
+      Q   => s_Q_d2,
+      D   => s_Q_d1,
+      SET => RST_i, --! Take high on reset.
+      CLK => CLK_i
+      ) ;
+
+  --! Delay the output signal
+  q_reg3 : dtype_fdr                     
+    port map (
+      Q   => s_Q_d3,
+      D   => s_Q_d2,
+      RST => RST_i, --! Take low on reset
+      CLK => CLK_i
+      ) ;
+
+  d_reg1 : dtype_fd                     --! Delay the input
+    port map (
+      Q   => s_D_d1,
+      D   => D_a_i,     
+      CLK => CLK_i
+      ) ;
+
+  d_reg2 : dtype_fds                     --! Delay the input
+    port map (
+      Q   => s_D_d2,
+      D   => s_D_d1,
+      SET => RST_i,
+      CLK => CLK_i
+      ) ;
+
+
+  
+end rtl;
diff --git a/legacy/TLU_v1c/test/pulse_shaper_async_dtypes.vhdl b/legacy/TLU_v1c/test/pulse_shaper_async_dtypes.vhdl
new file mode 100644
index 00000000..6ba14ad3
--- /dev/null
+++ b/legacy/TLU_v1c/test/pulse_shaper_async_dtypes.vhdl
@@ -0,0 +1,92 @@
+----- CELL pulse_shaper                       -----
+--
+--@file
+--
+--@brief Output goes high when input goes high ( asyncnronous to system clock).
+--! Output goes low again a controllable number of clock cycles later,
+--! synchronous with the rising edge of the clock.
+--! Gap of at least one clock cycle before output goes high again.
+--! Pile-up will result in timing errors ( veto-cleared sync. with clock )
+--
+--! Output won't retrigger if input is still high at end of pulse.
+--
+--! Fill top bits of PULSE_MASK
+--! For example for a pulse width of 4.X clock cycles load '1111000000000000'
+--
+-- David Cussans, Feb 2011
+--
+library IEEE;
+use IEEE.STD_LOGIC_1164.all;
+
+entity pulse_shaper_async_dtypes is
+  generic (
+    MASK_WIDTH : integer := 16);  --! Width of shift register and hence maximum width of pulse
+  port (
+    D          : in  std_logic;         --! Input pulse
+    Q          : out std_logic;         --! output pulse
+    CLK        : in  std_logic;         --! Clock , rising edge active
+    PULSE_MASK : in  std_logic_vector(MASK_WIDTH-1 downto 0));  -- ! preload for shift-register. Fill with number of '1's that the ouput pulse should be
+
+end pulse_shaper_async_dtypes;
+
+architecture rtl of pulse_shaper_async_dtypes is
+
+  component dtype_fdpe
+    port(
+      Q : out std_logic;      --! Output
+      CLK   : in std_logic;   --! Clock - rising edge active
+      D   : in std_logic;     --! Input
+      CE  : in std_logic;     --! Clock enable
+      PRE : in std_logic      --! Asynchronous preload
+      );
+  end component;
+  
+  signal shift_reg : std_logic_vector(MASK_WIDTH downto 0) := ( others => '0' );  --! shift register holding '1's to be shifted out
+
+    signal preload : std_logic_vector(MASK_WIDTH-1 downto 0) := ( others => '0' ); --! Mask register holding '1's to be shifted out
+
+  signal vetoed_pulse : std_logic := '0';  --! input signal after internal veto
+
+  signal Q_R1 , Q_R2 , D_R1 : std_logic := '0';       --! Output, input  delayed by one clock. Used
+                                        --to form veto.
+  
+begin  -- rtl
+
+  shift_reg(0) <= '0';   --! Shift in zero at start of SReg.
+
+  --! Generate a shift register out of flip-flops.
+  --! Unfortunately SRL16 , SRL32 don't have async. load.
+  SR : for bit in 0 to MASK_WIDTH-1 generate
+    preload(bit) <=  (vetoed_pulse and pulse_mask(bit));
+    dtype : dtype_fdpe
+      port map (
+        Q   => shift_reg(bit+1),
+        D   => shift_reg(bit),
+        CLK => CLK,
+        CE  => '1',
+        PRE => preload(bit)) ;
+  end generate SR ;
+
+  Q <= shift_reg(MASK_WIDTH);           --! Take output from end of SR.
+
+  q_reg : dtype_fdpe                     --! Delay the output signal
+    port map (
+      Q   => Q_R1,
+      D   => shift_reg(MASK_WIDTH),     
+      CLK => CLK,
+      CE  => '1',
+      PRE => '0') ;
+
+  d_reg : dtype_fdpe                     --! Delay the input signal
+    port map (
+      Q   => D_R1,
+      D   => D,     
+      CLK => CLK,
+      CE  => '1',
+      PRE => '0') ;
+
+  --! Arrgh... problems with glitching if veto immediately.
+  -- put in a transparent latch or something to force some delay???
+  vetoed_pulse <= D and (not shift_reg(MASK_WIDTH) ) and (not Q_R1) and (not D_R1);
+  
+end rtl;
diff --git a/legacy/TLU_v1c/test/pulse_shaper_scorer.vhdl b/legacy/TLU_v1c/test/pulse_shaper_scorer.vhdl
new file mode 100644
index 00000000..ef7b48ac
--- /dev/null
+++ b/legacy/TLU_v1c/test/pulse_shaper_scorer.vhdl
@@ -0,0 +1,67 @@
+--=============================================================================
+--! @file pulse_stretcher_scorer.vhdl
+--=============================================================================
+
+--! Standard library
+Library IEEE;
+
+--! Standard logic package
+use IEEE.STD_LOGIC_1164.all;
+
+-------------------------------------------------------------------------------
+-- --
+-- University of Bristol, High Energy Physics Group --
+-- --
+-------------------------------------------------------------------------------
+--
+-- unit name: pulse_stretcher_scoer
+--
+--! @brief Checks that pulse_shaper is behaving correctly.
+--! Check for Output goes high when input goes high ( asyncnronous to system clock).
+--! Output goes low again a controllable number of clock cycles later,
+--! synchronous with the rising edge of the clock.
+--! Gap of at least one clock cycle before output goes high again.
+--
+--! @author David.Cussans@bristol.ac.uk
+--
+--! @date 7/May/2011
+--
+--! @version 0.1
+--
+--! @details
+--
+--
+--! <b>Dependencies:</b>\n
+--!
+--! <b>References:</b>\n
+--! <reference one> \n
+--! <reference two>
+--!
+--! <b>Modified by:</b>\n
+--! Author: <name>
+-------------------------------------------------------------------------------
+--! \n\n<b>Last changes:</b>\n
+--! <date> <initials> <log>\n
+--! <extended description>
+--
+-------------------------------------------------------------------------------
+--! @todo  \n
+--
+-------------------------------------------------------------------------------
+
+entity pulse_shaper_scorer is
+  port (
+    clk_i       : in std_logic;         -- ! system clock
+    pulse_in_a_i  : in std_logic;         -- ! input ( unstretched) pulse
+    pulse_out_a_i : in std_logic -- ! stretched pulse (output of pulse_stretcher)
+    pulse_length_i : in std_logic_vector;      --! Parameter to pulse_strecher
+    );  
+end pulse_shaper_scorer;
+
+architecture rtl of pulse_shaper_scorer is
+
+  
+begin  -- rtl
+
+  
+end rtl;
diff --git a/legacy/TLU_v1c/test/slaves.vhd b/legacy/TLU_v1c/test/slaves.vhd
new file mode 100644
index 00000000..0bb0f37c
--- /dev/null
+++ b/legacy/TLU_v1c/test/slaves.vhd
@@ -0,0 +1,199 @@
+-- The ipbus slaves live in this entity - modify according to requirements
+--
+-- Ports can be added to give ipbus slaves access to the chip top level.
+--
+-- Dave Newbold, February 2011
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+use ieee.numeric_std.all;
+use work.ipbus.ALL;
+use work.emac_hostbus_decl.all;
+
+entity slaves is port(
+	ipb_clk, rst : in STD_LOGIC;
+	ipb_in : in ipb_wbus;
+	ipb_out : out ipb_rbus;
+-- Top level ports from here
+	hostbus_out: out emac_hostbus_in;
+	hostbus_in: in emac_hostbus_out;
+
+        -- GPIO
+        gpio : out STD_LOGIC_VECTOR(3 downto 0);
+	-- Main I2C signals
+	i2c_scl_i: in std_logic;
+	i2c_scl_oen_o: out std_logic;
+	i2c_sda_i: in std_logic;
+	i2c_sda_oen_o: out std_logic;
+        -- CBC I2C signals
+	cbc_i2c_sda_enb_o: out std_logic;  --! Active low. SDA pulled low when enb is high 
+	cbc_i2c_scl_o: out std_logic;     --! I2C Clock output.
+	cbc_i2c_sda_i : in std_logic;
+	-- CBC "fast" signals
+	cbc_trg_o, ext_trg_o, cbc_reset_o: out std_logic;
+	cbc_data_i: in std_logic
+        
+	);
+
+end slaves;
+
+architecture rtl of slaves is
+
+	constant NSLV: positive := 7;
+	signal ipbw: ipb_wbus_array(NSLV-1 downto 0);
+	signal ipbr, ipbr_d: ipb_rbus_array(NSLV-1 downto 0);
+
+	signal cbc_i2c_scl_o_int: std_logic;
+        signal ctrl_reg: std_logic_vector(31 downto 0);
+        signal s_pulse_reg : std_logic_vector(31 downto 0);  -- ! pulsed control signals
+
+        signal s_cbc_reset : std_logic := '0';  -- ! Active high. Driven from cbcstuff
+
+        signal s_cap_trg : std_logic := '0';  -- ! Starts capture of incoming data into capture buffer
+
+begin
+
+  fabric: entity work.ipbus_fabric
+    generic map(NSLV => NSLV)
+    port map(
+      ipb_clk => ipb_clk,
+      rst => rst,
+      ipb_in => ipb_in,
+      ipb_out => ipb_out,
+      ipb_to_slaves => ipbw,
+      ipb_from_slaves => ipbr
+    );
+
+-- Slave 0: version register
+
+  slave0: entity work.ipbus_ver
+    port map(
+      ipbus_in => ipbw(0),
+      ipbus_out => ipbr(0));
+
+  -- Slave 1: 32b register
+  slave1: entity work.ipbus_reg
+    generic map(addr_width => 0)
+    port map(
+      clk => ipb_clk,
+      reset => rst,
+      ipbus_in => ipbw(1),
+      ipbus_out => ipbr(1),
+      q => ctrl_reg
+      );
+
+  s_cbc_reset <= ctrl_reg(16);
+  cbc_reset_o <= s_cbc_reset;
+
+  -- Slave 2: 32b pulser
+  slave2: entity work.ipbus_pulser
+    port map(
+      clk_i => ipb_clk,
+      reset_i => rst,
+      ipbus_i => ipbw(2),
+      ipbus_o => ipbr(2),
+      q_o => s_pulse_reg
+      );
+
+  -- CBC clock and trigger signals. Connected to slave-1 ( 32 bit register )
+  cbcstuff: entity work.cbc_logic
+    port map(
+      clk_i => ipb_clk,
+      cbc_trg_o => cbc_trg_o,
+      ext_trg_o => ext_trg_o,
+      cap_trg_o => s_cap_trg,
+      go_p_i => s_pulse_reg(0),
+      delay_i => unsigned(ctrl_reg(31 downto 24)),
+      trg_patt_i => ctrl_reg(22 downto 20)
+      );
+
+
+  -- Slave 3: I2C core connected to CBC
+
+  slave3: entity work.i2c_master_top
+    generic map (
+      ARST_LVL => 0
+      )
+    port map(
+      wb_clk_i => ipb_clk,
+      wb_rst_i => rst,
+      arst_i => '1', --! Active low reset.
+      wb_adr_i => ipbw(3).ipb_addr(2 downto 0),
+      wb_dat_i => ipbw(3).ipb_wdata(7 downto 0),
+      wb_dat_o => ipbr(3).ipb_rdata(7 downto 0),
+      wb_we_i => ipbw(3).ipb_write,
+      wb_stb_i => ipbw(3).ipb_strobe,
+      wb_cyc_i => '1',
+      wb_ack_o => ipbr(3).ipb_ack,
+      wb_inta_o => open,
+      scl_pad_i => cbc_i2c_scl_o_int,
+      scl_pad_o => open,
+      scl_padoen_o => cbc_i2c_scl_o_int,
+      sda_pad_i => cbc_i2c_sda_i,
+      sda_pad_o => open,
+      sda_padoen_o => cbc_i2c_sda_enb_o
+      );
+
+	
+  cbc_i2c_scl_o <= cbc_i2c_scl_o_int;
+  
+  ipbr(3).ipb_rdata(31 downto 8) <= (others => '0');
+
+
+  -- Slave 4: I2C core connected to main I2C
+  slave4: entity work.i2c_master_top
+    generic map (
+      ARST_LVL => 0
+      )
+    port map(
+      wb_clk_i => ipb_clk,
+      wb_rst_i => rst,
+      arst_i => '1', --! Active low reset.
+      wb_adr_i => ipbw(4).ipb_addr(2 downto 0),
+      wb_dat_i => ipbw(4).ipb_wdata(7 downto 0),
+      wb_dat_o => ipbr(4).ipb_rdata(7 downto 0),
+      wb_we_i => ipbw(4).ipb_write,
+      wb_stb_i => ipbw(4).ipb_strobe,
+      wb_cyc_i => '1',
+      wb_ack_o => ipbr(4).ipb_ack,
+      wb_inta_o => open,
+      scl_pad_i => i2c_scl_i,
+      scl_pad_o => open,
+      scl_padoen_o => i2c_scl_oen_o,
+      sda_pad_i => i2c_sda_i,
+      sda_pad_o => open,
+      sda_padoen_o => i2c_sda_oen_o
+      );
+  ipbr(4).ipb_rdata(31 downto 8) <= (others => '0');
+  
+  -- Slave 5: Capture register.
+  slave5 : entity work.ipbus_capture_buffer
+    generic map (
+      g_DATA_WIDTH  => 32,  --! Width of WB bus
+      g_RAM_ADDRESS_WIDTH => 3)  --! size of RAM = 2^ram_address_width
+    port map (
+      -- Wishbone signals
+      ipbus_clk_i => ipb_clk,
+      ipbus_i    => ipbw(5),
+      ipbus_o    => ipbr(5),
+      -- Data to capture.
+      reset_i => s_cbc_reset,
+      cap_clk_i => ipb_clk,
+      cap_d_i => cbc_data_i,
+      cap_go_i  => s_cap_trg,
+      cap_edge_i => ctrl_reg(8)
+      );
+
+  
+-- Slave 6: MAC host interface
+
+  slave6: entity work.ipbus_emac_hostbus
+    port map(
+      clk => ipb_clk,
+      reset => rst,
+      ipbus_in => ipbw(6),
+      ipbus_out => ipbr(6),
+      hostbus_out => hostbus_out,
+      hostbus_in => hostbus_in);
+
+end rtl;
diff --git a/legacy/TLU_v1c/test/sp601_FMC_mTLU.ucf b/legacy/TLU_v1c/test/sp601_FMC_mTLU.ucf
new file mode 100644
index 00000000..9ae9c0d9
--- /dev/null
+++ b/legacy/TLU_v1c/test/sp601_FMC_mTLU.ucf
@@ -0,0 +1,176 @@
+NET sysclk_p_i LOC = K15 | IOSTANDARD = LVDS_25 | DIFF_TERM = TRUE | TNM_NET = tnm_sysclk;
+NET sysclk_n_i LOC = K16 | IOSTANDARD = LVDS_25 | DIFF_TERM = TRUE;
+
+TIMESPEC TS_sysclk = PERIOD tnm_sysclk 200MHz;
+
+# remove for now
+#NET Reset_i LOC=P4; ## Global Reset
+
+#NET ipb_clk TNM_NET = tnm_ipb_clk;
+#NET clk125  TNM_NET = tnm_clk125;
+#TIMESPEC TS_tig_ipb_125 = FROM tnm_ipb_clk TO tnm_clk125 TIG;
+#TIMESPEC TS_tig_125_ipb = FROM tnm_clk125 TO tnm_ipb_clk TIG;
+
+# NET clocks/rst* TIG;
+NET I6/s_clk_is_xtal TIG;
+
+NET leds_o<0> LOC=E13 | IOSTANDARD=LVCMOS25;
+NET leds_o<1> LOC=C14 | IOSTANDARD=LVCMOS25;
+NET leds_o<2> LOC=C4 | IOSTANDARD=LVCMOS25;
+NET leds_o<3> LOC=A4 | IOSTANDARD=LVCMOS25;
+
+NET dip_switch_i<0> LOC=D14;
+NET dip_switch_i<1> LOC=E12;
+NET dip_switch_i<2> LOC=F12;
+NET dip_switch_i<3> LOC=V13;
+
+# Ethernet PHY
+
+TIMEGRP TG_gmii_tx=PADS("gmii_tx*");
+TIMEGRP TG_gmii_tx OFFSET = OUT AFTER sysclk_p_i REFERENCE_PIN "gmii_gtx_clk_o" RISING;
+
+NET gmii_gtx_clk_o LOC=A9 | IOSTANDARD=LVCMOS25 | SLEW=FAST;
+NET gmii_txd_o<0> LOC=F8 | IOSTANDARD=LVCMOS25;
+NET gmii_txd_o<1> LOC=G8 | IOSTANDARD=LVCMOS25;
+NET gmii_txd_o<2> LOC=A6 | IOSTANDARD=LVCMOS25;
+NET gmii_txd_o<3> LOC=B6 | IOSTANDARD=LVCMOS25;
+NET gmii_txd_o<4> LOC=E6 | IOSTANDARD=LVCMOS25;
+NET gmii_txd_o<5> LOC=F7 | IOSTANDARD=LVCMOS25;
+NET gmii_txd_o<6> LOC=A5 | IOSTANDARD=LVCMOS25;
+NET gmii_txd_o<7> LOC=C5 | IOSTANDARD=LVCMOS25;
+NET gmii_tx_en_o LOC=B8 | IOSTANDARD=LVCMOS25;
+NET gmii_tx_er_o LOC=A8 | IOSTANDARD=LVCMOS25;
+
+NET gmii_rx_clk_i LOC=L16 | IOSTANDARD=LVCMOS25 | TNM_NET= "gmii_rx_clk_i";
+TIMESPEC "TS_GMII_RX_CLK_I" = PERIOD "gmii_rx_clk_i" 125MHz;
+OFFSET = IN 2.5ns VALID 3ns BEFORE gmii_rx_clk_i;
+NET gmii_rxd_i<0> LOC=M14 | IOSTANDARD=LVCMOS25;
+NET gmii_rxd_i<1> LOC=U18 | IOSTANDARD=LVCMOS25;
+NET gmii_rxd_i<2> LOC=U17 | IOSTANDARD=LVCMOS25;
+NET gmii_rxd_i<3> LOC=T18 | IOSTANDARD=LVCMOS25;
+NET gmii_rxd_i<4> LOC=T17 | IOSTANDARD=LVCMOS25;
+NET gmii_rxd_i<5> LOC=N16 | IOSTANDARD=LVCMOS25;
+NET gmii_rxd_i<6> LOC=N15 | IOSTANDARD=LVCMOS25;
+NET gmii_rxd_i<7> LOC=P18 | IOSTANDARD=LVCMOS25;
+NET gmii_rx_dv_i LOC=N18 | IOSTANDARD=LVCMOS25;
+NET gmii_rx_er_i LOC=P17 | IOSTANDARD=LVCMOS25;
+
+NET phy_rstb_o LOC=L13 | IOSTANDARD=LVCMOS25;
+
+# Main I2C bus
+NET "I2C_SCL_B"				LOC = "P11"; ##  C30 on FMC
+NET "I2C_SDA_B"				LOC = "N10"; ##  C31 on FMC
+
+#
+# I/O to devices under test
+
+
+#NET "BUSY_P_I<0>"				LOC = "D12"; ## "FMC_LA06_P" , C10 on FMC
+#NET "BUSY_N_I<0>"				LOC = "C12"; ## "FMC_LA06_N" , C11 on FMC
+#NET "BUSY_P_I<1>"				LOC = "U11"; ## "FMC_LA28_P" , H31 on FMC
+#NET "BUSY_N_I<1>"				LOC = "V11"; ## "FMC_LA28_N" , H32 on FMC
+#NET "BUSY_P_I<2>"				LOC = "E7"; ## "FMC_LA07_P" , H13 on FMC
+#NET "BUSY_N_I<2>"				LOC = "E8"; ## "FMC_LA07_N" , H14 on FMC
+
+#NET "TRIGGERS_P_O<0>"				LOC = "D8"; ## "FMC_LA10_P" , C14 on FMC
+##NET "TRIGGERS_N_O<0>"				LOC = "C8"; ## "FMC_LA10_N" , C15 on FMC
+#NET "TRIGGERS_P_O<1>"				LOC = "U15"; ## "FMC_LA32_P" , H37 on FMC
+##NET "TRIGGERS_N_O<1>"				LOC = "V15"; ## "FMC_LA32_N" , H38 on FMC
+#NET "TRIGGERS_P_O<2>"				LOC = "G11"; ## "FMC_LA09_P" , D14 on FMC
+##NET "TRIGGERS_N_O<2>"				LOC = "F10"; ## "FMC_LA09_N" , D15 on FMC
+
+# Remove for now.
+#NET "SHUTTERS_P_O<0>"				LOC = "N7"; ## "FMC_LA20_P" , G21 on FMC
+##NET "SHUTTERS_N_O<0>"				LOC = "P8"; ## "FMC_LA20_N" , G22 on FMC
+#NET "SHUTTERS_P_O<1>"				LOC = "R10"; ## "FMC_LA18_CC_P" , C22 on FMC
+##NET "SHUTTERS_N_O<1>"				LOC = "T10"; ## "FMC_LA18_CC_N" , C23 on FMC
+#NET "SHUTTERS_P_O<2>"				LOC = "N6"; ## "FMC_LA19_P" , H22 on FMC
+##NET "SHUTTERS_N_O<2>"				LOC = "P6"; ## "FMC_LA19_N" , H23 on FMC
+
+#NET "DUT_CLK_P_I<0>"			LOC = "T6"; ## "FMC_LA31_P" , G33 on FMC , "DUT_CLK_P_I<0>
+#NET "DUT_CLK_N_I<0>"			LOC = "V6"; ## "FMC_LA31_N" , G34 on FMC , DUT_CLK_N<0>
+#NET "DUT_CLK_P_I<1>"				LOC = "U8"; ## "FMC_LA24_P" , H28 on FMC , CONT_P<1>
+#NET "DUT_CLK_N_I<1>"				LOC = "V8"; ## "FMC_LA24_N" , H29 on FMC , CONT_N<1>
+#NET "DUT_CLK_P_I<2>"				LOC = "F11"; ## "FMC_LA08_P" , G12 on FMC , CONT_P<2>
+#NET "DUT_CLK_N_I<2>"				LOC = "E11"; ## "FMC_LA08_N" , G13 on FMC , CONT_N<2>
+
+#NET "RESET_OR_CLK_P_O<0>"				LOC = "M10"; ## "FMC_LA33_P" , G36 on FMC , CONT_P<0>
+##NET "RESET_OR_CLK_N_O<0>"				LOC = "N9"; ## "FMC_LA33_N" , G37 on FMC , CONT_N<0>
+#NET "RESET_OR_CLK_P_O<1>"				LOC = "T4"; ## "FMC_LA21_P" , H25 on FMC , CLK_P<1>
+##NET "RESET_OR_CLK_N_O<1>"				LOC = "V4"; ## "FMC_LA21_N" , H26 on FMC , CLK_QN<1>
+#NET "RESET_OR_CLK_P_O<2>"				LOC = "B16"; ## "FMC_LA04_P" , H10 on FMC , CLK_P<2>
+##NET "RESET_OR_CLK_N_O<2>"				LOC = "A16"; ## "FMC_LA04_N" , H11 on FMC , CLK_N<2>
+
+
+# Trigger Inputs
+
+# Constant-fraction-discrimiator comparator outputs
+#NET "CFD_DISCR_P_I<0>"		LOC = "D9"; ## "FMC_LA00_CC_P" , G6 on FMC
+#NET "CFD_DISCR_N_I<0>"		LOC = "C9"; ## "FMC_LA00_CC_N" , G7 on FMC
+#
+#NET "CFD_DISCR_P_I<1>"		LOC = "B2"; ## "FMC_LA14_P" , C18 on FMC
+#NET "CFD_DISCR_N_I<1>"		LOC = "A2"; ## "FMC_LA14_N" , C19 on FMC
+#
+#NET "CFD_DISCR_P_I<2>"		LOC = "B14"; ## "FMC_LA05_P" , D11 on FMC
+#NET "CFD_DISCR_N_I<2>"		LOC = "A14"; ## "FMC_LA05_N" , D12 on FMC
+#
+#NET "CFD_DISCR_P_I<3>"		LOC = "B11"; ## "FMC_LA13_P" , D17 on FMC
+#NET "CFD_DISCR_N_I<3>"		LOC = "A11"; ## "FMC_LA13_N" , D18 on FMC
+
+# Threshold comparator outputs
+NET "THRESHOLD_DISCR_P_I<0>"			LOC = "D11"; ## "FMC_LA01_CC_P" , D8 on FMC
+NET "THRESHOLD_DISCR_N_I<0>"			LOC = "C11"; ## "FMC_LA01_CC_N" , D9 on FMC
+
+NET "THRESHOLD_DISCR_P_I<1>"			LOC = "C13"; ## "FMC_LA03_P" , G9  on FMC
+NET "THRESHOLD_DISCR_N_I<1>"			LOC = "A13"; ## "FMC_LA03_N" , G10 on FMC
+
+NET "THRESHOLD_DISCR_P_I<2>"			LOC = "D6"; ## "FMC_LA12_P" , G15 on FMC
+NET "THRESHOLD_DISCR_N_I<2>"			LOC = "C6"; ## "FMC_LA12_N" , G16 on FMC
+
+NET "THRESHOLD_DISCR_P_I<3>"			LOC = "C7"; ## "FMC_LA16_P" , G18 on FMC
+NET "THRESHOLD_DISCR_N_I<3>"			LOC = "A7"; ## "FMC_LA16_N" , G19 on FMC
+
+#NET "SPARE_P<2>"			LOC = "R8"; ## "FMC_LA17_CC_P" , D20 on FMC
+#NET "SPARE_N<2>"			LOC = "T8"; ## "FMC_LA17_CC_N" , D21 on FMC
+#NET "SPARE_P<1>"			LOC = "T12"; ## "FMC_LA30_P" , H34 on FMC
+#NET "SPARE_N<1>"			LOC = "V12"; ## "FMC_LA30_N" , H35 on FMC
+
+NET "EXTCLK_P_B"			LOC = "C10"; ## "FMC_CLK0_M2C_P" , H4 on FMC , "FRONT_PANEL_CLK_P"	
+NET "EXTCLK_N_B"			LOC = "A10"; ## "FMC_CLK0_M2C_N" , H5 on FMC ,  "FRONT_PANEL_CLK_N"
+#NET "HDMI_POWER_ENABLE1"		LOC = "C15"; ## "FMC_LA02_P" , H7 on FMC
+#NET "HDMI_POWER_ENABLE2"		LOC = "A15"; ## "FMC_LA02_N" , H8 on FMC
+
+# GPIO pins for debugging.
+#NET "GPIO_HDR<0>"                     LOC = "N17"; ## 1 on J13 (thru series R100 200 ohm)
+#NET "GPIO_HDR<1>"                     LOC = "M18"; ## 3 on J13 (thru series R102 200 ohm)
+#NET "GPIO_HDR<2>"                     LOC = "A3";  ## 5 on J13 (thru series R101 200 ohm)
+#NET "GPIO_HDR<3>"                     LOC = "L15"; ## 7 on J13 (thru series R103 200 ohm)
+#NET "GPIO_HDR<4>"                     LOC = "F15"; ## 2 on J13 (thru series R99 200 ohm)
+#NET "GPIO_HDR<5>"                     LOC = "B4";  ## 4 on J13 (thru series R98 200 ohm)
+#NET "GPIO_HDR<6>"                     LOC = "F13"; ## 6 on J13 (thru series R97 200 ohm)
+#NET "GPIO_HDR<7>"                     LOC = "P12"; ## 8 on J13 (thru series R96 20
+
+NET "output_0_p[0]" LOC = D8;
+NET "output_0_p[1]" LOC = U15;
+NET "output_0_p[2]" LOC = G11;
+NET "output_0_n[0]" LOC = C8;
+NET "output_0_n[1]" LOC = V15;
+NET "output_0_n[2]" LOC = F10;
+NET "output_1_p[0]" LOC = T6;
+NET "output_1_p[1]" LOC = U8;
+NET "output_1_p[2]" LOC = F11;
+NET "output_1_n[0]" LOC = V6;
+NET "output_1_n[1]" LOC = V8;
+NET "output_1_n[2]" LOC = E11;
+NET "output_2_p[0]" LOC = M10;
+NET "output_2_p[1]" LOC = T4;
+NET "output_2_p[2]" LOC = B16;
+NET "output_2_n[0]" LOC = N9;
+NET "output_2_n[1]" LOC = V4;
+NET "output_2_n[2]" LOC = A16;
+NET "output_3_p[0]" LOC = D12;
+NET "output_3_p[1]" LOC = U11;
+NET "output_3_p[2]" LOC = E7;
+NET "output_3_n[0]" LOC = C12;
+NET "output_3_n[1]" LOC = V11;
+NET "output_3_n[2]" LOC = E8;
\ No newline at end of file
diff --git a/legacy/TLU_v1c/test/sp601_FMC_mTLU_v1a.ucf b/legacy/TLU_v1c/test/sp601_FMC_mTLU_v1a.ucf
new file mode 100644
index 00000000..c605cd9d
--- /dev/null
+++ b/legacy/TLU_v1c/test/sp601_FMC_mTLU_v1a.ucf
@@ -0,0 +1,279 @@
+#
+# UCF for version 1a of updated mini-TLU
+#
+
+NET "sysclk_p_i" TNM_NET = "tnm_sysclk";
+NET "sysclk_p_i" LOC = K15;
+NET "sysclk_p_i" IOSTANDARD = LVDS_25;
+NET "sysclk_p_i" DIFF_TERM = "TRUE";
+NET "sysclk_n_i" LOC = K16;
+NET "sysclk_n_i" IOSTANDARD = LVDS_25;
+NET "sysclk_n_i" DIFF_TERM = "TRUE";
+
+TIMESPEC TS_sysclk = PERIOD "tnm_sysclk" 200 MHz;
+
+# remove for now
+#NET Reset_i LOC=P4; ## Global Reset
+
+#NET ipb_clk TNM_NET = tnm_ipb_clk;
+#NET clk125  TNM_NET = tnm_clk125;
+#TIMESPEC TS_tig_ipb_125 = FROM tnm_ipb_clk TO tnm_clk125 TIG;
+#TIMESPEC TS_tig_125_ipb = FROM tnm_clk125 TO tnm_ipb_clk TIG;
+
+# NET clocks/rst* TIG;
+NET "I6/s_clk_is_xtal" TIG;
+
+NET "leds_o[0]" LOC = E13;
+NET "leds_o[0]" IOSTANDARD = LVCMOS25;
+NET "leds_o[1]" LOC = C14;
+NET "leds_o[1]" IOSTANDARD = LVCMOS25;
+NET "leds_o[2]" LOC = C4;
+NET "leds_o[2]" IOSTANDARD = LVCMOS25;
+NET "leds_o[3]" LOC = A4;
+NET "leds_o[3]" IOSTANDARD = LVCMOS25;
+
+NET "dip_switch_i[0]" LOC = D14;
+NET "dip_switch_i[1]" LOC = E12;
+NET "dip_switch_i[2]" LOC = F12;
+NET "dip_switch_i[3]" LOC = V13;
+
+# Ethernet PHY
+
+TIMEGRP TG_gmii_tx =   PADS("gmii_tx*");
+TIMEGRP "TG_gmii_tx" OFFSET = OUT  AFTER "sysclk_p_i" REFERENCE_PIN "gmii_gtx_clk_o" RISING;
+
+NET "gmii_gtx_clk_o" LOC = A9;
+NET "gmii_gtx_clk_o" IOSTANDARD = LVCMOS25;
+NET "gmii_gtx_clk_o" SLEW = FAST;
+NET "gmii_txd_o[0]" LOC = F8;
+NET "gmii_txd_o[0]" IOSTANDARD = LVCMOS25;
+NET "gmii_txd_o[1]" LOC = G8;
+NET "gmii_txd_o[1]" IOSTANDARD = LVCMOS25;
+NET "gmii_txd_o[2]" LOC = A6;
+NET "gmii_txd_o[2]" IOSTANDARD = LVCMOS25;
+NET "gmii_txd_o[3]" LOC = B6;
+NET "gmii_txd_o[3]" IOSTANDARD = LVCMOS25;
+NET "gmii_txd_o[4]" LOC = E6;
+NET "gmii_txd_o[4]" IOSTANDARD = LVCMOS25;
+NET "gmii_txd_o[5]" LOC = F7;
+NET "gmii_txd_o[5]" IOSTANDARD = LVCMOS25;
+NET "gmii_txd_o[6]" LOC = A5;
+NET "gmii_txd_o[6]" IOSTANDARD = LVCMOS25;
+NET "gmii_txd_o[7]" LOC = C5;
+NET "gmii_txd_o[7]" IOSTANDARD = LVCMOS25;
+NET "gmii_tx_en_o" LOC = B8;
+NET "gmii_tx_en_o" IOSTANDARD = LVCMOS25;
+NET "gmii_tx_er_o" LOC = A8;
+NET "gmii_tx_er_o" IOSTANDARD = LVCMOS25;
+
+NET "gmii_rx_clk_i" TNM_NET = "gmii_rx_clk_i";
+NET "gmii_rx_clk_i" LOC = L16;
+NET "gmii_rx_clk_i" IOSTANDARD = LVCMOS25;
+TIMESPEC TS_GMII_RX_CLK_I = PERIOD "gmii_rx_clk_i" 125 MHz;
+OFFSET = IN 2 ns VALID 3 ns BEFORE "gmii_rx_clk_i";
+NET "gmii_rxd_i[0]" LOC = M14;
+NET "gmii_rxd_i[0]" IOSTANDARD = LVCMOS25;
+NET "gmii_rxd_i[1]" LOC = U18;
+NET "gmii_rxd_i[1]" IOSTANDARD = LVCMOS25;
+NET "gmii_rxd_i[2]" LOC = U17;
+NET "gmii_rxd_i[2]" IOSTANDARD = LVCMOS25;
+NET "gmii_rxd_i[3]" LOC = T18;
+NET "gmii_rxd_i[3]" IOSTANDARD = LVCMOS25;
+NET "gmii_rxd_i[4]" LOC = T17;
+NET "gmii_rxd_i[4]" IOSTANDARD = LVCMOS25;
+NET "gmii_rxd_i[5]" LOC = N16;
+NET "gmii_rxd_i[5]" IOSTANDARD = LVCMOS25;
+NET "gmii_rxd_i[6]" LOC = N15;
+NET "gmii_rxd_i[6]" IOSTANDARD = LVCMOS25;
+NET "gmii_rxd_i[7]" LOC = P18;
+NET "gmii_rxd_i[7]" IOSTANDARD = LVCMOS25;
+NET "gmii_rx_dv_i" LOC = N18;
+NET "gmii_rx_dv_i" IOSTANDARD = LVCMOS25;
+NET "gmii_rx_er_i" LOC = P17;
+NET "gmii_rx_er_i" IOSTANDARD = LVCMOS25;
+
+NET "phy_rstb_o" LOC = L13;
+NET "phy_rstb_o" IOSTANDARD = LVCMOS25;
+
+# Main I2C bus
+##  C30 on FMC
+NET "i2c_scl_b" LOC = P11;
+##  C31 on FMC
+NET "i2c_sda_b" LOC = N10;
+
+#
+# I/O to devices under test
+
+#NET "BUSY_N_I<0>"  LOC = "P7"; ##  "FMC_LA19_N"  ,  H23  on FMC
+#NET "BUSY_N_I<1>"  LOC = "A2"; ##  "FMC_LA14_N"  ,  C19  on FMC
+#NET "BUSY_N_I<2>"  LOC = "C6"; ##  "FMC_LA12_N"  ,  G16  on FMC
+##  "FMC_LA19_P"  ,  H22  on FMC
+#NET "busy_p_i[0]" LOC = N6;
+##  "FMC_LA14_P"  ,  C18  on FMC
+#NET "busy_p_i[1]" LOC = B2;
+##  "FMC_LA12_P"  ,  G15  on FMC
+#NET "busy_p_i[2]" LOC = D6;
+
+#NET "TRIGGERS_N_O<0>"  LOC = "P8"; ##  "FMC_LA20_N"  ,  G22  on FMC
+#NET "TRIGGERS_N_O<1>"  LOC = "A13"; ##  "FMC_LA03_N"  ,  G10  on FMC
+#NET "TRIGGERS_N_O<2>"  LOC = "A7"; ##  "FMC_LA16_N"  ,  G19  on FMC
+##  "FMC_LA20_P"  ,  G21  on FMC
+#NET "triggers_p_o[0]" LOC = N7;
+##  "FMC_LA03_P"  ,  G9  on FMC
+#NET "triggers_p_o[1]" LOC = C13;
+##  "FMC_LA16_P"  ,  G18  on FMC
+#NET "triggers_p_o[2]" LOC = C7;
+
+# Remove shutters ( also known as SPARE ) for now
+#NET "SPARE_N_O<1>"  LOC = "E11"; ##  "FMC_LA08_N"  ,  G13  on FMC
+#NET "SPARE_N_O<2>"  LOC = "A12"; ##  "FMC_LA11_N"  ,  H17  on FMC
+#NET "SPARE_P_O<1>"  LOC = "F11"; ##  "FMC_LA08_P"  ,  G12  on FMC
+#NET "SPARE_P_O<2>"  LOC = "B12"; ##  "FMC_LA11_P"  ,  H16  on FMC
+
+# Labelled DUT_CLK on schematic for RJ45, CLK on HDMI
+#NET "DUT_CLK_N_I<0>"  LOC = "V4"; ##  "FMC_LA21_N"  ,  H26  on FMC
+#NET "DUT_CLK_N_I<1>"  LOC = "T11"; ##  "FMC_LA27_N"  ,  C27  on FMC
+#NET "DUT_CLK_N_I<2>"  LOC = "A15"; ##  "FMC_LA02_N"  ,  H8  on FMC
+##  "FMC_LA27_P"  ,  C26  on FMC
+##  "FMC_LA02_P"  ,  H7  on FMC
+##  "FMC_LA21_P"  ,  H25  on FMC
+
+# Labelled CONT on schematic.
+#NET "RESET_OR_CLK_N_O<0>"  LOC = "T7"; ##  "FMC_LA22_N"  ,  G25  on FMC
+#NET "RESET_OR_CLK_N_O<1>"  LOC = "T10"; ##  "FMC_LA18_CC_N"  ,  C23  on FMC
+#NET "RESET_OR_CLK_N_O<2>"  LOC = "E8"; ##  "FMC_LA07_N"  ,  H14  on FMC
+##  "FMC_LA22_P"  ,  G24  on FMC
+#NET "reset_or_clk_p_o[0]" LOC = R7;
+##  "FMC_LA18_CC_P"  ,  C22  on FMC
+#NET "reset_or_clk_p_o[1]" LOC = R10;
+##  "FMC_LA07_P"  ,  H13  on FMC
+#NET "reset_or_clk_p_o[2]" LOC = E7;
+
+# Trigger Inputs
+
+# Constant-fraction-discrimiator comparator outputs
+##  "FMC_LA32_N"  ,  H38  on FMC
+NET "cfd_discr_n_i[0]" LOC = V15;
+##  "FMC_LA30_N"  ,  H35  on FMC
+NET "cfd_discr_n_i[1]" LOC = V12;
+##  "FMC_LA28_N"  ,  H32  on FMC
+NET "cfd_discr_n_i[2]" LOC = V11;
+##  "FMC_LA24_N"  ,  H29  on FMC
+NET "cfd_discr_n_i[3]" LOC = V8;
+##  "FMC_LA32_P"  ,  H37  on FMC
+NET "cfd_discr_p_i[0]" LOC = U15;
+##  "FMC_LA30_P"  ,  H34  on FMC
+NET "cfd_discr_p_i[1]" LOC = T12;
+##  "FMC_LA28_P"  ,  H31  on FMC
+NET "cfd_discr_p_i[2]" LOC = U11;
+##  "FMC_LA24_P"  ,  H28  on FMC
+NET "cfd_discr_p_i[3]" LOC = U8;
+
+# Threshold comparator outputs
+##  "FMC_LA33_N"  ,  G37  on FMC
+NET "threshold_discr_n_i[0]" LOC = N9;
+##  "FMC_LA31_N"  ,  G34  on FMC
+NET "threshold_discr_n_i[1]" LOC = V6;
+##  "FMC_LA29_N"  ,  G31  on FMC
+NET "threshold_discr_n_i[2]" LOC = N8;
+##  "FMC_LA25_N"  ,  G28  on FMC
+NET "threshold_discr_n_i[3]" LOC = N11;
+##  "FMC_LA33_P"  ,  G36  on FMC
+NET "threshold_discr_p_i[0]" LOC = M10;
+##  "FMC_LA31_P"  ,  G33  on FMC
+NET "threshold_discr_p_i[1]" LOC = T6;
+##  "FMC_LA29_P"  ,  G30  on FMC
+NET "threshold_discr_p_i[2]" LOC = M8;
+##  "FMC_LA25_P"  ,  G27  on FMC
+NET "threshold_discr_p_i[3]" LOC = M11;
+
+############
+# External clock pins
+## "FMC_CLK0_M2C_P" , H4 on FMC , "FRONT_PANEL_CLK_P"	
+NET "extclk_p_b" LOC = C10;
+## "FMC_CLK0_M2C_N" , H5 on FMC ,  "FRONT_PANEL_CLK_N"
+NET "extclk_n_b" LOC = A10;
+
+
+#NET "HDMI_POWER_ENABLE1"  LOC = "B16"; ##  "FMC_LA04_P"  ,  H10  on FMC
+#NET "HDMI_POWER_ENABLE2"  LOC = "F9"; ##  "FMC_LA15_N"  ,  H20  on FMC
+
+# GPIO pins for debugging.
+## 1 on J13 (thru series R100 200 ohm)
+#NET "gpio_hdr[0]" LOC = N17;
+## 3 on J13 (thru series R102 200 ohm)
+#NET "gpio_hdr[1]" LOC = M18;
+## 5 on J13 (thru series R101 200 ohm)
+#NET "gpio_hdr[2]" LOC = A3;
+## 7 on J13 (thru series R103 200 ohm)
+#NET "gpio_hdr[3]" LOC = L15;
+## 2 on J13 (thru series R99 200 ohm)
+#NET "gpio_hdr[4]" LOC = F15;
+## 4 on J13 (thru series R98 200 ohm)
+#NET "gpio_hdr[5]" LOC = B4;
+## 6 on J13 (thru series R97 200 ohm)
+#NET "gpio_hdr[6]" LOC = F13;
+## 8 on J13 (thru series R96 20
+#NET "gpio_hdr[7]" LOC = P12;
+
+
+#NET "busy_p_i[2]" PULLDOWN;
+#NET "busy_p_i[1]" PULLDOWN;
+#NET "busy_p_i[0]" PULLDOWN;
+
+# PlanAhead Generated miscellaneous constraints 
+
+NET "I4/ipbus/udp_if/clock_crossing_if/enable_buf[1]" KEEP = "TRUE";
+NET "I4/ipbus/udp_if/clock_crossing_if/rarp_buf[1]" KEEP = "TRUE";
+NET "I4/ipbus/udp_if/clock_crossing_if/we_buf[1]" KEEP = "TRUE";
+NET "I4/ipbus/udp_if/clock_crossing_if/rst_ipb_buf[1]" KEEP = "TRUE";
+NET "I4/ipbus/udp_if/clock_crossing_if/rst_ipb_buf[0]" KEEP = "TRUE";
+NET "I4/ipbus/udp_if/clock_crossing_if/we_buf[0]" KEEP = "TRUE";
+NET "I4/ipbus/udp_if/clock_crossing_if/pkt_done_read_buf[2]" KEEP = "TRUE";
+NET "I4/ipbus/udp_if/clock_crossing_if/pkt_done_read_buf[1]" KEEP = "TRUE";
+NET "I4/ipbus/udp_if/clock_crossing_if/pkt_done_write_buf[2]" KEEP = "TRUE";
+NET "I4/ipbus/udp_if/clock_crossing_if/pkt_done_write_buf[1]" KEEP = "TRUE";
+NET "I4/ipbus/udp_if/clock_crossing_if/rarp_buf[0]" KEEP = "TRUE";
+NET "I4/ipbus/udp_if/clock_crossing_if/enable_buf[0]" KEEP = "TRUE";
+NET "I4/ipbus/udp_if/clock_crossing_if/req_send_buf[2]" KEEP = "TRUE";
+NET "I4/ipbus/udp_if/clock_crossing_if/req_send_buf[1]" KEEP = "TRUE";
+NET "I4/ipbus/udp_if/clock_crossing_if/req_send_buf[0]" KEEP = "TRUE";
+NET "I4/ipbus/udp_if/clock_crossing_if/busy_up_buf[2]" KEEP = "TRUE";
+NET "I4/ipbus/udp_if/clock_crossing_if/busy_up_buf[1]" KEEP = "TRUE";
+NET "I4/ipbus/udp_if/clock_crossing_if/busy_down_buf[2]" KEEP = "TRUE";
+NET "I4/ipbus/udp_if/clock_crossing_if/busy_down_buf[1]" KEEP = "TRUE";
+NET "I4/ipbus/udp_if/clock_crossing_if/pkt_done_write_buf[0]" KEEP = "TRUE";
+NET "I4/ipbus/udp_if/clock_crossing_if/pkt_done_read_buf[0]" KEEP = "TRUE";
+NET "I4/ipbus/udp_if/clock_crossing_if/busy_up_buf[0]" KEEP = "TRUE";
+NET "I4/ipbus/udp_if/clock_crossing_if/busy_down_buf[0]" KEEP = "TRUE";
+NET "I4/ipbus/udp_if/clock_crossing_if/rx_read_buf_buf[1]" KEEP = "TRUE";
+NET "I4/ipbus/udp_if/clock_crossing_if/rx_read_buf_buf[0]" KEEP = "TRUE";
+NET "I4/ipbus/udp_if/clock_crossing_if/tx_write_buf_buf[1]" KEEP = "TRUE";
+NET "I4/ipbus/udp_if/clock_crossing_if/tx_write_buf_buf[0]" KEEP = "TRUE";
+
+# PlanAhead Generated physical constraints 
+
+NET "output_0_p[0]" LOC = N7;
+NET "output_0_p[1]" LOC = C13;
+NET "output_0_p[2]" LOC = C7;
+NET "output_0_n[0]" LOC = P8;
+NET "output_0_n[1]" LOC = A13;
+NET "output_0_n[2]" LOC = A7;
+NET "output_1_p[0]" LOC = R11;
+NET "output_1_p[1]" LOC = C15;
+NET "output_1_p[2]" LOC = T4;
+NET "output_1_n[0]" LOC = T11;
+NET "output_1_n[1]" LOC = A15;
+NET "output_1_n[2]" LOC = V4;
+NET "output_2_p[0]" LOC = R7;
+NET "output_2_p[1]" LOC = R10;
+NET "output_2_p[2]" LOC = E7;
+NET "output_2_n[0]" LOC = T7;
+NET "output_2_n[1]" LOC = T10;
+NET "output_2_n[2]" LOC = E8;
+NET "output_3_p[0]" LOC = N6;
+NET "output_3_p[1]" LOC = B2;
+NET "output_3_p[2]" LOC = D6;
+NET "output_3_n[0]" LOC = P7;
+NET "output_3_n[1]" LOC = A2;
+NET "output_3_n[2]" LOC = C6;
diff --git a/legacy/TLU_v1c/test/sp605_FMC_mTLU.ucf b/legacy/TLU_v1c/test/sp605_FMC_mTLU.ucf
new file mode 100644
index 00000000..66bb1db8
--- /dev/null
+++ b/legacy/TLU_v1c/test/sp605_FMC_mTLU.ucf
@@ -0,0 +1,164 @@
+NET sysclk_p_i LOC = K21 | IOSTANDARD = LVDS_25 | DIFF_TERM = TRUE | TNM_NET = tnm_sysclk;
+NET sysclk_n_i LOC = K22 | IOSTANDARD = LVDS_25 | DIFF_TERM = TRUE;
+
+TIMESPEC TS_sysclk = PERIOD tnm_sysclk 200MHz;
+
+#NET Reset_i LOC=F3; ## Global Reset
+
+#NET ipb_clk TNM_NET = tnm_ipb_clk;
+#NET clk125  TNM_NET = tnm_clk125;
+#TIMESPEC TS_tig_ipb_125 = FROM tnm_ipb_clk TO tnm_clk125 TIG;
+#TIMESPEC TS_tig_125_ipb = FROM tnm_clk125 TO tnm_ipb_clk TIG;
+
+# NET clocks/rst* TIG;
+
+NET leds_o<0> LOC=D17 | IOSTANDARD=LVCMOS25;
+NET leds_o<1> LOC=AB4 | IOSTANDARD=LVCMOS25;
+NET leds_o<2> LOC=D21 | IOSTANDARD=LVCMOS25;
+NET leds_o<3> LOC=W15 | IOSTANDARD=LVCMOS25;
+
+NET dip_switch_i<0> LOC=C18;
+NET dip_switch_i<1> LOC=Y6;
+NET dip_switch_i<2> LOC=W6;
+NET dip_switch_i<3> LOC=E4;
+
+# Ethernet PHY
+
+TIMEGRP TG_gmii_tx=PADS("gmii_tx*");
+TIMEGRP TG_gmii_tx OFFSET = OUT AFTER sysclk_p_i REFERENCE_PIN "gmii_gtx_clk_o" RISING;
+
+NET gmii_gtx_clk_o LOC=AB7 |IOSTANDARD=LVCMOS25 | SLEW=FAST;
+NET gmii_txd_o<0> LOC=U10 |IOSTANDARD=LVCMOS25;
+NET gmii_txd_o<1> LOC=T10 |IOSTANDARD=LVCMOS25;
+NET gmii_txd_o<2> LOC=AB8 |IOSTANDARD=LVCMOS25;
+NET gmii_txd_o<3> LOC=AA8 |IOSTANDARD=LVCMOS25;
+NET gmii_txd_o<4> LOC=AB9 |IOSTANDARD=LVCMOS25;
+NET gmii_txd_o<5> LOC=Y9  |IOSTANDARD=LVCMOS25;
+NET gmii_txd_o<6> LOC=Y12 |IOSTANDARD=LVCMOS25;
+NET gmii_txd_o<7> LOC=W12 |IOSTANDARD=LVCMOS25;
+NET gmii_tx_en_o LOC=T8 |IOSTANDARD=LVCMOS25;
+NET gmii_tx_er_o LOC=U8 |IOSTANDARD=LVCMOS25;
+
+NET gmii_rx_clk_i LOC=P20 |IOSTANDARD=LVCMOS25 |TNM_NET= "gmii_rx_clk";
+TIMESPEC "TS_GMII_RX_CLK_I" = PERIOD "gmii_rx_clk_i" 125MHz;
+OFFSET = IN 2.5ns VALID 3ns BEFORE gmii_rx_clk_i;
+NET gmii_rxd_i<0> LOC=P19 |IOSTANDARD=LVCMOS25;
+NET gmii_rxd_i<1> LOC=Y22 |IOSTANDARD=LVCMOS25;
+NET gmii_rxd_i<2> LOC=Y21 |IOSTANDARD=LVCMOS25;
+NET gmii_rxd_i<3> LOC=W22 |IOSTANDARD=LVCMOS25;
+NET gmii_rxd_i<4> LOC=W20 |IOSTANDARD=LVCMOS25;
+NET gmii_rxd_i<5> LOC=V22 |IOSTANDARD=LVCMOS25;
+NET gmii_rxd_i<6> LOC=V21 |IOSTANDARD=LVCMOS25;
+NET gmii_rxd_i<7> LOC=U22 |IOSTANDARD=LVCMOS25;
+NET gmii_rx_dv_i LOC=T22 |IOSTANDARD=LVCMOS25;
+NET gmii_rx_er_i LOC=U20 |IOSTANDARD=LVCMOS25;
+
+NET phy_rstb_o LOC=J22 |IOSTANDARD=LVCMOS25;
+
+
+
+# Main I2C bus
+#NET i2c_scl_io LOC=P11 | IOSTANDARD=LVCMOS25;
+#NET i2c_sda_io LOC=N10 | IOSTANDARD=LVCMOS25;
+NET "I2C_SDA_B"				LOC = "R22"; ##  C30 on FMC
+NET "I2C_SCL_B"				LOC = "T21"; ##  C31 on FMC
+
+#
+# I/O to devices under test
+
+#NET "BUSY_P_I<0>"				LOC = "D4"; ## "FMC_LA06_P" , C10 on FMC
+#NET "BUSY_N_I<0>"				LOC = "D5"; ## "FMC_LA06_N" , C11 on FMC
+#NET "BUSY_P_I<1>"				LOC = "AA16"; ## "FMC_LA28_P" , H31 on FMC
+#NET "BUSY_N_I<1>"				LOC = "AB16"; ## "FMC_LA28_N" , H32 on FMC
+#NET "BUSY_P_I<2>"				LOC = "B2"; ## "FMC_LA07_P" , H13 on FMC
+#NET "BUSY_N_I<2>"				LOC = "A2"; ## "FMC_LA07_N" , H14 on FMC
+
+#NET "TRIGGERS_P_O<0>"				LOC = "H10"; ## "FMC_LA10_P" , C14 on FMC
+#NET "TRIGGERS_N_O<0>"				LOC = "H11"; ## "FMC_LA10_N" , C15 on FMC
+#NET "TRIGGERS_P_O<1>"				LOC = "W17"; ## "FMC_LA32_P" , H37 on FMC
+#NET "TRIGGERS_N_O<1>"				LOC = "Y18"; ## "FMC_LA32_N" , H38 on FMC
+#NET "TRIGGERS_P_O<2>"				LOC = "F7"; ## "FMC_LA09_P" , D14 on FMC
+#NET "TRIGGERS_N_O<2>"				LOC = "F8"; ## "FMC_LA09_N" , D15 on FMC
+
+#NET "SHUTTERS_P_O<0>"				LOC = "R9"; ## "FMC_LA20_P" , G21 on FMC
+#NET "SHUTTERS_N_O<0>"				LOC = "R8"; ## "FMC_LA20_N" , G22 on FMC
+#NET "SHUTTERS_P_O<1>"				LOC = "T12"; ## "FMC_LA18_CC_P" , C22 on FMC
+#NET "SHUTTERS_N_O<1>"				LOC = "U12"; ## "FMC_LA18_CC_N" , C23 on FMC
+#NET "SHUTTERS_P_O<2>"				LOC = "R11"; ## "FMC_LA19_P" , H22 on FMC
+#NET "SHUTTERS_N_O<2>"				LOC = "T11"; ## "FMC_LA19_N" , H23 on FMC
+
+#NET "DUT_CLK_P_I<0>"			LOC = "U16"; ## "FMC_LA31_P" , G33 on FMC , "DUT_CLK_P_I<0>
+#NET "DUT_CLK_N_I<0>"			LOC = "V15"; ## "FMC_LA31_N" , G34 on FMC , DUT_CLK_N<0>
+#NET "DUT_CLK_P_I<1>"				LOC = "AA14"; ## "FMC_LA24_P" , H28 on FMC , CONT_P<1>
+#NET "DUT_CLK_N_I<1>"				LOC = "AB14"; ## "FMC_LA24_N" , H29 on FMC , CONT_N<1>
+#NET "DUT_CLK_P_I<2>"				LOC = "B20"; ## "FMC_LA08_P" , G12 on FMC , CONT_P<2>
+#NET "DUT_CLK_N_I<2>"				LOC = "A20"; ## "FMC_LA08_N" , G13 on FMC , CONT_N<2>
+
+#NET "RESET_OR_CLK_P_O<0>"				LOC = "Y17"; ## "FMC_LA33_P" , G36 on FMC , CONT_P<0>
+##NET "RESET_OR_CLK_N_O<0>"				LOC = "AB17"; ## "FMC_LA33_N" , G37 on FMC , CONT_N<0>
+#NET "RESET_OR_CLK_P_O<1>"				LOC = "V11"; ## "FMC_LA21_P" , H25 on FMC , CLK_P<1>
+##NET "RESET_OR_CLK_N_O<1>"				LOC = "W11"; ## "FMC_LA21_N" , H26 on FMC , CLK_QN<1>
+#NET "RESET_OR_CLK_P_O<2>"				LOC = "C19"; ## "FMC_LA04_P" , H10 on FMC , CLK_P<2>
+##NET "RESET_OR_CLK_N_O<2>"				LOC = "A19"; ## "FMC_LA04_N" , H11 on FMC , CLK_N<2>
+
+
+# Trigger inputs
+# first constant-fraction-discrimiator comparator outputs
+NET "CFD_DISCR_P_I<0>"		LOC = "G9"; ## "FMC_LA00_CC_P" , G6 on FMC
+NET "CFD_DISCR_N_I<0>"		LOC = "F10"; ## "FMC_LA00_CC_N" , G7 on FMC
+NET "CFD_DISCR_P_I<1>"		LOC = "C17"; ## "FMC_LA14_P" , C18 on FMC
+NET "CFD_DISCR_N_I<1>"		LOC = "A17"; ## "FMC_LA14_N" , C19 on FMC
+NET "CFD_DISCR_P_I<2>"		LOC = "H13"; ## "FMC_LA12_P" , C22 on FMC
+NET "CFD_DISCR_N_I<2>"		LOC = "G13"; ## "FMC_LA12_N" , C23 on FMC
+NET "CFD_DISCR_P_I<3>"		LOC = "C5"; ## "FMC_LA16_P" , C26 on FMC
+NET "CFD_DISCR_N_I<3>"		LOC = "A5"; ## "FMC_LA16_N" , C27 on FMC
+#NET "CFD_DISCR_P_I<2>"		LOC = "T12"; ## "FMC_LA18_CC_P" , C22 on FMC
+#NET "CFD_DISCR_N_I<2>"		LOC = "U12"; ## "FMC_LA18_CC_N" , C23 on FMC
+#NET "CFD_DISCR_P_I<3>"		LOC = "AA10"; ## "FMC_LA27_P" , C26 on FMC
+#NET "CFD_DISCR_N_I<3>"		LOC = "AB10"; ## "FMC_LA27_N" , C27 on FMC
+# then threshold comparator outputs
+# N.B. These differ from v1 of schematics, since the original choice couldn't be routed.
+NET "THRESHOLD_DISCR_P_I<0>"			LOC = "F14"; ## "FMC_LA01_CC_P" , D8 on FMC
+#NET "THRESHOLD_DISCR_N_I<0>"			LOC = "F15"; ## "FMC_LA01_CC_N" , D9 on FMC
+NET "THRESHOLD_DISCR_P_I<1>"			LOC = "G16"; ## "FMC_LA13_P" , D17 on FMC
+#NET "THRESHOLD_DISCR_N_I<1>"			LOC = "F17"; ## "FMC_LA13_N" , D18 on FMC
+NET "THRESHOLD_DISCR_P_I<2>"			LOC = "D18"; ## "FMC_LA15_P" , H19 on FMC
+#NET "THRESHOLD_DISCR_N_I<2>"			LOC = "D19"; ## "FMC_LA15_N" , H20 on FMC
+NET "THRESHOLD_DISCR_P_I<3>"			LOC = "H14"; ## "FMC_LA11_P" , H16 on FMC
+#NET "THRESHOLD_DISCR_N_I<3>"			LOC = "G15"; ## "FMC_LA11_N" , H17 on FMC
+
+#NET "SPARE_P<2>"			LOC = "Y11"; ## "FMC_LA17_CC_P" , D20 on FMC
+#NET "SPARE_N<2>"			LOC = "AB11"; ## "FMC_LA17_CC_N" , D21 on FMC
+#NET "SPARE_P<1>"			LOC = "Y15"; ## "FMC_LA30_P" , H34 on FMC
+#NET "SPARE_N<1>"			LOC = "AB15"; ## "FMC_LA30_N" , H35 on FMC
+
+NET "EXTCLK_P_B"			LOC = "H12"; ## "FMC_CLK0_M2C_P" , H4 on FMC , "FRONT_PANEL_CLK_P"	
+NET "EXTCLK_N_B"			LOC = "G11"; ## "FMC_CLK0_M2C_N" , H5 on FMC ,  "FRONT_PANEL_CLK_N"
+#NET "HDMI_POWER_ENABLE1"		LOC = "G8"; ## "FMC_LA02_P" , H7 on FMC
+#NET "HDMI_POWER_ENABLE2"		LOC = "F9"; ## "FMC_LA02_N" , H8 on FMC
+
+
+NET "output_0_p[0]" LOC = H10;
+NET "output_0_p[1]" LOC = W17;
+NET "output_0_p[2]" LOC = F7;
+NET "output_0_n[0]" LOC = H11;
+NET "output_0_n[1]" LOC = Y18;
+NET "output_0_n[2]" LOC = F8;
+NET "output_1_p[0]" LOC = U16;
+NET "output_1_p[1]" LOC = V11;
+NET "output_1_p[2]" LOC = C19;
+NET "output_1_n[0]" LOC = V15;
+NET "output_1_n[1]" LOC = W11;
+NET "output_1_n[2]" LOC = A19;
+NET "output_2_p[0]" LOC = Y17;
+NET "output_2_p[1]" LOC = AA14;
+NET "output_2_p[2]" LOC = B20;
+NET "output_2_n[0]" LOC = AB17;
+NET "output_2_n[1]" LOC = AB14;
+NET "output_2_n[2]" LOC = A20;
+NET "output_3_p[0]" LOC = D4;
+NET "output_3_p[1]" LOC = AA16;
+NET "output_3_p[2]" LOC = B2;
+NET "output_3_n[0]" LOC = D5;
+NET "output_3_n[1]" LOC = AB16;
+NET "output_3_n[2]" LOC = A2;
\ No newline at end of file
diff --git a/legacy/TLU_v1c/test/sp605_FMC_mTLU_v1a.ucf b/legacy/TLU_v1c/test/sp605_FMC_mTLU_v1a.ucf
new file mode 100644
index 00000000..994eafd1
--- /dev/null
+++ b/legacy/TLU_v1c/test/sp605_FMC_mTLU_v1a.ucf
@@ -0,0 +1,164 @@
+NET sysclk_p_i LOC = K21 | IOSTANDARD = LVDS_25 | DIFF_TERM = TRUE | TNM_NET = tnm_sysclk;
+NET sysclk_n_i LOC = K22 | IOSTANDARD = LVDS_25 | DIFF_TERM = TRUE;
+
+TIMESPEC TS_sysclk = PERIOD tnm_sysclk 200MHz;
+
+#NET Reset_i LOC=F3; ## Global Reset
+
+#NET ipb_clk TNM_NET = tnm_ipb_clk;
+#NET clk125  TNM_NET = tnm_clk125;
+#TIMESPEC TS_tig_ipb_125 = FROM tnm_ipb_clk TO tnm_clk125 TIG;
+#TIMESPEC TS_tig_125_ipb = FROM tnm_clk125 TO tnm_ipb_clk TIG;
+
+# NET clocks/rst* TIG;
+
+NET leds_o<0> LOC=D17 | IOSTANDARD=LVCMOS25;
+NET leds_o<1> LOC=AB4 | IOSTANDARD=LVCMOS25;
+NET leds_o<2> LOC=D21 | IOSTANDARD=LVCMOS25;
+NET leds_o<3> LOC=W15 | IOSTANDARD=LVCMOS25;
+
+NET dip_switch_i<0> LOC=C18;
+NET dip_switch_i<1> LOC=Y6;
+NET dip_switch_i<2> LOC=W6;
+NET dip_switch_i<3> LOC=E4;
+
+# Ethernet PHY
+
+TIMEGRP TG_gmii_tx=PADS("gmii_tx*");
+TIMEGRP TG_gmii_tx OFFSET = OUT AFTER sysclk_p_i REFERENCE_PIN "gmii_gtx_clk_o" RISING;
+
+NET gmii_gtx_clk_o LOC=AB7 |IOSTANDARD=LVCMOS25 | SLEW=FAST;
+NET gmii_txd_o<0> LOC=U10 |IOSTANDARD=LVCMOS25;
+NET gmii_txd_o<1> LOC=T10 |IOSTANDARD=LVCMOS25;
+NET gmii_txd_o<2> LOC=AB8 |IOSTANDARD=LVCMOS25;
+NET gmii_txd_o<3> LOC=AA8 |IOSTANDARD=LVCMOS25;
+NET gmii_txd_o<4> LOC=AB9 |IOSTANDARD=LVCMOS25;
+NET gmii_txd_o<5> LOC=Y9  |IOSTANDARD=LVCMOS25;
+NET gmii_txd_o<6> LOC=Y12 |IOSTANDARD=LVCMOS25;
+NET gmii_txd_o<7> LOC=W12 |IOSTANDARD=LVCMOS25;
+NET gmii_tx_en_o LOC=T8 |IOSTANDARD=LVCMOS25;
+NET gmii_tx_er_o LOC=U8 |IOSTANDARD=LVCMOS25;
+
+NET gmii_rx_clk_i LOC=P20 |IOSTANDARD=LVCMOS25 |TNM_NET= "gmii_rx_clk";
+TIMESPEC "TS_GMII_RX_CLK_I" = PERIOD "gmii_rx_clk_i" 125MHz;
+OFFSET = IN 2.5ns VALID 3ns BEFORE gmii_rx_clk_i;
+NET gmii_rxd_i<0> LOC=P19 |IOSTANDARD=LVCMOS25;
+NET gmii_rxd_i<1> LOC=Y22 |IOSTANDARD=LVCMOS25;
+NET gmii_rxd_i<2> LOC=Y21 |IOSTANDARD=LVCMOS25;
+NET gmii_rxd_i<3> LOC=W22 |IOSTANDARD=LVCMOS25;
+NET gmii_rxd_i<4> LOC=W20 |IOSTANDARD=LVCMOS25;
+NET gmii_rxd_i<5> LOC=V22 |IOSTANDARD=LVCMOS25;
+NET gmii_rxd_i<6> LOC=V21 |IOSTANDARD=LVCMOS25;
+NET gmii_rxd_i<7> LOC=U22 |IOSTANDARD=LVCMOS25;
+NET gmii_rx_dv_i LOC=T22 |IOSTANDARD=LVCMOS25;
+NET gmii_rx_er_i LOC=U20 |IOSTANDARD=LVCMOS25;
+
+NET phy_rstb_o LOC=J22 |IOSTANDARD=LVCMOS25;
+
+
+
+# Main I2C bus
+#NET i2c_scl_io LOC=P11 | IOSTANDARD=LVCMOS25;
+#NET i2c_sda_io LOC=N10 | IOSTANDARD=LVCMOS25;
+NET "I2C_SDA_B"				LOC = "R22"; ##  C30 on FMC
+NET "I2C_SCL_B"				LOC = "T21"; ##  C31 on FMC
+
+#
+# I/O to devices under test
+
+#NET "BUSY_P_I<0>"				LOC = "D4"; ## "FMC_LA06_P" , C10 on FMC
+#NET "BUSY_N_I<0>"				LOC = "D5"; ## "FMC_LA06_N" , C11 on FMC
+#NET "BUSY_P_I<1>"				LOC = "AA16"; ## "FMC_LA28_P" , H31 on FMC
+#NET "BUSY_N_I<1>"				LOC = "AB16"; ## "FMC_LA28_N" , H32 on FMC
+#NET "BUSY_P_I<2>"				LOC = "B2"; ## "FMC_LA07_P" , H13 on FMC
+#NET "BUSY_N_I<2>"				LOC = "A2"; ## "FMC_LA07_N" , H14 on FMC
+
+#NET "TRIGGERS_P_O<0>"				LOC = "H10"; ## "FMC_LA10_P" , C14 on FMC
+#NET "TRIGGERS_N_O<0>"				LOC = "H11"; ## "FMC_LA10_N" , C15 on FMC
+#NET "TRIGGERS_P_O<1>"				LOC = "W17"; ## "FMC_LA32_P" , H37 on FMC
+#NET "TRIGGERS_N_O<1>"				LOC = "Y18"; ## "FMC_LA32_N" , H38 on FMC
+#NET "TRIGGERS_P_O<2>"				LOC = "F7"; ## "FMC_LA09_P" , D14 on FMC
+#NET "TRIGGERS_N_O<2>"				LOC = "F8"; ## "FMC_LA09_N" , D15 on FMC
+
+#NET "SHUTTERS_P_O<0>"				LOC = "R9"; ## "FMC_LA20_P" , G21 on FMC
+#NET "SHUTTERS_N_O<0>"				LOC = "R8"; ## "FMC_LA20_N" , G22 on FMC
+#NET "SHUTTERS_P_O<1>"				LOC = "T12"; ## "FMC_LA18_CC_P" , C22 on FMC
+#NET "SHUTTERS_N_O<1>"				LOC = "U12"; ## "FMC_LA18_CC_N" , C23 on FMC
+#NET "SHUTTERS_P_O<2>"				LOC = "R11"; ## "FMC_LA19_P" , H22 on FMC
+#NET "SHUTTERS_N_O<2>"				LOC = "T11"; ## "FMC_LA19_N" , H23 on FMC
+
+#NET "DUT_CLK_P_I<0>"			LOC = "U16"; ## "FMC_LA31_P" , G33 on FMC , "DUT_CLK_P_I<0>
+#NET "DUT_CLK_N_I<0>"			LOC = "V15"; ## "FMC_LA31_N" , G34 on FMC , DUT_CLK_N<0>
+#NET "DUT_CLK_P_I<1>"				LOC = "AA14"; ## "FMC_LA24_P" , H28 on FMC , CONT_P<1>
+#NET "DUT_CLK_N_I<1>"				LOC = "AB14"; ## "FMC_LA24_N" , H29 on FMC , CONT_N<1>
+#NET "DUT_CLK_P_I<2>"				LOC = "B20"; ## "FMC_LA08_P" , G12 on FMC , CONT_P<2>
+#NET "DUT_CLK_N_I<2>"				LOC = "A20"; ## "FMC_LA08_N" , G13 on FMC , CONT_N<2>
+
+#NET "RESET_OR_CLK_P_O<0>"				LOC = "Y17"; ## "FMC_LA33_P" , G36 on FMC , CONT_P<0>
+##NET "RESET_OR_CLK_N_O<0>"				LOC = "AB17"; ## "FMC_LA33_N" , G37 on FMC , CONT_N<0>
+#NET "RESET_OR_CLK_P_O<1>"				LOC = "V11"; ## "FMC_LA21_P" , H25 on FMC , CLK_P<1>
+##NET "RESET_OR_CLK_N_O<1>"				LOC = "W11"; ## "FMC_LA21_N" , H26 on FMC , CLK_QN<1>
+#NET "RESET_OR_CLK_P_O<2>"				LOC = "C19"; ## "FMC_LA04_P" , H10 on FMC , CLK_P<2>
+##NET "RESET_OR_CLK_N_O<2>"				LOC = "A19"; ## "FMC_LA04_N" , H11 on FMC , CLK_N<2>
+
+
+# Trigger inputs
+# first constant-fraction-discrimiator comparator outputs
+#NET "CFD_DISCR_P_I<0>"		LOC = "W17"; ## "FMC_LA00_CC_P" , G6 on FMC
+#NET "CFD_DISCR_N_I<0>"		LOC = "Y18"; ## "FMC_LA00_CC_N" , G7 on FMC
+#NET "CFD_DISCR_P_I<1>"		LOC = "Y15"; ## "FMC_LA14_P" , C18 on FMC
+#NET "CFD_DISCR_N_I<1>"		LOC = "AB15"; ## "FMC_LA14_N" , C19 on FMC
+#NET "CFD_DISCR_P_I<2>"		LOC = "AA16"; ## "FMC_LA12_P" , C22 on FMC
+#NET "CFD_DISCR_N_I<2>"		LOC = "AB16"; ## "FMC_LA12_N" , C23 on FMC
+#NET "CFD_DISCR_P_I<3>"		LOC = "AA14"; ## "FMC_LA16_P" , C26 on FMC
+#NET "CFD_DISCR_N_I<3>"		LOC = "AB14"; ## "FMC_LA16_N" , C27 on FMC
+##NET "CFD_DISCR_P_I<2>"		LOC = "T12"; ## "FMC_LA18_CC_P" , C22 on FMC
+##NET "CFD_DISCR_N_I<2>"		LOC = "U12"; ## "FMC_LA18_CC_N" , C23 on FMC
+##NET "CFD_DISCR_P_I<3>"		LOC = "AA10"; ## "FMC_LA27_P" , C26 on FMC
+##NET "CFD_DISCR_N_I<3>"		LOC = "AB10"; ## "FMC_LA27_N" , C27 on FMC
+# then threshold comparator outputs
+# N.B. These differ from v1 of schematics, since the original choice couldn't be routed.
+NET "THRESHOLD_DISCR_P_I<0>"			LOC = "F14"; ## "FMC_LA01_CC_P" , D8 on FMC
+#NET "THRESHOLD_DISCR_N_I<0>"			LOC = "F15"; ## "FMC_LA01_CC_N" , D9 on FMC
+NET "THRESHOLD_DISCR_P_I<1>"			LOC = "G16"; ## "FMC_LA13_P" , D17 on FMC
+#NET "THRESHOLD_DISCR_N_I<1>"			LOC = "F17"; ## "FMC_LA13_N" , D18 on FMC
+NET "THRESHOLD_DISCR_P_I<2>"			LOC = "D18"; ## "FMC_LA15_P" , H19 on FMC
+#NET "THRESHOLD_DISCR_N_I<2>"			LOC = "D19"; ## "FMC_LA15_N" , H20 on FMC
+NET "THRESHOLD_DISCR_P_I<3>"			LOC = "H14"; ## "FMC_LA11_P" , H16 on FMC
+#NET "THRESHOLD_DISCR_N_I<3>"			LOC = "G15"; ## "FMC_LA11_N" , H17 on FMC
+
+#NET "SPARE_P<2>"			LOC = "Y11"; ## "FMC_LA17_CC_P" , D20 on FMC
+#NET "SPARE_N<2>"			LOC = "AB11"; ## "FMC_LA17_CC_N" , D21 on FMC
+#NET "SPARE_P<1>"			LOC = "Y15"; ## "FMC_LA30_P" , H34 on FMC
+#NET "SPARE_N<1>"			LOC = "AB15"; ## "FMC_LA30_N" , H35 on FMC
+
+NET "EXTCLK_P_B"			LOC = "H12"; ## "FMC_CLK0_M2C_P" , H4 on FMC , "FRONT_PANEL_CLK_P"	
+NET "EXTCLK_N_B"			LOC = "G11"; ## "FMC_CLK0_M2C_N" , H5 on FMC ,  "FRONT_PANEL_CLK_N"
+#NET "HDMI_POWER_ENABLE1"		LOC = "G8"; ## "FMC_LA02_P" , H7 on FMC
+#NET "HDMI_POWER_ENABLE2"		LOC = "F9"; ## "FMC_LA02_N" , H8 on FMC
+
+
+NET "output_0_p[0]" LOC = R9;
+NET "output_0_p[1]" LOC = B18;
+NET "output_0_p[2]" LOC = C5;
+NET "output_0_n[0]" LOC = R8;
+NET "output_0_n[1]" LOC = A18;
+NET "output_0_n[2]" LOC = A5;
+NET "output_1_p[0]" LOC = AA10;
+NET "output_1_p[1]" LOC = G8;
+NET "output_1_p[2]" LOC = V11;
+NET "output_1_n[0]" LOC = AB10;
+NET "output_1_n[1]" LOC = F9;
+NET "output_1_n[2]" LOC = W11;
+NET "output_2_p[0]" LOC = V7;
+NET "output_2_p[1]" LOC = T12;
+NET "output_2_p[2]" LOC = B2;
+NET "output_2_n[0]" LOC = W8;
+NET "output_2_n[1]" LOC = U12;
+NET "output_2_n[2]" LOC = A2;
+NET "output_3_p[0]" LOC = R11;
+NET "output_3_p[1]" LOC = C17;
+NET "output_3_p[2]" LOC = H13;
+NET "output_3_n[0]" LOC = T11;
+NET "output_3_n[1]" LOC = A17;
+NET "output_3_n[2]" LOC = G13;
\ No newline at end of file
diff --git a/legacy/TLU_v1c/top_extphy_struct.vhd b/legacy/TLU_v1c/top_extphy_struct.vhd
new file mode 100644
index 00000000..da5e7964
--- /dev/null
+++ b/legacy/TLU_v1c/top_extphy_struct.vhd
@@ -0,0 +1,668 @@
+-- VHDL Entity work.top_extphy.symbol
+--
+-- Created:
+--          by - phdgc.users (voltar.phy.bris.ac.uk)
+--          at - 11:30:28 09/03/15
+--
+-- Generated by Mentor Graphics' HDL Designer(TM) 2013.1b (Build 2)
+--
+LIBRARY ieee;
+USE ieee.std_logic_1164.all;
+USE ieee.numeric_std.all;
+
+ENTITY top_extphy IS
+   GENERIC( 
+      g_NUM_DUTS            : positive := 3;
+      g_NUM_TRIG_INPUTS     : positive := 4;
+      g_NUM_EXT_SLAVES      : positive := 8;      --! Number of slaves outside IPBus interface
+      g_EVENT_DATA_WIDTH    : positive := 64;
+      g_IPBUS_WIDTH         : positive := 32;
+      g_NUM_EDGE_INPUTS     : positive := 4;
+      g_SPILL_COUNTER_WIDTH : positive := 12;
+      g_BUILD_SIMULATED_MAC : integer  := 0
+   );
+   PORT( 
+      busy_n_i            : IN     std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);
+      busy_p_i            : IN     std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);         --! Busy lines from DUTs ( active high )
+      cfd_discr_n_i       : IN     std_logic_vector (g_NUM_TRIG_INPUTS-1 DOWNTO 0);
+      cfd_discr_p_i       : IN     std_logic_vector (g_NUM_TRIG_INPUTS-1 DOWNTO 0);
+      dip_switch_i        : IN     std_logic_vector (3 DOWNTO 0);
+      gmii_rx_clk_i       : IN     std_logic;
+      gmii_rx_dv_i        : IN     std_logic;
+      gmii_rx_er_i        : IN     std_logic;
+      gmii_rxd_i          : IN     std_logic_vector (7 DOWNTO 0);
+      sysclk_n_i          : IN     std_logic;                                        --! 200 MHz xtal clock
+      sysclk_p_i          : IN     std_logic;
+      threshold_discr_n_i : IN     std_logic_vector (g_NUM_TRIG_INPUTS-1 DOWNTO 0);
+      threshold_discr_p_i : IN     std_logic_vector (g_NUM_TRIG_INPUTS-1 DOWNTO 0);
+      gmii_gtx_clk_o      : OUT    std_logic;
+      gmii_tx_en_o        : OUT    std_logic;
+      gmii_tx_er_o        : OUT    std_logic;
+      gmii_txd_o          : OUT    std_logic_vector (7 DOWNTO 0);
+      gpio_hdr            : OUT    std_logic_vector (3 DOWNTO 0);
+      leds_o              : OUT    std_logic_vector (3 DOWNTO 0);
+      phy_rstb_o          : OUT    std_logic;
+      reset_or_clk_n_o    : OUT    std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);
+      reset_or_clk_p_o    : OUT    std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);         --! T0 synchronization signal
+      shutter_to_dut_n_o  : OUT    std_logic_vector (g_NUM_DUTS-1 DOWNTO 1);         --! Shutter output
+      shutter_to_dut_p_o  : OUT    std_logic_vector (g_NUM_DUTS-1 DOWNTO 1);         --! Shutter output
+      triggers_n_o        : OUT    std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);
+      triggers_p_o        : OUT    std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);         --! Trigger lines to DUT
+      dut_clk_n_o         : INOUT  std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);
+      dut_clk_p_o         : INOUT  std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);         --! Clock to DUT (P)
+      extclk_n_b          : INOUT  std_logic;
+      extclk_p_b          : INOUT  std_logic;                                        --! either external clock in, or a clock being driven out
+      i2c_scl_b           : INOUT  std_logic;
+      i2c_sda_b           : INOUT  std_logic
+   );
+
+-- Declarations
+
+END ENTITY top_extphy ;
+
+--
+-- VHDL Architecture work.top_extphy.struct
+--
+-- Created:
+--          by - phdgc.users (voltar.phy.bris.ac.uk)
+--          at - 11:30:28 09/03/15
+--
+-- Generated by Mentor Graphics' HDL Designer(TM) 2013.1b (Build 2)
+--
+LIBRARY ieee;
+USE ieee.std_logic_1164.all;
+USE ieee.numeric_std.all;
+
+LIBRARY work;
+USE work.ipbus.all;
+-- USE work.emac_hostbus_decl.all;
+
+USE work.fmcTLU.all;
+LIBRARY unisim;
+USE unisim.vcomponents.all;
+USE work.ipbus_reg_types.all;
+
+
+ARCHITECTURE struct OF top_extphy IS
+
+   -- Architecture declarations
+
+   -- Internal signal declarations
+   SIGNAL T0_o                  : std_logic;
+   SIGNAL buffer_full_o         : std_logic;                                             --! Goes high when event buffer almost full
+   SIGNAL clk_16x_logic         : std_logic;                                             -- 640MHz clock
+   SIGNAL clk_4x_logic          : std_logic;                                             --! normally 160MHz
+   SIGNAL clk_logic_xtal        : std_logic;                                             -- ! 40MHz clock from onboard xtal
+   SIGNAL data_strobe           : std_logic;                                             -- goes high when data ready to load into event buffer
+   SIGNAL dout                  : std_logic;
+   SIGNAL dout1                 : std_logic;
+   SIGNAL event_data            : std_logic_vector(g_EVENT_DATA_WIDTH-1 DOWNTO 0);
+   SIGNAL ipbr                  : ipb_rbus_array(g_NUM_EXT_SLAVES-1 DOWNTO 0);           --! IPBus read signals
+   SIGNAL ipbus_clk             : std_logic;
+   SIGNAL ipbus_reset           : std_logic;                                             -- ! IPBus reset to slaves
+   SIGNAL ipbw                  : ipb_wbus_array(g_NUM_EXT_SLAVES-1 DOWNTO 0);           --! IBus write signals
+   SIGNAL logic_clocks_reset    : std_logic;                                             -- Goes high to reset counters etc. Sync with clk_4x_logic
+   SIGNAL logic_reset           : std_logic;
+   SIGNAL overall_trigger       : std_logic;                                             --! goes high to load trigger data
+   SIGNAL overall_veto          : std_logic;                                             --! Halts triggers when high
+   SIGNAL postVetoTrigger_times : t_triggerTimeArray(g_NUM_TRIG_INPUTS-1 DOWNTO 0);      -- ! trigger arrival time ( w.r.t. logic_strobe)
+   SIGNAL postVetotrigger       : std_logic_vector(g_NUM_TRIG_INPUTS-1 DOWNTO 0);        -- ! High when trigger from input connector active and enabled
+   --trigger_count_i   : IN     std_logic_vector (g_IPBUS_WIDTH-1 DOWNTO 0); --! Not used yet.
+   SIGNAL rst_fifo_o            : std_logic;                                             --! rst signal to first level fifos
+   SIGNAL s_edge_fall_times     : t_triggerTimeArray(g_NUM_EDGE_INPUTS-1 DOWNTO 0);      -- Array of edge times ( w.r.t. logic_strobe)
+   SIGNAL s_edge_falling        : std_logic_vector(g_NUM_EDGE_INPUTS-1 DOWNTO 0);        -- ! High when falling edge
+   SIGNAL s_edge_rise_times     : t_triggerTimeArray(g_NUM_EDGE_INPUTS-1 DOWNTO 0);      -- Array of edge times ( w.r.t. logic_strobe)
+   SIGNAL s_edge_rising         : std_logic_vector(g_NUM_EDGE_INPUTS-1 DOWNTO 0);        -- ! High when rising edge
+   SIGNAL s_i2c_scl_enb         : std_logic;
+   SIGNAL s_i2c_sda_enb         : std_logic;
+   SIGNAL s_shutter             : std_logic;                                             --! shutter signal from TimePix, retimed onto local clock
+   SIGNAL s_triggerLogic_reset  : std_logic;
+   SIGNAL shutter_cnt_i         : std_logic_vector(g_SPILL_COUNTER_WIDTH-1 DOWNTO 0);
+   SIGNAL shutter_i             : std_logic;
+   SIGNAL spill_cnt_i           : std_logic_vector(g_SPILL_COUNTER_WIDTH-1 DOWNTO 0);
+   SIGNAL spill_i               : std_logic;
+   SIGNAL strobe_16x_logic      : std_logic;                                             --! Pulses one cycle every 4 of 16x clock.
+   SIGNAL strobe_4x_logic       : std_logic;                                             -- one pulse every 4 cycles of clk_4x
+   SIGNAL trigger_count         : std_logic_vector(g_IPBUS_WIDTH-1 DOWNTO 0);
+   SIGNAL trigger_times         : t_triggerTimeArray(g_NUM_TRIG_INPUTS-1 DOWNTO 0);      -- ! trigger arrival time ( w.r.t. logic_strobe)
+   SIGNAL triggers              : std_logic_vector(g_NUM_TRIG_INPUTS-1 DOWNTO 0);
+   SIGNAL veto_o                : std_logic;                                             --! goes high when one or more DUT are busy
+
+
+   -- Component Declarations
+   COMPONENT DUTInterfaces
+   GENERIC (
+      g_NUM_DUTS    : positive := 3;
+      g_IPBUS_WIDTH : positive := 32
+   );
+   PORT (
+      clk_4x_logic_i          : IN     std_logic ;
+      strobe_4x_logic_i       : IN     std_logic ;                                  --! goes high every 4th clock cycle
+      trigger_counter_i       : IN     std_logic_vector (g_IPBUS_WIDTH-1 DOWNTO 0); --! Number of trigger events since last reset
+      trigger_i               : IN     std_logic ;                                  --! goes high when trigger logic issues a trigger
+      reset_or_clk_to_dut_i   : IN     std_logic ;                                  --! Synchronization signal. Passed TO DUT pins
+      shutter_to_dut_i        : IN     std_logic ;                                  --! Goes high TO indicate data-taking active. DUTs report busy unless ignoreShutterVeto IPBus flag is set high
+      -- IPBus signals.
+      ipbus_clk_i             : IN     std_logic ;
+      ipbus_i                 : IN     ipb_wbus ;                                   --! Signals from IPBus core TO slave
+      ipbus_reset_i           : IN     std_logic ;
+      ipbus_o                 : OUT    ipb_rbus ;                                   --! signals from slave TO IPBus core
+      -- Signals to/from DUT
+      busy_from_dut_n_i       : IN     std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);    --! BUSY input from DUTs
+      busy_from_dut_p_i       : IN     std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);    --! BUSY input from DUTs
+      clk_to_dut_n_io         : INOUT  std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);    --! clocks trigger data when in EUDET mode
+      clk_to_dut_p_io         : INOUT  std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);    --! clocks trigger data when in EUDET mode
+      reset_or_clk_to_dut_n_o : OUT    std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);    --! Either reset line or trigger
+      reset_or_clk_to_dut_p_o : OUT    std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);    --! Either reset line or trigger
+      trigger_to_dut_n_o      : OUT    std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);    --! Trigger output
+      trigger_to_dut_p_o      : OUT    std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);    --! Trigger output
+      shutter_to_dut_n_o      : OUT    std_logic_vector (g_NUM_DUTS-1 DOWNTO 1);    --! Shutter output. Output 0 (RJ45) has no shutter signal
+      shutter_to_dut_p_o      : OUT    std_logic_vector (g_NUM_DUTS-1 DOWNTO 1);    --! Shutter output
+      veto_o                  : OUT    std_logic                                    --! goes high when one or more DUT are busy or vetoed by shutter
+   );
+   END COMPONENT DUTInterfaces;
+   COMPONENT IPBusInterface
+   GENERIC (
+      NUM_EXT_SLAVES           : positive := 5;
+      BUILD_SIMULATED_ETHERNET : integer  := 0      --! Set to 1 to build simulated Ethernet interface using Modelsim FLI
+   );
+   PORT (
+      gmii_rx_clk_i    : IN     std_logic ;
+      gmii_rx_dv_i     : IN     std_logic ;
+      gmii_rx_er_i     : IN     std_logic ;
+      gmii_rxd_i       : IN     std_logic_vector (7 DOWNTO 0);
+      ipbr_i           : IN     ipb_rbus_array (NUM_EXT_SLAVES-1 DOWNTO 0); -- ! IPBus read signals
+      sysclk_n_i       : IN     std_logic ;
+      sysclk_p_i       : IN     std_logic ;                                 -- ! 200 MHz xtal clock
+      clocks_locked_o  : OUT    std_logic ;
+      gmii_gtx_clk_o   : OUT    std_logic ;
+      gmii_tx_en_o     : OUT    std_logic ;
+      gmii_tx_er_o     : OUT    std_logic ;
+      gmii_txd_o       : OUT    std_logic_vector (7 DOWNTO 0);
+      ipb_clk_o        : OUT    std_logic ;                                 -- ! IPBus clock TO slaves
+      ipb_rst_o        : OUT    std_logic ;                                 -- ! IPBus reset TO slaves
+      ipbw_o           : OUT    ipb_wbus_array (NUM_EXT_SLAVES-1 DOWNTO 0); -- ! IBus write signals
+      onehz_o          : OUT    std_logic ;
+      phy_rstb_o       : OUT    std_logic ;
+      dip_switch_i     : IN     std_logic_vector (3 DOWNTO 0);
+      clk_logic_xtal_o : OUT    std_logic 
+   );
+   END COMPONENT IPBusInterface;
+   COMPONENT T0_Shutter_Iface
+   PORT (
+      clk_4x_i      : IN     std_logic;
+      clk_4x_strobe : IN     std_logic;
+      ipbus_clk_i   : IN     std_logic;
+      ipbus_i       : IN     ipb_wbus;
+      T0_o          : OUT    std_logic;
+      ipbus_o       : OUT    ipb_rbus;
+      shutter_o     : OUT    std_logic
+   );
+   END COMPONENT T0_Shutter_Iface;
+   COMPONENT eventBuffer
+   GENERIC (
+      g_EVENT_DATA_WIDTH   : positive := 64;
+      g_IPBUS_WIDTH        : positive := 32;
+      g_READ_COUNTER_WIDTH : positive := 16
+   );
+   PORT (
+      clk_4x_logic_i    : IN     std_logic ;
+      data_strobe_i     : IN     std_logic ;                                     -- Indicates data TO transfer
+      event_data_i      : IN     std_logic_vector (g_EVENT_DATA_WIDTH-1 DOWNTO 0);
+      ipbus_clk_i       : IN     std_logic ;
+      ipbus_i           : IN     ipb_wbus ;
+      ipbus_reset_i     : IN     std_logic ;
+      strobe_4x_logic_i : IN     std_logic ;
+      --trigger_count_i   : IN     std_logic_vector (g_IPBUS_WIDTH-1 DOWNTO 0); --! Not used yet.
+      rst_fifo_o        : OUT    std_logic ;                                     --! rst signal TO first level fifos
+      buffer_full_o     : OUT    std_logic ;                                     --! Goes high when event buffer almost full
+      ipbus_o           : OUT    ipb_rbus ;
+      logic_reset_i     : IN     std_logic                                       -- reset buffers when high. Synch withclk_4x_logic
+   );
+   END COMPONENT eventBuffer;
+   COMPONENT eventFormatter
+   GENERIC (
+      g_EVENT_DATA_WIDTH   : positive := 64;
+      g_IPBUS_WIDTH        : positive := 32;
+      g_COUNTER_TRIG_WIDTH : positive := 32;
+      g_COUNTER_WIDTH      : positive := 12;
+      g_EVTTYPE_WIDTH      : positive := 4;      --! Width of the event type word
+      --g_NUM_INPUT_TYPES     : positive := 4;               -- Number of different input types (trigger, shutter, edge...)
+      g_NUM_EDGE_INPUTS    : positive := 4;      --! Number of edge inputs
+      g_NUM_TRIG_INPUTS    : positive := 5       --! Number of trigger inputs
+   );
+   PORT (
+      clk_4x_logic_i         : IN     std_logic ;                                         --! Rising edge active
+      ipbus_clk_i            : IN     std_logic ;
+      logic_strobe_i         : IN     std_logic ;                                         --! Pulses high once every 4 cycles of clk_4x_logic
+      logic_reset_i          : IN     std_logic ;                                         --! goes high TO reset counters. Synchronous with clk_4x_logic
+      rst_fifo_i             : IN     std_logic ;                                         --! Goes high TO reset FIFOs
+      buffer_full_i          : IN     std_logic ;                                         --! Goes high when output fifo full
+      trigger_i              : IN     std_logic ;                                         --! goes high TO load trigger data. One cycle of clk_4x_logic
+      trigger_times_i        : IN     t_triggerTimeArray (g_NUM_TRIG_INPUTS-1 DOWNTO 0);  --! Array of trigger times ( w.r.t. logic_strobe)
+      trigger_inputs_fired_i : IN     std_logic_vector (g_NUM_TRIG_INPUTS-1 DOWNTO 0);    --! high for each input that "fired"
+      trigger_cnt_i          : IN     std_logic_vector (g_COUNTER_TRIG_WIDTH-1 DOWNTO 0); --! Trigger count
+      shutter_i              : IN     std_logic ;
+      shutter_cnt_i          : IN     std_logic_vector (g_COUNTER_WIDTH-1 DOWNTO 0);
+      spill_i                : IN     std_logic ;
+      spill_cnt_i            : IN     std_logic_vector (g_COUNTER_WIDTH-1 DOWNTO 0);
+      edge_rise_i            : IN     std_logic_vector (g_NUM_EDGE_INPUTS-1 DOWNTO 0);    --! High when rising edge
+      edge_fall_i            : IN     std_logic_vector (g_NUM_EDGE_INPUTS-1 DOWNTO 0);    --! High when falling edge
+      edge_rise_time_i       : IN     t_triggerTimeArray (g_NUM_EDGE_INPUTS-1 DOWNTO 0);  --! Array of edge times ( w.r.t. logic_strobe)
+      edge_fall_time_i       : IN     t_triggerTimeArray (g_NUM_EDGE_INPUTS-1 DOWNTO 0);  --! Array of edge times ( w.r.t. logic_strobe)
+      ipbus_i                : IN     ipb_wbus ;
+      ipbus_o                : OUT    ipb_rbus ;
+      data_strobe_o          : OUT    std_logic ;                                         --! goes high when data ready TO load into event buffer
+      event_data_o           : OUT    std_logic_vector (g_EVENT_DATA_WIDTH-1 DOWNTO 0);
+      reset_timestamp_i      : IN     std_logic ;                                         --! Taking high causes timestamp TO be reset. Combined with internal timestmap reset and written to reset_timestamp_o
+      reset_timestamp_o      : OUT    std_logic                                           --! Goes high for one clock cycle of clk_4x_logic when timestamp reset
+   );
+   END COMPONENT eventFormatter;
+   COMPONENT i2c_master
+   PORT (
+      i2c_scl_i     : IN     std_logic;
+      i2c_sda_i     : IN     std_logic;
+      ipbus_clk_i   : IN     std_logic;
+      ipbus_i       : IN     ipb_wbus;
+      ipbus_reset_i : IN     std_logic;
+      i2c_scl_enb_o : OUT    std_logic;
+      i2c_sda_enb_o : OUT    std_logic;
+      ipbus_o       : OUT    ipb_rbus
+   );
+   END COMPONENT i2c_master;
+   COMPONENT logic_clocks
+   GENERIC (
+      g_USE_EXTERNAL_CLK : integer := 1
+   );
+   PORT (
+      ipbus_clk_i           : IN     std_logic ;
+      ipbus_i               : IN     ipb_wbus ;
+      ipbus_reset_i         : IN     std_logic ;
+      Reset_i               : IN     std_logic ;
+      clk_logic_xtal_i      : IN     std_logic ; -- ! 40MHz clock from onboard xtal
+      clk_16x_logic_o       : OUT    std_logic ; -- 640MHz clock
+      clk_4x_logic_o        : OUT    std_logic ; -- 160MHz clock
+      ipbus_o               : OUT    ipb_rbus ;
+      strobe_16x_logic_o    : OUT    std_logic ; -- strobes once every 4 cycles of clk_16x
+      strobe_4x_logic_o     : OUT    std_logic ; -- one pulse every 4 cycles of clk_4x
+      extclk_p_b            : INOUT  std_logic ; -- either external clock in, or a clock being driven out
+      extclk_n_b            : INOUT  std_logic ;
+      DUT_clk_o             : OUT    std_logic ;
+      logic_clocks_locked_o : OUT    std_logic ;
+      logic_reset_o         : OUT    std_logic   -- Goes high TO reset counters etc. Sync with clk_4x_logic
+   );
+   END COMPONENT logic_clocks;
+   COMPONENT triggerInputs
+   GENERIC (
+      g_NUM_INPUTS  : natural  := 1;
+      g_IPBUS_WIDTH : positive := 32
+   );
+   PORT (
+      cfd_discr_p_i        : IN     std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);        --! Inputs from constant-fraction discriminators
+      cfd_discr_n_i        : IN     std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);        --! Input from CFD
+      clk_4x_logic         : IN     std_logic ;                                        --! Rising edge active. By default = 4*40MHz = 160MHz
+      strobe_4x_logic_i    : IN     std_logic ;                                        --! Pulses high once every 4 cycles of clk_4x_logic
+      threshold_discr_p_i  : IN     std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);        --! inputs from threshold comparators
+      threshold_discr_n_i  : IN     std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);        --! inputs from threshold comparators
+      reset_i              : IN     std_logic ;
+      trigger_times_o      : OUT    t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);      --! trigger arrival time ( w.r.t. logic_strobe)
+      trigger_o            : OUT    std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);        --!  Goes high on leading edge of trigger, in sync with clk_4x_logic_i
+      trigger_debug_o      : OUT    std_logic_vector ( ((2*g_NUM_INPUTS)-1) DOWNTO 0); --! Copy of input trigger level. High bits CFD, Low threshold
+      edge_rising_times_o  : OUT    t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);      --! edge arrival time ( w.r.t. logic_strobe)
+      edge_falling_times_o : OUT    t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);      --! edge arrival time ( w.r.t. logic_strobe)
+      edge_rising_o        : OUT    std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);        --! High when rising edge. Syncronous with clk_4x_logic_i
+      edge_falling_o       : OUT    std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);        --! High when falling edge
+      ipbus_clk_i          : IN     std_logic ;
+      ipbus_reset_i        : IN     std_logic ;
+      ipbus_i              : IN     ipb_wbus ;                                         --! Signals from IPBus core TO slave
+      ipbus_o              : OUT    ipb_rbus ;                                         --! signals from slave TO IPBus core
+      clk_16x_logic_i      : IN     std_logic ;                                        --! 640MHz clock ( 16x 40MHz )
+      strobe_16x_logic_i   : IN     std_logic                                          --! Pulses one cycle every 4 of 16x clock.
+   );
+   END COMPONENT triggerInputs;
+   COMPONENT triggerLogic
+   GENERIC (
+      g_NUM_INPUTS  : positive := 4;
+      g_IPBUS_WIDTH : positive := 32
+   );
+   PORT (
+      clk_4x_logic_i      : IN     std_logic ;                                   -- ! Rising edge active
+      ipbus_clk_i         : IN     std_logic ;
+      ipbus_i             : IN     ipb_wbus ;                                    -- Signals from IPBus core TO slave
+      ipbus_reset_i       : IN     std_logic ;
+      logic_reset_i       : IN     std_logic ;                                   -- active high. Synchronous with clk_4x_logic
+      logic_strobe_i      : IN     std_logic ;                                   -- ! Pulses high once every 4 cycles of clk_4x_logic
+      trigger_i           : IN     std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);   -- ! High when trigger from input connector active
+      trigger_times_i     : IN     t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0); --! trigger arrival time
+      veto_i              : IN     std_logic ;                                   -- ! Halts triggers when high
+      trigger_o           : OUT    std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);   -- ! High when trigger from input connector active and enabled
+      trigger_times_o     : OUT    t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0); --! trigger arrival time
+      event_number_o      : OUT    std_logic_vector (g_IPBUS_WIDTH-1 DOWNTO 0);  -- starts at one. Increments for each post_veto_trigger
+      ipbus_o             : OUT    ipb_rbus ;                                    -- signals from slave TO IPBus core
+      post_veto_trigger_o : OUT    std_logic ;                                   -- ! goes high when trigger passes
+      pre_veto_trigger_o  : OUT    std_logic ;
+      trigger_active_o    : OUT    std_logic                                     --! Goes high when triggers are active ( ie. not veoted)
+   );
+   END COMPONENT triggerLogic;
+
+   -- Optional embedded configurations
+   -- pragma synthesis_off
+   FOR ALL : DUTInterfaces USE ENTITY work.DUTInterfaces;
+   FOR ALL : IPBusInterface USE ENTITY work.IPBusInterface;
+   FOR ALL : T0_Shutter_Iface USE ENTITY work.T0_Shutter_Iface;
+   FOR ALL : eventBuffer USE ENTITY work.eventBuffer;
+   FOR ALL : eventFormatter USE ENTITY work.eventFormatter;
+   FOR ALL : i2c_master USE ENTITY work.i2c_master;
+   FOR ALL : logic_clocks USE ENTITY work.logic_clocks;
+   FOR ALL : triggerInputs USE ENTITY work.triggerInputs;
+   FOR ALL : triggerLogic USE ENTITY work.triggerLogic;
+   -- pragma synthesis_on
+
+
+BEGIN
+   -- Architecture concurrent statements
+   -- HDL Embedded Text Block 1 i2c_tristate
+   -- eb1 1
+   i2c_scl_b <= '0' when (s_i2c_scl_enb = '0') else 'Z';
+   i2c_sda_b <= '0' when (s_i2c_sda_enb = '0') else 'Z';
+   
+                               
+
+
+   -- ModuleWare code(v1.12) for instance 'I9' of 'gnd'
+   logic_clocks_reset <= '0';
+
+   -- ModuleWare code(v1.12) for instance 'I11' of 'gnd'
+   spill_i <= '0';
+
+   -- ModuleWare code(v1.12) for instance 'I12' of 'gnd'
+   spill_cnt_i <= (OTHERS => '0');
+
+   -- ModuleWare code(v1.12) for instance 'I13' of 'gnd'
+   shutter_i <= '0';
+
+   -- ModuleWare code(v1.12) for instance 'I14' of 'gnd'
+   shutter_cnt_i <= (OTHERS => '0');
+
+   -- ModuleWare code(v1.12) for instance 'I17' of 'gnd'
+   dout1 <= '0';
+
+   -- ModuleWare code(v1.12) for instance 'I18' of 'gnd'
+   dout <= '0';
+
+   -- ModuleWare code(v1.12) for instance 'I19' of 'merge'
+   gpio_hdr <= dout1 & dout & s_shutter & T0_o;
+
+   -- ModuleWare code(v1.12) for instance 'I8' of 'sor'
+   overall_veto <= buffer_full_o OR veto_o;
+
+   -- ModuleWare code(v1.12) for instance 'I16' of 'sor'
+   s_triggerLogic_reset <= logic_reset OR T0_o;
+
+   -- Instance port mappings.
+   --! @brief Interfaces to Device Under Test (DUT) connectors.
+   --!
+   --! @author David Cussans , David.Cussans@bristol.ac.uk
+   --!
+   --! @date 15:09:50 11/09/12
+   --!
+   --! @version v0.1
+   --!
+   --! @details
+   --! \n\n IPBUS Address map:
+   --! \n (Decodes 4 bits)
+   --! \li 0x00000000 - DUT mask(write). 1 = active , 0 = inactive. Inactive DUT don't contribute to BUSY. One bit per DUT XXXXXXXXXXXXXXXXXXXXXXBA9876543210
+   --! \li 0x00000001 - Ignore DUT busy. 1 = ignore BUSY from this connector
+   --! \li 0x00000002 - Ignore shutter veto. 0 = raising shutter vetos triggers.
+   --! \li 0x00000003 - DUT interface mode, two bits per DUT. Up to 12 inputs  XXXXXXXXBBAA99887766554433221100 mode: 0 = EUDET mode , 1 = synchronous ( LHC / Timepix ) , 2,3=reserved
+   --! \li 0x00000004 - DUT mode modifier: XXXXXXXXBBAA99887766554433221100 in EUDET mode: 0 = standard trigger/busy mode, 1 = raising BUSY outside handshake vetoes triggers
+   --! \li 0x00000008 - DUT mask ( read )
+   --!
+   --! DUT(0) = RJ45 ( J3 )\n
+   --! DUT(1) = HDMI ( J1 ) , furthest from RJ45\n
+   --! DUT(2) = HDMI ( J2) , closest to RJ45\n
+   --!
+   --! <b>Modified by:</b>\n
+   --! -----------------------------------------------------------------------------
+   --! \n\n<b>Last changes:</b>\n
+   -------------------------------------------------------------------------------
+   -- todo  Indicate if the DUT works under AIDA/EUDET style
+   --
+   I0 : DUTInterfaces
+      GENERIC MAP (
+         g_NUM_DUTS    => g_NUM_DUTS,
+         g_IPBUS_WIDTH => g_IPBUS_WIDTH
+      )
+      PORT MAP (
+         clk_4x_logic_i          => clk_4x_logic,
+         strobe_4x_logic_i       => strobe_4x_logic,
+         trigger_counter_i       => trigger_count,
+         trigger_i               => overall_trigger,
+         reset_or_clk_to_dut_i   => T0_o,
+         shutter_to_dut_i        => s_shutter,
+         ipbus_clk_i             => ipbus_clk,
+         ipbus_i                 => ipbw(0),
+         ipbus_reset_i           => ipbus_reset,
+         ipbus_o                 => ipbr(0),
+         busy_from_dut_n_i       => busy_n_i,
+         busy_from_dut_p_i       => busy_p_i,
+         clk_to_dut_n_io         => dut_clk_n_o,
+         clk_to_dut_p_io         => dut_clk_p_o,
+         reset_or_clk_to_dut_n_o => reset_or_clk_n_o,
+         reset_or_clk_to_dut_p_o => reset_or_clk_p_o,
+         trigger_to_dut_n_o      => triggers_n_o,
+         trigger_to_dut_p_o      => triggers_p_o,
+         shutter_to_dut_n_o      => shutter_to_dut_n_o,
+         shutter_to_dut_p_o      => shutter_to_dut_p_o,
+         veto_o                  => veto_o
+      );
+   I4 : IPBusInterface
+      GENERIC MAP (
+         NUM_EXT_SLAVES           => g_NUM_EXT_SLAVES,
+         BUILD_SIMULATED_ETHERNET => g_BUILD_SIMULATED_MAC         --! Set to 1 to build simulated Ethernet interface using Modelsim FLI
+      )
+      PORT MAP (
+         gmii_rx_clk_i    => gmii_rx_clk_i,
+         gmii_rx_dv_i     => gmii_rx_dv_i,
+         gmii_rx_er_i     => gmii_rx_er_i,
+         gmii_rxd_i       => gmii_rxd_i,
+         ipbr_i           => ipbr,
+         sysclk_n_i       => sysclk_n_i,
+         sysclk_p_i       => sysclk_p_i,
+         clocks_locked_o  => leds_o(2),
+         gmii_gtx_clk_o   => gmii_gtx_clk_o,
+         gmii_tx_en_o     => gmii_tx_en_o,
+         gmii_tx_er_o     => gmii_tx_er_o,
+         gmii_txd_o       => gmii_txd_o,
+         ipb_clk_o        => ipbus_clk,
+         ipb_rst_o        => ipbus_reset,
+         ipbw_o           => ipbw,
+         onehz_o          => leds_o(3),
+         phy_rstb_o       => phy_rstb_o,
+         dip_switch_i     => dip_switch_i,
+         clk_logic_xtal_o => clk_logic_xtal
+      );
+   I10 : T0_Shutter_Iface
+      PORT MAP (
+         clk_4x_i      => clk_4x_logic,
+         clk_4x_strobe => strobe_4x_logic,
+         T0_o          => T0_o,
+         shutter_o     => s_shutter,
+         ipbus_clk_i   => ipbus_clk,
+         ipbus_i       => ipbw(7),
+         ipbus_o       => ipbr(7)
+      );
+   I5 : eventBuffer
+      GENERIC MAP (
+         g_EVENT_DATA_WIDTH   => g_EVENT_DATA_WIDTH,
+         g_IPBUS_WIDTH        => g_IPBUS_WIDTH,
+         g_READ_COUNTER_WIDTH => 14
+      )
+      PORT MAP (
+         clk_4x_logic_i    => clk_4x_logic,
+         data_strobe_i     => data_strobe,
+         event_data_i      => event_data,
+         ipbus_clk_i       => ipbus_clk,
+         ipbus_i           => ipbw(3),
+         ipbus_reset_i     => ipbus_reset,
+         strobe_4x_logic_i => strobe_4x_logic,
+         rst_fifo_o        => rst_fifo_o,
+         buffer_full_o     => buffer_full_o,
+         ipbus_o           => ipbr(3),
+         logic_reset_i     => logic_reset
+      );
+   --! @brief Takes the data delivered on each trigger and turns it into 64-bit
+   --!        words to push into event buffer
+   --!
+   --!
+   --! @author David Cussans , David.Cussans@bristol.ac.uk
+   --!
+   --! @date 15:10:35 11/09/12
+   --!
+   --! @version v0.1
+   --!
+   --! @details
+   --! \n\n IPBus address:
+   --! \n (Decodes 3 bits)
+   --! \li 000 - read/write enable data recording.
+   --! \li 001 - write = reset timestamp,
+   --! \li 010 - read = current timestamp (low  32-bits)
+   --! \li 011 - read = current timestamp (high 16-bits)
+   --!
+   --! -----------------------------------------------------------------------------
+   --! \n\n<b>Last changes:</b>\n
+   --! Modified by: Alvaro Dosil , alvaro.dosil@usc.es \n
+   --! 27/Feb/14 DGC Change "If" when setting s_word2 to a case ... generate. Questasim
+   --!               doesn't like having an if that can take an array out of bounds.
+   --!-----------------------------------------------------------------------------
+   --! @todo Add more input data: \n
+   --! a) shutter signals. One per DUT. ?? \n
+   --! b) input levels ( for recording edge data ). Record rising and falling edges\n
+   --! c) veto levels. One per DUT. Record rising and falling edges.\n
+   --! \n
+   --! Add backpressure output if short FIFOs fill up? But many inputs won't
+   --! respond - e.g. scintillator inputs. This data will be lost....
+   --! some ports are redundant - e.g. trigger counter, others confusingly
+   --! labelled. Sort this out..
+   --------------------------------------------------------------------------------
+   I2 : eventFormatter
+      GENERIC MAP (
+         g_EVENT_DATA_WIDTH   => g_EVENT_DATA_WIDTH,
+         g_IPBUS_WIDTH        => g_IPBUS_WIDTH,
+         g_COUNTER_TRIG_WIDTH => g_IPBUS_WIDTH,
+         g_COUNTER_WIDTH      => 12,
+         g_EVTTYPE_WIDTH      => 4,                         --! Width of the event type word
+         --g_NUM_INPUT_TYPES     : positive := 4;               -- Number of different input types (trigger, shutter, edge...)
+         g_NUM_EDGE_INPUTS    => g_NUM_EDGE_INPUTS,         --! Number of edge inputs
+         g_NUM_TRIG_INPUTS    => g_NUM_TRIG_INPUTS          --! Number of trigger inputs
+      )
+      PORT MAP (
+         clk_4x_logic_i         => clk_4x_logic,
+         ipbus_clk_i            => ipbus_clk,
+         logic_strobe_i         => strobe_4x_logic,
+         logic_reset_i          => logic_reset,
+         rst_fifo_i             => rst_fifo_o,
+         buffer_full_i          => buffer_full_o,
+         trigger_i              => overall_trigger,
+         trigger_times_i        => postVetoTrigger_times,
+         trigger_inputs_fired_i => postVetotrigger,
+         trigger_cnt_i          => trigger_count,
+         shutter_i              => shutter_i,
+         shutter_cnt_i          => shutter_cnt_i,
+         spill_i                => spill_i,
+         spill_cnt_i            => spill_cnt_i,
+         edge_rise_i            => s_edge_rising,
+         edge_fall_i            => s_edge_falling,
+         edge_rise_time_i       => s_edge_rise_times,
+         edge_fall_time_i       => s_edge_fall_times,
+         ipbus_i                => ipbw(6),
+         ipbus_o                => ipbr(6),
+         data_strobe_o          => data_strobe,
+         event_data_o           => event_data,
+         reset_timestamp_i      => T0_o,
+         reset_timestamp_o      => OPEN
+      );
+   I7 : i2c_master
+      PORT MAP (
+         i2c_scl_i     => i2c_scl_b,
+         i2c_sda_i     => i2c_sda_b,
+         ipbus_clk_i   => ipbus_clk,
+         ipbus_i       => ipbw(5),
+         ipbus_reset_i => ipbus_reset,
+         i2c_scl_enb_o => s_i2c_scl_enb,
+         i2c_sda_enb_o => s_i2c_sda_enb,
+         ipbus_o       => ipbr(5)
+      );
+   I6 : logic_clocks
+      GENERIC MAP (
+         g_USE_EXTERNAL_CLK => 0
+      )
+      PORT MAP (
+         ipbus_clk_i           => ipbus_clk,
+         ipbus_i               => ipbw(4),
+         ipbus_reset_i         => ipbus_reset,
+         Reset_i               => logic_clocks_reset,
+         clk_logic_xtal_i      => clk_logic_xtal,
+         clk_16x_logic_o       => clk_16x_logic,
+         clk_4x_logic_o        => clk_4x_logic,
+         ipbus_o               => ipbr(4),
+         strobe_16x_logic_o    => strobe_16x_logic,
+         strobe_4x_logic_o     => strobe_4x_logic,
+         extclk_p_b            => extclk_p_b,
+         extclk_n_b            => extclk_n_b,
+         DUT_clk_o             => OPEN,
+         logic_clocks_locked_o => leds_o(1),
+         logic_reset_o         => logic_reset
+      );
+   I1 : triggerInputs
+      GENERIC MAP (
+         g_NUM_INPUTS  => g_NUM_TRIG_INPUTS,
+         g_IPBUS_WIDTH => 32
+      )
+      PORT MAP (
+         cfd_discr_p_i        => cfd_discr_p_i,
+         cfd_discr_n_i        => cfd_discr_n_i,
+         clk_4x_logic         => clk_4x_logic,
+         strobe_4x_logic_i    => strobe_4x_logic,
+         threshold_discr_p_i  => threshold_discr_p_i,
+         threshold_discr_n_i  => threshold_discr_n_i,
+         reset_i              => logic_reset,
+         trigger_times_o      => trigger_times,
+         trigger_o            => triggers,
+         trigger_debug_o      => OPEN,
+         edge_rising_times_o  => s_edge_rise_times,
+         edge_falling_times_o => s_edge_fall_times,
+         edge_rising_o        => s_edge_rising,
+         edge_falling_o       => s_edge_falling,
+         ipbus_clk_i          => ipbus_clk,
+         ipbus_reset_i        => ipbus_reset,
+         ipbus_i              => ipbw(1),
+         ipbus_o              => ipbr(1),
+         clk_16x_logic_i      => clk_16x_logic,
+         strobe_16x_logic_i   => strobe_16x_logic
+      );
+   I3 : triggerLogic
+      GENERIC MAP (
+         g_NUM_INPUTS  => g_NUM_TRIG_INPUTS,
+         g_IPBUS_WIDTH => g_IPBUS_WIDTH
+      )
+      PORT MAP (
+         clk_4x_logic_i      => clk_4x_logic,
+         ipbus_clk_i         => ipbus_clk,
+         ipbus_i             => ipbw(2),
+         ipbus_reset_i       => ipbus_reset,
+         logic_reset_i       => s_triggerLogic_reset,
+         logic_strobe_i      => strobe_4x_logic,
+         trigger_i           => triggers,
+         trigger_times_i     => trigger_times,
+         veto_i              => overall_veto,
+         trigger_o           => postVetotrigger,
+         trigger_times_o     => postVetoTrigger_times,
+         event_number_o      => trigger_count,
+         ipbus_o             => ipbr(2),
+         post_veto_trigger_o => overall_trigger,
+         pre_veto_trigger_o  => OPEN,
+         trigger_active_o    => leds_o(0)
+      );
+
+END ARCHITECTURE struct;
diff --git a/legacy/TLU_v1e/.svn/entries b/legacy/TLU_v1e/.svn/entries
new file mode 100644
index 00000000..b806c374
--- /dev/null
+++ b/legacy/TLU_v1e/.svn/entries
@@ -0,0 +1,28 @@
+10
+
+dir
+0
+https://app.deveo.com/universityofbristol/projects/fmc_tlu/repositories/subversion/AIDA/TLU_v1e
+https://app.deveo.com/universityofbristol/projects/fmc_tlu/repositories/subversion/AIDA
+add
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+a80b426a-c11e-11e6-a987-c3d832fc0b90
+
diff --git a/legacy/TLU_v1e/constraints/I2C_constr.xdc b/legacy/TLU_v1e/constraints/I2C_constr.xdc
new file mode 100644
index 00000000..9990653c
--- /dev/null
+++ b/legacy/TLU_v1e/constraints/I2C_constr.xdc
@@ -0,0 +1,26 @@
+set_property IOSTANDARD LVCMOS33 [get_ports i2c_reset]
+set_property PACKAGE_PIN C2 [get_ports i2c_reset]
+
+set_property IOSTANDARD LVCMOS33 [get_ports i2c_scl_b]
+set_property PACKAGE_PIN N17 [get_ports i2c_scl_b]
+
+set_property IOSTANDARD LVCMOS33 [get_ports i2c_sda_b]
+set_property PACKAGE_PIN P18 [get_ports i2c_sda_b]
+
+
+
+create_clock -period 25.000 -name sysclk_40_i_p -waveform {0.000 12.500} [get_ports sysclk_40_i_p]
+
+
+#Define clock groups and make them asynchronous with each other
+set_clock_groups -asynchronous -group {clk_enclustra I I_1 mmcm_n_10 mmcm_n_6 mmcm_n_8 clk_ipb_i} -group {sysclk_40_i_p pll_base_inst_n_2 s_clk160}
+
+# -------------------------------------------------------------------------------------------------
+
+
+#DEBUG PROBES
+
+
+
+
+
diff --git a/legacy/TLU_v1e/constraints/TLU_enclustra_v1e.xdc b/legacy/TLU_v1e/constraints/TLU_enclustra_v1e.xdc
new file mode 100644
index 00000000..455961ae
--- /dev/null
+++ b/legacy/TLU_v1e/constraints/TLU_enclustra_v1e.xdc
@@ -0,0 +1,109 @@
+## Trigger inputs
+
+#set_property IOSTANDARD LVCMOS18 [get_ports {threshold_discr_p_i[*]}]
+#set_property PACKAGE_PIN J4 [get_ports {threshold_discr_p_i[4]}]
+#set_property PACKAGE_PIN H1 [get_ports {threshold_discr_p_i[5]}]
+
+#set_property IOSTANDARD LVCMOS33 [get_ports {threshold_discr_n_i[*]}]
+set_property PACKAGE_PIN B1 [get_ports {threshold_discr_p_i[0]}]
+set_property PACKAGE_PIN A1 [get_ports {threshold_discr_n_i[0]}]
+set_property PACKAGE_PIN C4 [get_ports {threshold_discr_p_i[1]}]
+set_property PACKAGE_PIN B4 [get_ports {threshold_discr_n_i[1]}]
+set_property PACKAGE_PIN K2 [get_ports {threshold_discr_p_i[2]}]
+set_property PACKAGE_PIN K1 [get_ports {threshold_discr_n_i[2]}]
+set_property PACKAGE_PIN C6 [get_ports {threshold_discr_p_i[3]}]
+set_property PACKAGE_PIN C5 [get_ports {threshold_discr_n_i[3]}]
+set_property PACKAGE_PIN J4 [get_ports {threshold_discr_p_i[4]}]
+set_property PACKAGE_PIN H4 [get_ports {threshold_discr_n_i[4]}]
+set_property PACKAGE_PIN G1 [get_ports {threshold_discr_n_i[5]}]
+set_property PACKAGE_PIN H1 [get_ports {threshold_discr_p_i[5]}]
+
+## Miscellaneous I/O
+set_property IOSTANDARD LVCMOS33 [get_ports clk_gen_rst]
+set_property PACKAGE_PIN C1 [get_ports clk_gen_rst]
+set_property IOSTANDARD LVCMOS33 [get_ports gpio]
+set_property PACKAGE_PIN F6 [get_ports gpio]
+
+
+## Crystal clock
+set_property IOSTANDARD LVDS_25 [get_ports sysclk_40_i_p]
+set_property PACKAGE_PIN T4 [get_ports sysclk_40_i_n]
+set_property PACKAGE_PIN T5 [get_ports sysclk_40_i_p]
+
+## Output clock (currently not working so set to 0)
+set_property IOSTANDARD LVCMOS33 [get_ports sysclk_50_o_p]
+set_property PACKAGE_PIN E3 [get_ports sysclk_50_o_p]
+set_property IOSTANDARD LVCMOS33 [get_ports sysclk_50_o_n]
+set_property PACKAGE_PIN D3 [get_ports sysclk_50_o_n]
+
+## Inputs/Outputs for DUTs
+set_property IOSTANDARD LVCMOS33 [get_ports {busy_o[*]}]
+set_property PACKAGE_PIN R7 [get_ports {busy_o[0]}]
+set_property PACKAGE_PIN U4 [get_ports {busy_o[1]}]
+set_property PACKAGE_PIN R8 [get_ports {busy_o[2]}]
+set_property PACKAGE_PIN K5 [get_ports {busy_o[3]}]
+
+set_property IOSTANDARD LVCMOS33 [get_ports {triggers_o[*]}]
+set_property PACKAGE_PIN R6 [get_ports {triggers_o[0]}]
+set_property PACKAGE_PIN P2 [get_ports {triggers_o[1]}]
+set_property PACKAGE_PIN R1 [get_ports {triggers_o[2]}]
+set_property PACKAGE_PIN U1 [get_ports {triggers_o[3]}]
+
+set_property IOSTANDARD LVCMOS33 [get_ports {cont_o[*]}]
+set_property PACKAGE_PIN N5 [get_ports {cont_o[0]}]
+set_property PACKAGE_PIN P4 [get_ports {cont_o[1]}]
+set_property PACKAGE_PIN M6 [get_ports {cont_o[2]}]
+set_property PACKAGE_PIN L6 [get_ports {cont_o[3]}]
+
+set_property IOSTANDARD LVCMOS33 [get_ports {spare_o[*]}]
+set_property PACKAGE_PIN L1 [get_ports {spare_o[0]}]
+set_property PACKAGE_PIN M4 [get_ports {spare_o[1]}]
+set_property PACKAGE_PIN N2 [get_ports {spare_o[2]}]
+set_property PACKAGE_PIN M3 [get_ports {spare_o[3]}]
+
+set_property IOSTANDARD LVCMOS33 [get_ports {dut_clk_o[*]}]
+set_property PACKAGE_PIN K3 [get_ports {dut_clk_o[0]}]
+set_property PACKAGE_PIN F4 [get_ports {dut_clk_o[1]}]
+set_property PACKAGE_PIN E2 [get_ports {dut_clk_o[2]}]
+set_property PACKAGE_PIN G4 [get_ports {dut_clk_o[3]}]
+
+set_property IOSTANDARD LVCMOS33 [get_ports {cont_i[*]}]
+set_property PACKAGE_PIN P5 [get_ports {cont_i[0]}]
+set_property PACKAGE_PIN P3 [get_ports {cont_i[1]}]
+set_property PACKAGE_PIN N6 [get_ports {cont_i[2]}]
+set_property PACKAGE_PIN L5 [get_ports {cont_i[3]}]
+
+set_property IOSTANDARD LVCMOS33 [get_ports {spare_i[*]}]
+set_property PACKAGE_PIN M1 [get_ports {spare_i[0]}]
+set_property PACKAGE_PIN N4 [get_ports {spare_i[1]}]
+set_property PACKAGE_PIN N1 [get_ports {spare_i[2]}]
+set_property PACKAGE_PIN M2 [get_ports {spare_i[3]}]
+
+set_property IOSTANDARD LVCMOS33 [get_ports {triggers_i[*]}]
+set_property PACKAGE_PIN R5 [get_ports {triggers_i[0]}]
+set_property PACKAGE_PIN R2 [get_ports {triggers_i[1]}]
+set_property PACKAGE_PIN T1 [get_ports {triggers_i[2]}]
+set_property PACKAGE_PIN V1 [get_ports {triggers_i[3]}]
+
+set_property IOSTANDARD LVCMOS33 [get_ports {busy_i[*]}]
+set_property PACKAGE_PIN T6 [get_ports {busy_i[0]}]
+set_property PACKAGE_PIN U3 [get_ports {busy_i[1]}]
+set_property PACKAGE_PIN T8 [get_ports {busy_i[2]}]
+set_property PACKAGE_PIN L4 [get_ports {busy_i[3]}]
+
+set_property IOSTANDARD LVCMOS33 [get_ports {dut_clk_i[*]}]
+set_property PACKAGE_PIN L3 [get_ports {dut_clk_i[0]}]
+set_property PACKAGE_PIN F3 [get_ports {dut_clk_i[1]}]
+set_property PACKAGE_PIN D2 [get_ports {dut_clk_i[2]}]
+set_property PACKAGE_PIN G3 [get_ports {dut_clk_i[3]}]
+
+# -------------------------------------------------------------------------------------------------
+
+
+
+
+set_input_delay -clock [get_clocks [get_clocks -of_objects [get_pins I4/pll_base_inst/CLKOUT0]]] -rise -min 0.300 [get_ports -regexp -filter { NAME =~  ".*thresh.*" && DIRECTION == "IN" }]
+set_input_delay -clock [get_clocks [get_clocks -of_objects [get_pins I4/pll_base_inst/CLKOUT0]]] -rise -max 0.400 [get_ports -regexp -filter { NAME =~  ".*thresh.*" && DIRECTION == "IN" }]
+
+
+set_property BITSTREAM.CONFIG.SPI_BUSWIDTH 4 [current_design]
diff --git a/legacy/TLU_v1e/constraints/enclustra_ax3_pm3.tcl b/legacy/TLU_v1e/constraints/enclustra_ax3_pm3.tcl
new file mode 100644
index 00000000..7fd31b4c
--- /dev/null
+++ b/legacy/TLU_v1e/constraints/enclustra_ax3_pm3.tcl
@@ -0,0 +1,52 @@
+set_property BITSTREAM.GENERAL.COMPRESS TRUE [current_design]
+
+proc false_path {patt clk} {
+    set p [get_ports -quiet $patt -filter {direction != out}]
+    if {[llength $p] != 0} {
+        set_input_delay 0 -clock [get_clocks $clk] [get_ports $patt -filter {direction != out}]
+        set_false_path -from [get_ports $patt -filter {direction != out}]
+    }
+    set p [get_ports -quiet $patt -filter {direction != in}]
+    if {[llength $p] != 0} {
+       	set_output_delay 0 -clock [get_clocks $clk] [get_ports $patt -filter {direction != in}]
+	    set_false_path -to [get_ports $patt -filter {direction != in}]
+	}
+}
+
+# System clock (50MHz)
+#create_clock -period 25.000 -name sysclk [get_ports sysclk] 
+create_clock -period 20.000 -name clk_enclustra [get_ports clk_enclustra]
+
+set_false_path -through [get_pins infra/clocks/rst_reg/Q]
+set_false_path -through [get_nets infra/clocks/nuke_i]
+
+set_property IOSTANDARD LVCMOS33 [get_ports clk_enclustra]
+set_property PACKAGE_PIN P17 [get_ports clk_enclustra]
+
+set_property IOSTANDARD LVCMOS33 [get_ports {leds[*]}]
+set_property SLEW SLOW [get_ports {leds[*]}]
+set_property PACKAGE_PIN M16 [get_ports {leds[0]}]
+set_property PACKAGE_PIN M17 [get_ports {leds[1]}]
+set_property PACKAGE_PIN L18 [get_ports {leds[2]}]
+set_property PACKAGE_PIN M18 [get_ports {leds[3]}]
+false_path {leds[*]} clk_enclustra
+
+set_property IOSTANDARD LVCMOS33 [get_ports {rgmii_* phy_rstn}]
+set_property PACKAGE_PIN R18 [get_ports {rgmii_txd[0]}]
+set_property PACKAGE_PIN T18 [get_ports {rgmii_txd[1]}]
+set_property PACKAGE_PIN U17 [get_ports {rgmii_txd[2]}]
+set_property PACKAGE_PIN U18 [get_ports {rgmii_txd[3]}]
+set_property PACKAGE_PIN T16 [get_ports {rgmii_tx_ctl}]
+set_property PACKAGE_PIN N16 [get_ports {rgmii_txc}]
+set_property PACKAGE_PIN U16 [get_ports {rgmii_rxd[0]}]
+set_property PACKAGE_PIN V17 [get_ports {rgmii_rxd[1]}]
+set_property PACKAGE_PIN V15 [get_ports {rgmii_rxd[2]}]
+set_property PACKAGE_PIN V16 [get_ports {rgmii_rxd[3]}]
+set_property PACKAGE_PIN R16 [get_ports {rgmii_rx_ctl}]
+set_property PACKAGE_PIN T14 [get_ports {rgmii_rxc}]
+set_property PACKAGE_PIN M13 [get_ports {phy_rstn}]
+false_path {phy_rstn} clk_enclustra
+
+# -------------------------------------------------------------------------------------------------
+
+
diff --git a/legacy/TLU_v1e/documents/FMC_TLU_TOPLEVEL_E.SCH.1.pdf b/legacy/TLU_v1e/documents/FMC_TLU_TOPLEVEL_E.SCH.1.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..e1c970af85b9ad060a0119273d28ddc4febc18e7
GIT binary patch
literal 1476373
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%0Ap6_14c=4RR
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
z%0D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%0Dbx=iN?j%|t?X)p>ujB(5*
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%0A&fTq_!Zt_y
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%0D){15hUF+
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%0ABHYI9T6ZgZuOUw^w;
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
BpGW`z

literal 0
HcmV?d00001

diff --git a/legacy/TLU_v1e/documents/TLU_v1E_TestPoints.pdf b/legacy/TLU_v1e/documents/TLU_v1E_TestPoints.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..4e7a2b4e210115969169f68205e5b3e6bcfd2f0e
GIT binary patch
literal 358019
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

literal 0
HcmV?d00001

diff --git a/legacy/TLU_v1e/hdl/GPL_doxygen_header.vhdl b/legacy/TLU_v1e/hdl/GPL_doxygen_header.vhdl
new file mode 100644
index 00000000..d9fdc487
--- /dev/null
+++ b/legacy/TLU_v1e/hdl/GPL_doxygen_header.vhdl
@@ -0,0 +1,77 @@
+--! @file dtype_fds.vhdl
+--
+-------------------------------------------------------------------------------
+-- --
+-- (c) University of Bristol, High Energy Physics Group --
+-- --
+-------------------------------------------------------------------------------
+--
+--
+-- This file is part of IPBus.
+--
+--    IPBus is free software: you can redistribute it and/or modify
+--    it under the terms of the GNU General Public License as published by
+--    the Free Software Foundation, either version 3 of the License, or
+--    (at your option) any later version.
+--
+--    IPBus is distributed in the hope that it will be useful,
+--    but WITHOUT ANY WARRANTY; without even the implied warranty of
+--    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+--    GNU General Public License for more details.
+--
+--    You should have received a copy of the GNU General Public License
+--    along with IPBus.  If not, see <http://www.gnu.org/licenses/>.
+--
+--    IPBus is free software: you can redistribute it and/or modify
+--    it under the terms of the GNU General Public License as published by
+--    the Free Software Foundation, either version 3 of the License, or
+--    (at your option) any later version.
+--
+--    IPBus is distributed in the hope that it will be useful,
+--    but WITHOUT ANY WARRANTY; without even the implied warranty of
+--    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+--    GNU General Public License for more details.
+--
+--    You should have received a copy of the GNU General Public License
+--    along with IPBus.  If not, see <http://www.gnu.org/licenses/>.
+--
+--
+--! Standard library
+library IEEE;
+
+-- Standard logic defintions.
+use IEEE.STD_LOGIC_1164.all;
+
+--
+-- unit name: dtype_fds
+--
+--! @brief   Aims to be the same as the Xilinx "FDS" primitive - D-Type flip-flop
+--
+--
+--! @author David.Cussans@bristol.ac.uk
+--
+--! @date 7/May/2011
+--
+--! @version 0.1
+--
+--! @details -- Modified from D-type example in VHDL book.
+--! See Xilinx spartan6_scm.pdf
+--! Output goes high when input goes high ( asyncnronous to system clock).
+--
+--! <b>Dependencies:</b>\n
+--!
+--! <b>References:</b>\n
+--! <reference one> \n
+--! <reference two>
+--!
+--! <b>Modified by:</b>\n
+--! Author: <name>
+-------------------------------------------------------------------------------
+--! \n\n<b>Last changes:</b>\n
+--! <date> <initials> <log>\n
+--! <extended description>
+-------------------------------------------------------------------------------
+--! @todo <next thing to do> \n
+--! <another thing to do> \n
+--
+-------------------------------------------------------------------------------
diff --git a/legacy/TLU_v1e/hdl/GPP_rtl.vhd b/legacy/TLU_v1e/hdl/GPP_rtl.vhd
new file mode 100644
index 00000000..bc02a5ef
--- /dev/null
+++ b/legacy/TLU_v1e/hdl/GPP_rtl.vhd
@@ -0,0 +1,312 @@
+--=============================================================================
+--! @file GPP_rtl.vhd
+--=============================================================================
+--
+-------------------------------------------------------------------------------
+-- --
+-- University of Santiago de Compostela, High Energy Physics Group.
+-- --
+------------------------------------------------------------------------------- --
+-- 
+--
+--! @brief GPP - General purpose pulser. Generates a sycronous custom pulse \n
+--! IPBus address map:\n
+--
+--! @author Alvaro Dosil , alvaro.dosil@usc.es
+--
+--! @date 15:42:31 01/15/2013 
+--
+--! @version v0.1
+--
+--! @details
+--!
+--!
+--! <b>Dependencies:</b>\n
+--!
+--! <b>References:</b>\n
+--!
+--! <b>Modified by: 
+--! Author: 
+-------------------------------------------------------------------------------
+--! \n\n<b>Last changes:</b>\n
+-------------------------------------------------------------------------------
+--! @todo <next thing to do> \n
+--! <another thing to do> \n
+--
+--------------------------------------------------------------------------------
+library ieee;
+use ieee.std_logic_1164.all;
+use ieee.numeric_std.all;
+
+entity GPP is
+   GENERIC( 
+      g_IPBUS_WIDTH      : positive := 32
+   );
+	PORT( clk_i       		: IN     std_logic;                                          		--! Rising edge active
+			Enable_i          : IN     std_logic;                                          --
+			Reset_i           : IN     std_logic;                                          --
+			RstPulsCnt_i     	: IN     std_logic;                                          -- Reset pulse counter
+			Trigger_i         : IN     std_logic;                                          -- Trigger input signal
+			NMaxPulses_i      : IN     std_logic_vector(g_IPBUS_WIDTH-1 downto 0);         -- Max number of pulses
+			SuDTime_i         : IN     std_logic_vector(g_IPBUS_WIDTH-1 downto 0);         -- Startup dead time
+			PulsLen_i     		: IN     std_logic_vector(g_IPBUS_WIDTH-1 downto 0);         -- Pulse length
+		   IpDTime_i         : IN     std_logic_vector(g_IPBUS_WIDTH-1 downto 0);         -- Interpulse dead time
+			RearmTime_i       : IN     std_logic_vector(g_IPBUS_WIDTH-1 downto 0);         -- Time before rearm after reach the max number of pulses
+			Force_PullDown_i  : IN     std_logic;                                          -- Force pull down
+			WU_i              : IN     std_logic;                                          -- Output trigger signal with update
+			PulseDelay_i      : IN     std_logic_vector(g_IPBUS_WIDTH-1 downto 0);    		 -- Pulse delay
+	      event_number_o    : OUT    std_logic_vector(g_IPBUS_WIDTH-1 downto 0);         -- Event number
+			MaxPulses_o       : OUT    std_logic;                                          -- Maximun number of pulses reached
+			Pulse_o           : OUT    std_logic;                                          --! pulse output
+			Pulse_d_o         : OUT    std_logic                                           --! pulse output delayed
+			);
+end GPP;
+
+architecture rtl of GPP is
+   --! FSM state values
+   type state_values is (st0, st1, st2, st3, st4, st5, st6);
+	signal pres_state, next_state: state_values;
+	
+	signal s_PulsCnt_en  		: std_logic := '0';                                             --! Pulse counter enable
+	signal s_RstPulsCnt       	: std_logic := '0';                                             --! Reset pulse counter
+	signal s_RstPulsCnt_int   	: std_logic := '0';                                             --! Reset pulse counter internal signal
+	signal s_PulsLen		      : std_logic_vector(g_IPBUS_WIDTH-1 downto 0);                   --! Pulse Length
+	signal s_PulsCnt     		: unsigned(g_IPBUS_WIDTH-1 downto 0) := (others => '0');        --! Pulse counter value
+	signal s_MaxPulses         : std_logic := '0';                                             --! Max number of pulses reached
+	signal s_Pulse             : std_logic := '0';                                             --! Active pulse signal
+	signal s_Pulse_d           : std_logic_vector(g_IPBUS_WIDTH-1 downto 0) := (others=>'0');  --! Active pulse signal delayed
+   
+	signal s_load_SuDTime      : std_logic := '1';                                             --! Counter load signal
+	signal s_SuDTime 				: std_logic_vector(g_IPBUS_WIDTH-1 downto 0);                   --! Startup dead time counter
+	signal EOSDT               : std_logic := '0';                                             --! End of startup dead time signal
+	
+	signal s_load_PulsLen     : std_logic := '1';                                           	--! Counter load
+	signal EOP                 : std_logic := '0';                                             --! End of pulse length signal
+	
+	signal s_load_IpDTime      : std_logic := '1';                                             --! Counter load signal
+	signal s_IpDTime 				: std_logic_vector(g_IPBUS_WIDTH-1 downto 0);                   --! Interpulse dead time counter
+	signal EOIDT               : std_logic := '0';                                             --! End of interpulse dead time signal
+	
+	signal s_load_RearmTime    : std_logic := '1';                                             --! Rearm counter load signal
+	signal s_RearmLen     		: std_logic_vector(g_IPBUS_WIDTH-1 downto 0);                   --! Startup dead time counter
+	signal EOREARM             : std_logic := '0';                                             --! End of startup dead time signal
+
+begin
+	-----------------------------------------------------------------------------
+	-- Counters
+	-----------------------------------------------------------------------------
+	--! Startup dead time counter
+   c_startup_dtime : entity work.CounterDown
+	generic map(
+		MAX_WIDTH => g_IPBUS_WIDTH
+	)
+	port map( 
+		Clk		=> clk_i,
+		Reset		=> '0',
+		Load 		=> s_load_SuDTime,
+		InitVal 	=> std_logic_vector(unsigned(s_SuDTime)-1),
+		Count		=> open,
+		Q 			=> EOSDT
+	);
+	s_SuDTime <= x"00000001" when SuDTime_i = x"00000000"    -- At least one clock cycle pulse is generated
+	             else SuDTime_i;
+	
+	--! Pulse time counter
+   c_pulse_time : entity work.CounterDown
+	generic map(
+		MAX_WIDTH => g_IPBUS_WIDTH
+	)
+	port map( 
+		Clk		=> clk_i,
+		Reset		=> '0',
+		Load 		=> s_load_PulsLen,
+		InitVal 	=> std_logic_vector(unsigned(s_PulsLen)-1),
+		Count		=> open,
+		Q 			=> EOP
+	);
+	s_PulsLen <= x"00000001" when PulsLen_i = x"00000000"    -- At least one clock cycle pulse is generated
+	             else PulsLen_i;
+	
+	--! Interpulse dead time counter
+   c_interpulse_dtime : entity work.CounterDown
+	generic map(
+		MAX_WIDTH => g_IPBUS_WIDTH
+	)
+	port map( 
+		Clk		=> clk_i,
+		Reset		=> '0',
+		Load 		=> s_load_IpDTime,
+		InitVal 	=> std_logic_vector(unsigned(s_IpDTime)-1),
+		Count		=> open,
+		Q 			=> EOIDT
+	);
+	s_IpDTime <= x"00000001" when IpDTime_i = x"00000000"    -- At least one clock cycle pulse is generated
+	             else IpDTime_i;
+	
+	--! Rearm time after the max pulses reached
+   c_rearm_dtime : entity work.CounterDown
+	generic map(
+		MAX_WIDTH => g_IPBUS_WIDTH
+	)
+	port map( 
+		Clk		=> clk_i,
+		Reset		=> '0',
+		Load 		=> s_load_RearmTime,
+		InitVal 	=> std_logic_vector(unsigned(s_RearmLen)-1),
+		Count		=> open,
+		Q 			=> EOREARM
+	);
+	s_RearmLen <= x"00000001" when RearmTime_i = x"00000000"    -- At least one clock cycle pulse is generated
+						else RearmTime_i;
+			 
+
+	--! FSM register
+	statereg: process(clk_i, Enable_i, Reset_i)
+	begin
+		if Enable_i = '0'  then 
+			pres_state <= st0;            -- Move to st0 - INITIAL STATE
+      
+		elsif Reset_i = '1' then
+			pres_state <= st0;            -- Move to st0 - INITIAL STATE
+        
+		elsif rising_edge(clk_i) then
+			pres_state <= next_state;     -- Move to next state
+        
+		end if;
+	end process statereg;
+
+
+   --! FSM combinational block
+	fsm: process(pres_state, Enable_i, Reset_i, Trigger_i, s_MaxPulses, EOP, EOSDT, EOIDT, Force_PullDown_i)
+	begin
+	  next_state <= pres_state;
+	  -- Default values
+	  s_Pulse          	<= '0';
+	  s_load_SuDTime     <= '1';
+	  s_load_PulsLen 		<= '1';
+	  s_load_IpDTime     <= '1';
+	  s_load_RearmTime	<= '1';
+	  s_RstPulsCnt_int   <= '0';
+  
+     case pres_state is
+	  
+	    -- st0 - INITIAL STATE
+		 when st0=>
+         if (Enable_i = '1') and (Reset_i = '0') then 
+           next_state <= st1;            -- Next state is "st1 - IDLE"
+         end if;
+       
+		 -- st1 - IDLE STATE
+       when st1=>
+         if s_MaxPulses = '1' then
+           next_state <= st5;            -- Next state is "st5 - NMAX PULSES REACHED"
+         else
+           if Trigger_i = '1' and Force_PullDown_i = '0' then 
+             if (to_integer(unsigned(SuDTime_i)) = 0) then
+               next_state <= st3;        -- Next state is "st3 - PULSE"
+             else
+               next_state <= st2;        -- Next state is "st2 - STARTUP DEAD-TIME"
+             end if; 
+           end if;
+         end if;
+		 
+		 -- st2 - STARTUP DEAD-TIME
+       when st2=>
+         s_load_SuDTime <= '0';
+           if EOSDT = '1' then
+             next_state <= st3;          -- Next state is "st3 - PULSE"
+           end if;
+		
+		 -- st3 - PULSE
+       when st3=>
+         s_Pulse <= '1';
+         s_load_PulsLen <= '0';
+				
+         if (EOP = '1') or (Force_PullDown_i = '1')then
+           if (to_integer(unsigned(IpDTime_i)) = 0) then
+             next_state <= st1;         -- Next state is "st1 - IDLE"
+           else
+             next_state <= st4;         -- Next state is "st4 - INTERPULSE DEAD-TIME"
+           end if;
+         end if;
+				
+         if Trigger_i = '1' then
+           if (WU_i = '1') then
+             next_state <= st6;         -- Next state is "st6 - RELOAD PULSE TIMER"
+           end if;	
+         end if;
+       
+		 
+		 -- st4 - INTERPULSE DEAD-TIME
+       when st4=>
+         s_load_IpDTime <= '0';
+         if EOIDT = '1' then
+           next_state <= st1;            -- Next state is "st1 - IDLE"
+         end if;
+				
+		 -- st5 - NMAX PULSES REACHED
+       when st5=>
+		   s_load_RearmTime <= '0';
+			if EOREARM = '1' then
+			  next_state <= st1;            -- Next state is "st1 - IDLE"
+			  s_RstPulsCnt_int <= '1';
+			end if;
+			
+		 -- st6 - RELOAD PULSE TIMER
+       when st6=>
+         s_Pulse <= '1';
+         next_state <= st3;              -- Next state is "st3 - PULSE"
+			
+--       when others=>
+--         next_state<=st0;                -- Next state is "st0 - INITIAL STATE"
+     
+	  end case;
+	
+	end process fsm;    
+	
+	-- Pulse reg
+	p_reg_pulse : process ( clk_i , Reset_i )
+   begin  
+	  if Reset_i = '1' then
+	    s_Pulse_d <= (others => '0');
+	  
+	  elsif rising_edge(clk_i) then
+       for i in 0 to g_IPBUS_WIDTH-2 loop
+         s_Pulse_d(i+1) <= s_Pulse_d(i);
+       end loop;
+	    s_Pulse_d(0) <= s_Pulse;
+	  end if;
+	end process p_reg_pulse;
+	
+	event_number_o <= std_logic_vector(s_PulsCnt);
+	MaxPulses_o <= s_MaxPulses;
+	Pulse_o 		<= s_Pulse;
+	Pulse_d_o 	<= s_Pulse when PulseDelay_i = x"00000000" else
+						s_Pulse_d(to_integer(unsigned(PulseDelay_i)-1));
+	
+	
+	-----------------------------------------------------------------------------
+	-- Count runs and synchronization
+	-----------------------------------------------------------------------------
+	p_PulsCounter : process (clk_i )
+	begin  -- process p_run_counter
+
+		if rising_edge(clk_i) then
+			if s_RstPulsCnt = '1' then
+				s_PulsCnt <= (others => '0');
+			elsif s_PulsCnt_en = '1' then
+				s_PulsCnt <= s_PulsCnt + 1;
+			end if;
+		
+		end if;
+	end process p_PulsCounter;
+  
+	s_RstPulsCnt <= Reset_i or RstPulsCnt_i or s_RstPulsCnt_int;
+	s_PulsCnt_en <= '1' when (s_Pulse = '1') and (s_Pulse_d(0) = '0') and (s_MaxPulses = '0')
+	                      else '0'; 
+	s_MaxPulses <= '1' when (s_PulsCnt = unsigned(NMaxPulses_i)) and (NMaxPulses_i /= x"00000000")
+                  else '0';
+
+
+END ARCHITECTURE rtl;
+
diff --git a/legacy/TLU_v1e/hdl/IPBusInterface_rtl.vhd b/legacy/TLU_v1e/hdl/IPBusInterface_rtl.vhd
new file mode 100644
index 00000000..aa9bd6de
--- /dev/null
+++ b/legacy/TLU_v1e/hdl/IPBusInterface_rtl.vhd
@@ -0,0 +1,261 @@
+--=============================================================================
+--! @file IPBusInterface_rtl.vhd
+--=============================================================================
+--
+-------------------------------------------------------------------------------
+-- --
+-- University of Bristol, High Energy Physics Group.
+-- --
+------------------------------------------------------------------------------- --
+-- VHDL Architecture fmc_mTLU_lib.IPBusInterface.rtl
+--
+-- 
+-- Created using using Mentor Graphics HDL Designer(TM) 2010.3 (Build 21)
+--
+LIBRARY ieee;
+USE ieee.std_logic_1164.all;
+USE ieee.numeric_std.all;
+
+USE work.ipbus.all;
+
+--! @brief IPBus interface between 1GBit/s Ethernet and IPBus internal bus
+--
+--! @author David Cussans , David.Cussans@bristol.ac.uk
+--
+--! @date 16:06:57 11/09/12
+--
+--! @version v0.1
+--
+--! @details
+--!
+--! <b>Modified by:</b>\n
+--! Author: 
+-------------------------------------------------------------------------------
+--! \n\n<b>Last changes:</b>\n
+-------------------------------------------------------------------------------
+ENTITY IPBusInterface IS
+   GENERIC( 
+      NUM_EXT_SLAVES : positive := 5;
+      BUILD_SIMULATED_ETHERNET : integer := 0 --! Set to 1 to build simulated Ethernet interface using Modelsim FLI
+   );
+   PORT( 
+      gmii_rx_clk_i    : IN     std_logic;
+      gmii_rx_dv_i     : IN     std_logic;
+      gmii_rx_er_i     : IN     std_logic;
+      gmii_rxd_i       : IN     std_logic_vector (7 DOWNTO 0);
+      ipbr_i           : IN     ipb_rbus_array (NUM_EXT_SLAVES-1 DOWNTO 0);  --! IPBus read signals
+      sysclk_n_i       : IN     std_logic;
+      sysclk_p_i       : IN     std_logic;                                   --! 200 MHz xtal clock
+      clocks_locked_o  : OUT    std_logic;
+      gmii_gtx_clk_o   : OUT    std_logic;
+      gmii_tx_en_o     : OUT    std_logic;
+      gmii_tx_er_o     : OUT    std_logic;
+      gmii_txd_o       : OUT    std_logic_vector (7 DOWNTO 0);
+      ipb_clk_o        : OUT    std_logic;                                   --! IPBus clock to slaves
+      ipb_rst_o        : OUT    std_logic;                                   --! IPBus reset to slaves
+      ipbw_o           : OUT    ipb_wbus_array (NUM_EXT_SLAVES-1 DOWNTO 0);  --! IBus write signals
+      onehz_o          : OUT    std_logic;
+      phy_rstb_o       : OUT    std_logic;
+      dip_switch_i     : IN     std_logic_vector (3 DOWNTO 0); --! Used to select IP address
+      clk_logic_xtal_o : OUT    std_logic  --! 40MHz clock that can be used for logic if not using external clock
+   );
+
+-- Declarations
+
+END ENTITY IPBusInterface ;
+
+--
+ARCHITECTURE rtl OF IPBusInterface IS
+  
+  --! Number of slaves inside the IPBusInterface block.
+  constant c_NUM_INTERNAL_SLAVES : positive := 1;
+
+  signal clk125,  rst_125, rst_ipb: STD_LOGIC;
+  signal mac_txd, mac_rxd : STD_LOGIC_VECTOR(7 downto 0);
+  signal mac_txdvld, mac_txack, mac_rxclko, mac_rxdvld, mac_rxgoodframe, mac_rxbadframe : STD_LOGIC;
+  signal ipb_master_out : ipb_wbus;
+  signal ipb_master_in : ipb_rbus;
+  signal mac_addr: std_logic_vector(47 downto 0);
+  signal mac_tx_data, mac_rx_data: std_logic_vector(7 downto 0);
+  signal mac_tx_valid, mac_tx_last, mac_tx_error, mac_tx_ready, mac_rx_valid, mac_rx_last, mac_rx_error: std_logic;
+
+  signal ip_addr: std_logic_vector(31 downto 0);
+  signal s_ipb_clk : std_logic;
+  signal s_ipbw_internal: ipb_wbus_array (NUM_EXT_SLAVES+c_NUM_INTERNAL_SLAVES-1 DOWNTO 0);
+  signal s_ipbr_internal: ipb_rbus_array (NUM_EXT_SLAVES+c_NUM_INTERNAL_SLAVES-1 DOWNTO 0);
+  signal s_sysclk : std_logic;
+  signal pkt_rx, pkt_tx, pkt_rx_led, pkt_tx_led, sys_rst: std_logic;
+  
+BEGIN
+
+  -- Connect IPBus clock and reset to output ports.
+  ipb_clk_o <= s_ipb_clk;
+  ipb_rst_o <= rst_ipb;
+
+  --! By default generate a physical MAC
+  generate_physicalmac: if ( BUILD_SIMULATED_ETHERNET /= 1 ) generate
+      
+--	DCM clock generation for internal bus, ethernet
+--	clocks: entity work.clocks_s6_extphy port map(
+--          sysclk_p => sysclk_p_i,
+--          sysclk_n => sysclk_n_i,
+--          clk_logic_xtal_o => clk_logic_xtal_o,
+--          clko_125 => clk125,
+--          clko_ipb => s_ipb_clk,
+--          locked => clocks_locked_o,
+--          rsto_125 => rst_125,
+--          rsto_ipb => rst_ipb,
+--          onehz => onehz_o
+--          );
+    
+    clocks: entity work.clocks_7s_extphy_Se port map(
+        sysclk_p => sysclk_p_i,
+        sysclk_n => sysclk_n_i,
+        clk_logic_xtal_o => clk_logic_xtal_o,
+        clko_125 => clk125,
+        clko_ipb => s_ipb_clk,
+        locked => clocks_locked_o,
+        rsto_125 => rst_125,
+        rsto_ipb => rst_ipb,
+        onehz => onehz_o
+        );
+				
+	-- leds <= ('0', '0', locked, onehz);
+	
+--	Ethernet MAC core and PHY interface
+-- In this version, consists of hard MAC core and GMII interface to external PHY
+-- Can be replaced by any other MAC / PHY combination
+
+--        eth: entity work.eth_s6_gmii port map(
+--          clk125 => clk125,
+--          rst => rst_125,
+--          gmii_gtx_clk => gmii_gtx_clk_o,
+--          gmii_tx_en => gmii_tx_en_o,
+--          gmii_tx_er => gmii_tx_er_o,
+--          gmii_txd => gmii_txd_o,
+--          gmii_rx_clk => gmii_rx_clk_i,
+--          gmii_rx_dv => gmii_rx_dv_i,
+--          gmii_rx_er => gmii_rx_er_i,
+--          gmii_rxd => gmii_rxd_i,
+--          tx_data => mac_tx_data,
+--          tx_valid => mac_tx_valid,
+--          tx_last => mac_tx_last,
+--          tx_error => mac_tx_error,
+--          tx_ready => mac_tx_ready,
+--          rx_data => mac_rx_data,
+--          rx_valid => mac_rx_valid,
+--          rx_last => mac_rx_last,
+--          rx_error => mac_rx_error
+--          );
+          
+      eth: entity work.eth_7s_rgmii port map(
+            clk125 => clk125,
+            rst => rst_125,
+            tx_data => mac_tx_data,
+            tx_valid => mac_tx_valid,
+            tx_last => mac_tx_last,
+            tx_error => mac_tx_error,
+            tx_ready => mac_tx_ready,
+            rx_data => mac_rx_data,
+            rx_valid => mac_rx_valid,
+            rx_last => mac_rx_last,
+            rx_error => mac_rx_error,
+            gmii_gtx_clk => gmii_gtx_clk_o,
+            gmii_tx_en => gmii_tx_en_o,
+            gmii_tx_er => gmii_tx_er_o,
+            gmii_txd => gmii_txd_o,
+            gmii_rx_clk => gmii_rx_clk_i,
+            gmii_rx_dv => gmii_rx_dv_i,
+            gmii_rx_er => gmii_rx_er_i,
+            gmii_rxd => gmii_rxd_i            
+            );
+          	
+  end generate generate_physicalmac;
+
+    --! Set generic BUILD_SIMULATED_ETHERNET to 1 to generate a simulated MAC
+    generate_simulatedmac: if ( BUILD_SIMULATED_ETHERNET = 1 ) generate
+
+      sim_clocks: entity work.clock_sim
+	port map (
+	  clko125 => clk125,
+	  clko25 => s_ipb_clk,
+	  clko40 =>  clk_logic_xtal_o,
+	  nuke   => '0',
+	  rsto   => rst_125
+          );
+      rst_ipb <= rst_125;
+      clocks_locked_o  <= '1';
+      
+      -- clk125 <= sysclk_i; -- *must* run this simulation with 125MHz sysclk...
+      simulated_eth: entity work.eth_mac_sim
+        port map(
+          clk => clk125,
+          rst => rst_125,
+          tx_data => mac_tx_data,
+          tx_valid => mac_tx_valid,
+          tx_last => mac_tx_last,
+          tx_error => mac_tx_error,
+          tx_ready => mac_tx_ready,
+          rx_data => mac_rx_data,
+          rx_valid => mac_rx_valid,
+          rx_last => mac_rx_last,
+          rx_error => mac_rx_error
+          );
+    end generate generate_simulatedmac;
+
+  phy_rstb_o <= '1';
+  
+-- ipbus control logic
+        ipbus: entity work.ipbus_ctrl
+          generic map (
+            BUFWIDTH => 2)
+          port map(
+            mac_clk => clk125,
+            rst_macclk => rst_125,
+            ipb_clk => s_ipb_clk,
+            rst_ipb => rst_ipb,
+            mac_rx_data => mac_rx_data,
+            mac_rx_valid => mac_rx_valid,
+            mac_rx_last => mac_rx_last,
+            mac_rx_error => mac_rx_error,
+            mac_tx_data => mac_tx_data,
+            mac_tx_valid => mac_tx_valid,
+            mac_tx_last => mac_tx_last,
+            mac_tx_error => mac_tx_error,
+            mac_tx_ready => mac_tx_ready,
+            ipb_out => ipb_master_out,
+            ipb_in => ipb_master_in,
+            mac_addr => mac_addr,
+            ip_addr => ip_addr,
+            pkt_rx => pkt_rx,
+            pkt_tx => pkt_tx,
+            pkt_rx_led => pkt_rx_led,
+            pkt_tx_led => pkt_tx_led
+            );
+
+	
+	mac_addr <= X"020ddba115" & dip_switch_i & X"0"; -- Careful here, arbitrary addresses do not always work
+	ip_addr   <= X"c0a8c8" & dip_switch_i & X"0"; -- 192.168.200.X
+ 
+  fabric: entity work.ipbus_fabric
+    generic map(NSLV => NUM_EXT_SLAVES+c_NUM_INTERNAL_SLAVES)
+    port map(
+      ipb_in => ipb_master_out,
+      ipb_out => ipb_master_in,
+      ipb_to_slaves => s_ipbw_internal,
+      ipb_from_slaves => s_ipbr_internal
+    );
+    
+    ipbw_o <= s_ipbw_internal(NUM_EXT_SLAVES-1 downto 0);
+
+    s_ipbr_internal(NUM_EXT_SLAVES-1 downto 0) <= ipbr_i;
+         
+  -- Slave: firmware ID
+  firmware_id: entity work.ipbus_ver
+    port map(
+      ipbus_in =>  s_ipbw_internal(NUM_EXT_SLAVES+c_NUM_INTERNAL_SLAVES-1),
+      ipbus_out => s_ipbr_internal(NUM_EXT_SLAVES+c_NUM_INTERNAL_SLAVES-1)
+      );
+
+END ARCHITECTURE rtl;
+
diff --git a/legacy/TLU_v1e/hdl/Reg_2clks.vhd b/legacy/TLU_v1e/hdl/Reg_2clks.vhd
new file mode 100644
index 00000000..df7168fc
--- /dev/null
+++ b/legacy/TLU_v1e/hdl/Reg_2clks.vhd
@@ -0,0 +1,56 @@
+----------------------------------------------------------------------------------
+-- Company: Universidade de Santiago de Compostela
+-- Engineer: Alvaro Dosil
+-- 
+-- Create Date:    31/07/2012 
+-- Module Name:    Reg_2clks - Behavioral 
+-- Revision 0.01 - File Created
+-- Additional Comments: 
+----------------------------------------------------------------------------------
+-------------------------------------------------------
+--! @file
+--! @brief Synchronization module 1b
+--! @author Alvaro Dosil
+-------------------------------------------------------
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+
+
+entity Reg_2clks is
+  port(
+    clk_i : in std_logic;  --! Synchronous clock
+	 async_i : in std_logic;  --! Asynchronous input data
+	 sync_o : out std_logic   --! Synchronous output data
+	 );
+end Reg_2clks;
+
+--! @brief
+--! @details Synchronize 1 bit of data 
+
+architecture Behavioral of Reg_2clks is
+signal sreg : std_logic_vector(1 downto 0);
+
+attribute TIG : string;
+attribute IOB : string;
+attribute ASYNC_REG : string;
+attribute SHIFT_EXTRACT : string;
+attribute HBLKNM : string;
+
+attribute TIG of async_i : signal is "TRUE";
+attribute IOB of async_i : signal is "FALSE";
+attribute ASYNC_REG of sreg : signal is "TRUE";
+attribute SHIFT_EXTRACT of sreg : signal is "NO";
+attribute HBLKNM of sreg : signal is "sync_reg";
+
+begin
+
+process (clk_i)
+begin
+   if rising_edge(clk_i) then  
+     sync_o <= sreg(1);
+	  sreg <= sreg(0) & async_i;
+   end if;
+end process;
+
+end Behavioral;
+
diff --git a/legacy/TLU_v1e/hdl/T0_Shutter_Iface_rtl.vhd b/legacy/TLU_v1e/hdl/T0_Shutter_Iface_rtl.vhd
new file mode 100644
index 00000000..ef24ee2a
--- /dev/null
+++ b/legacy/TLU_v1e/hdl/T0_Shutter_Iface_rtl.vhd
@@ -0,0 +1,114 @@
+--! @file T0_Shutter_Iface_rtl.vhd
+--
+LIBRARY ieee;
+USE ieee.std_logic_1164.all;
+
+library unisim;
+use unisim.VComponents.all;
+
+USE work.ipbus.all;
+
+use work.ipbus_reg_types.all;
+
+--! @brief Simple module to generate T0 and shutter signals under IPBus control
+--! Similar interface to TPx3_iface_rtl.vhd
+--
+--! @details
+--! \n \n IPBus address map:
+--! \li 00 - shutter. Bit 0. Output shutter = value of bit-0
+--! \li 01 - T0 write to pulse T0.
+--
+--! @author David Cussans
+
+entity T0_Shutter_Iface is
+
+  port (
+    clk_4x_i      : in  std_logic;    --! system clock
+    clk_4x_strobe : in  std_logic;    --! strobes high for one cycle every 4 of clk_4x
+    T0_o          : out std_logic;    --! T0 signal retimed onto system clock
+    shutter_o          : out std_logic;    --! shutter signal retimed onto system clock
+
+    ipbus_clk_i            : IN     std_logic; --! IPBus system clock
+    ipbus_i                : IN     ipb_wbus;
+    ipbus_o                : OUT    ipb_rbus
+          
+    );     
+
+end entity T0_Shutter_Iface;
+
+architecture rtl of T0_Shutter_Iface is
+
+  signal s_T0 , s_T0_d1 , s_T0_d2 , s_stretch_T0_in: std_logic := '0';  -- signal after IBufDS and sampled onto clk_4x
+  signal s_stretch_T0_in_sr : std_logic_vector(2 downto 0) := "111"; --! Gets shifted out by clk_4x logic. Loaded by T0ger_i
+  signal s_T0_out_sr : std_logic_vector(2 downto 0) := "111"; --! Gets shifted out by clk_4x logic. Loaded by strobe_4x_logic
+
+  signal s_shutter , s_shutter_d1 , s_shutter_d2 : std_logic := '0';  -- signal after IBufDS and sampled onto clk_4x
+
+  signal s_T0_ipbus , s_T0_ipbus_d1 , s_T0_ipbus_d2: std_logic := '0';  -- Signals that get combined with incoming hardware signals from TPIx3 telescope
+  signal s_shutter_ipbus , s_shutter_ipbus_d1 , s_shutter_ipbus_d2: std_logic := '0';  -- Signals that get combined with incoming hardware signals from TPIx3 telescope
+                                                                             
+  signal s_ipbus_ack      : std_logic := '0';  -- used to produce a delayed IPBus ack signal
+  
+begin  -- architecture rtl
+
+  --------------------
+    ipbus_write: process (ipbus_clk_i)
+    begin  -- process ipb_clk_i
+    if rising_edge(ipbus_clk_i) then
+        s_T0_ipbus <= '0';
+        if (ipbus_i.ipb_strobe = '1' and ipbus_i.ipb_write = '1') then
+            case ipbus_i.ipb_addr(1 downto 0) is
+                when "00" => s_shutter_ipbus <= ipbus_i.ipb_wdata(0) ; -- Set IPBus shutter
+                when "01" => s_T0_ipbus <= '1';
+                when others => null;
+            end case;
+        end if;
+        s_ipbus_ack <= ipbus_i.ipb_strobe and not s_ipbus_ack;
+    end if;
+    end process ipbus_write;
+
+    ipbus_o.ipb_ack <= s_ipbus_ack;
+    ipbus_o.ipb_err <= '0';
+
+
+    ------------------
+    p_T0_retime: process (clk_4x_i , clk_4x_strobe , s_T0) is
+    begin  -- process p_T0_retime
+    if rising_edge(clk_4x_i)  then
+        -- Register IPBus clocked signals onto clk 4x. So clk4x must be faster
+        -- than ipbus_clk for this to work.
+        s_T0_ipbus_d1 <= s_T0_ipbus;
+        s_T0_ipbus_d2 <= s_T0_ipbus_d1;
+        -- Shutter is a DC level, so clock speeds don't matter.
+        s_shutter_ipbus_d1 <= s_shutter_ipbus;
+        s_shutter_ipbus_d2 <= s_shutter_ipbus_d1;
+        -- Stretch T0_i pulse to 4 clock cycles on clk4x
+        if ( s_T0_ipbus_d2 = '1' ) then
+            s_stretch_T0_in <= '1';
+            s_stretch_T0_in_sr <= "111";
+        else
+            s_stretch_T0_in <= s_stretch_T0_in_sr(0);
+            s_stretch_T0_in_sr <= '0' & s_stretch_T0_in_sr(s_stretch_T0_in_sr'left downto 1);
+        end if;
+ 
+        if (clk_4x_strobe  = '1') and ( s_stretch_T0_in = '1' ) then
+            T0_o <= '1';
+            s_T0_out_sr <= "111";
+        else
+            T0_o <= s_T0_out_sr(0);
+            s_T0_out_sr <= '0' & s_T0_out_sr(s_T0_out_sr'left downto 1);
+        end if;
+    end if;
+    end process p_T0_retime;
+    
+  -- Just retime onto the 4x clock. Probably should retime onto 1x clock.
+    p_shutter_retime: process (s_shutter , clk_4x_i) is
+    begin  -- process p_shutter_retime
+    if rising_edge(clk_4x_i)  then
+        s_shutter_d1 <= ( s_shutter_ipbus );
+        s_shutter_d2 <= s_shutter_d1;
+        shutter_o    <= s_shutter_d2;
+    end if;
+    end process p_shutter_retime;
+
+end architecture rtl;
diff --git a/legacy/TLU_v1e/hdl/TPx3Logic_rtl.vhd b/legacy/TLU_v1e/hdl/TPx3Logic_rtl.vhd
new file mode 100644
index 00000000..1e35cfac
--- /dev/null
+++ b/legacy/TLU_v1e/hdl/TPx3Logic_rtl.vhd
@@ -0,0 +1,177 @@
+--=============================================================================
+--! @file TPx3Logic_rtl.vhd
+--=============================================================================
+--
+-------------------------------------------------------------------------------
+-- --
+-- University of Santiago de Compostela, High Energy Physics Group.
+-- --
+------------------------------------------------------------------------------- --
+-- VHDL Architecture fmc_mTLU_lib.TPx3Logic.rtl
+--
+--! @brief Produces shutters \n
+--! IPBus address map:\n
+--
+--! @author Alvaro Dosil , alvaro.dosil@usc.es
+--
+--! @date 16:06:19 11/06/14
+--
+--! @version v0.1
+--
+--! @details
+--!
+--!
+--! <b>Dependencies:</b>\n
+--!
+--! <b>References:</b>\n
+--!
+--! <b>Modified by: Alvaro Dosil , alvaro.dosil@usc.es </b>\n
+--! Author: 
+-------------------------------------------------------------------------------
+--! \n\n<b>Last changes:</b>\n
+--! Move all IPBus stuff into ipbus_syncreg_v , which also handles clock domain
+--! crossing. 20/Feb/2014 , David Cussans
+-------------------------------------------------------------------------------
+--! @todo <next thing to do> \n
+--! <another thing to do> \n
+--
+--------------------------------------------------------------------------------
+-- 
+-- Created using using Mentor Graphics HDL Designer(TM) 2010.3 (Build 21)
+--
+LIBRARY ieee;
+USE ieee.std_logic_1164.all;
+USE ieee.numeric_std.all;
+
+USE work.ipbus.all;
+use work.ipbus_reg_types.all;
+
+ENTITY TPx3Logic IS
+	GENERIC( 
+      g_IPBUS_WIDTH         : positive := 32
+   );
+   PORT( 
+      clk_i      				: IN     std_logic;                                    -- ! Rising edge active
+		Start_T0sync_i			: IN 		std_logic;
+		T0syncLen_i				: IN 		std_logic_vector(g_IPBUS_WIDTH-1 DOWNTO 0);
+      logic_reset_i       	: IN     std_logic;                                    -- active high. Synchronous with clk_4x_logic
+      Busy_i					: IN     std_logic;
+		Veto_i					: IN     std_logic;
+		Shutter_o				: OUT 	std_logic;
+		T0sync_o 				: OUT 	std_logic
+   );
+	
+
+-- Declarations
+
+END ENTITY TPx3Logic ;
+
+--
+ARCHITECTURE rtl OF TPx3Logic IS
+
+	type state_values is (st0, st1);
+	signal pres_state, next_state: state_values;
+
+	signal s_Enable : std_logic := '0';
+	signal s_Shutter, s_Shutter_d1f, s_Shutter_d1, s_T0sync, s_T0sync_d1f : std_logic := '0';
+	signal s_Start_T0sync, s_Start_T0sync_d1, s_Start_T0sync_d2, s_Start_T0sync_d3 : std_logic;
+	signal Rst_T0sync, T0syncT : 		std_logic;   	--Load signal and flag for the T0sync
+	signal s_RunNumber : unsigned(g_IPBUS_WIDTH-1 downto 0) := (others => '0');  -- ! counters for runs
+	
+BEGIN
+
+	-----------------------------------------------------------------------------
+	-- Counters
+	-----------------------------------------------------------------------------
+	--T0sync counter
+	c_T0sync: entity work.CounterDown
+	generic map(
+		MAX_WIDTH => g_IPBUS_WIDTH
+	)
+	port map( 
+		Clk		=> clk_i,
+		Reset		=> '0',
+		Load 		=> Rst_T0sync,
+		InitVal 	=> std_logic_vector(unsigned(T0syncLen_i)-1),
+		Count		=> open,
+		Q 			=> T0syncT
+	);
+  
+  
+  -----------------------------------------------------------------------------
+  -- FSM register
+  -----------------------------------------------------------------------------
+	statereg: process(clk_i)
+	begin
+		if rising_edge(clk_i) then
+			pres_state <= next_state;  --Move to the next state
+		end if;
+	end process statereg;
+	
+	
+	-----------------------------------------------------------------------------
+	-- FSM combinational block
+	-----------------------------------------------------------------------------
+	fsm: process(pres_state, s_Start_T0sync, T0syncT)
+	begin
+		next_state<=pres_state;
+		s_T0sync	<='0';
+		Rst_T0sync <= '1';
+		
+		case pres_state is
+			when st0=>
+				if s_Start_T0sync = '1' then 
+					next_state <= st1; --Next state is "Whait for end of T0sync signal"
+				end if;
+			when st1 =>
+				Rst_T0sync <='0';
+				s_T0sync <='1';
+				if T0syncT = '1' then
+					next_state<=st0; --Next state is "Whait for end of T0-sync counter"
+				end if;
+			when others=>
+				next_state<=st0; --Next state is "Whait for T0sync start"
+		end case;
+	end process fsm;
+
+  
+	-----------------------------------------------------------------------------
+	-- Busy signals
+	-----------------------------------------------------------------------------
+	s_Enable <= not Veto_i;
+	s_Shutter <= not Busy_i and not Veto_i;
+	--Shutter_o <= s_Shutter;
+	--T0sync_o <= s_T0sync;
+  
+	
+	-----------------------------------------------------------------------------
+	-- Count runs and synchronization
+	-----------------------------------------------------------------------------
+	p_run_counter: process (clk_i )
+	begin  -- process p_run_counter
+		if rising_edge(clk_i) then
+			s_Start_T0sync_d1 <= Start_T0sync_i;
+			s_Start_T0sync_d2 <= s_Start_T0sync_d1;
+			s_Start_T0sync_d3 <= s_Start_T0sync_d2;
+			s_Start_T0sync <= s_Start_T0sync_d2 and ( not s_Start_T0sync_d3); 
+		
+			s_Shutter_d1 <= s_Shutter;
+		
+			if logic_reset_i = '1' then
+				s_RunNumber <= (others => '0');
+			elsif s_Shutter='1' and s_Shutter_d1='0' then
+				s_RunNumber <= s_RunNumber + 1;
+			end if;
+		end if;
+		-- Signals synchronous with falling edge clock
+		if falling_edge(clk_i) then
+			s_Shutter_d1f <= s_Shutter;
+			Shutter_o <= s_Shutter_d1f;
+			
+			s_T0sync_d1f <= s_T0sync;
+			T0sync_o <= s_T0sync_d1f;
+		end if;
+  end process p_run_counter;
+  
+END ARCHITECTURE rtl;
+
diff --git a/legacy/TLU_v1e/hdl/TPx3_iface_rtl.vhd b/legacy/TLU_v1e/hdl/TPx3_iface_rtl.vhd
new file mode 100644
index 00000000..f576ac1b
--- /dev/null
+++ b/legacy/TLU_v1e/hdl/TPx3_iface_rtl.vhd
@@ -0,0 +1,160 @@
+--! @file TPx3_iface_rtl.vhd
+--! @brief Simple module to interface AIDA TLU to LHCb TimePix3 telescope.
+--! Accepts T0 sync signal and shutter signal from telescope and re-transmits.
+--! @details
+--! IPBus address map:
+--! 00 - shutter. Bit 0. Output shutter = external shutter XOR ipbus shutter
+--! 01 - T0 write to pulse T0.
+--! @author David Cussans
+
+LIBRARY ieee;
+USE ieee.std_logic_1164.all;
+
+library unisim;
+use unisim.VComponents.all;
+
+USE work.ipbus.all;
+
+use work.ipbus_reg_types.all;
+
+
+entity TPx3_iface is
+
+  port (
+    clk_4x_i      : in  std_logic;    --! system clock
+    clk_4x_strobe : in  std_logic;    --! strobes high for one cycle every 4 of clk_4x
+    T0_p_i          : in  std_logic;  --! T0 signal from timepix telescope clk/sync system
+    T0_n_i          : in  std_logic;  --! T0 signal from timepix telescope clk/sync system
+    T0_o          : out std_logic;    --! T0 signal retimed onto system clock
+    shutter_p_i          : in  std_logic;  --! shutter signal from timepix telescope clk/sync system
+    shutter_n_i          : in  std_logic;  --! shutter signal from timepix telescope clk/sync system
+    shutter_o          : out std_logic;    --! shutter signal retimed onto system clock
+
+    ipbus_clk_i            : IN     std_logic; --! IPBus system clock
+    ipbus_i                : IN     ipb_wbus;
+    ipbus_o                : OUT    ipb_rbus
+          
+    );     
+
+end entity TPx3_iface;
+
+architecture rtl of TPx3_iface is
+
+  signal s_T0 , s_T0_d1 , s_T0_d2 , s_stretch_T0_in: std_logic := '0';  -- signal after IBufDS and sampled onto clk_4x
+  signal s_stretch_T0_in_sr : std_logic_vector(2 downto 0) := "111"; --! Gets shifted out by clk_4x logic. Loaded by T0ger_i
+  signal s_T0_out_sr : std_logic_vector(2 downto 0) := "111"; --! Gets shifted out by clk_4x logic. Loaded by strobe_4x_logic
+
+  signal s_shutter , s_shutter_d1 , s_shutter_d2 : std_logic := '0';  -- signal after IBufDS and sampled onto clk_4x
+
+  signal s_T0_ipbus , s_T0_ipbus_d1 , s_T0_ipbus_d2: std_logic := '0';  -- Signals that get combined with incoming hardware signals from TPIx3 telescope
+  signal s_shutter_ipbus , s_shutter_ipbus_d1 , s_shutter_ipbus_d2: std_logic := '0';  -- Signals that get combined with incoming hardware signals from TPIx3 telescope
+  signal s_external_signal_mask : std_logic_vector(ipbus_i.ipb_wdata'range) := ( others => '0'); --! Set bits to mask external signals : 0 to mask external T0 , set bit 1 to mask external shutter
+  signal s_maskExternalShutter , s_maskExternalT0 : std_logic := '0';  -- ! Set to 1 to mask external signals
+                                                                             
+  signal s_ipbus_ack      : std_logic := '0';  -- used to produce a delayed IPBus ack signal
+  
+begin  -- architecture rtl
+
+  --------------------
+  ipbus_write: process (ipbus_clk_i)
+  begin  -- process ipb_clk_i
+    if rising_edge(ipbus_clk_i) then
+
+      s_T0_ipbus <= '0';
+      if (ipbus_i.ipb_strobe = '1' and ipbus_i.ipb_write = '1') then
+
+        case ipbus_i.ipb_addr(1 downto 0) is
+          when "00" => s_shutter_ipbus <= ipbus_i.ipb_wdata(0) ; -- Set IPBus shutter
+          when "01" => s_T0_ipbus <= '1';
+          when "10" => s_external_signal_mask <= ipbus_i.ipb_wdata;
+          when others => null;
+        end case;
+          
+       end if;
+
+       s_ipbus_ack <= ipbus_i.ipb_strobe and not s_ipbus_ack;
+       
+    end if;
+  end process ipbus_write;
+
+  ipbus_o.ipb_ack <= s_ipbus_ack;
+  ipbus_o.ipb_err <= '0';
+
+
+    ------------------
+    
+  cmp_IBUFDS_T0 : IBUFDS
+      generic map (
+        DIFF_TERM => TRUE, -- Differential Termination 
+        IBUF_LOW_PWR => TRUE, -- Low power (TRUE) vs. performance (FALSE) setting for referenced I/O standards
+        IOSTANDARD => "LVDS_25")
+      port map (
+        O =>  s_T0,  -- Buffer output
+        I =>  T0_p_i,  -- Diff_p buffer input (connect directly to top-level port)
+        IB => T0_n_i -- Diff_n buffer input (connect directly to top-level port)
+      );
+        
+    p_T0_retime: process (clk_4x_i , clk_4x_strobe , s_T0) is
+  begin  -- process p_T0_retime
+    if rising_edge(clk_4x_i)  then
+
+      s_maskExternalShutter <= s_external_signal_mask(1);
+      s_maskExternalT0 <= s_external_signal_mask(0);
+        
+      s_T0_d1 <= s_T0;
+      s_T0_d2 <= s_T0_d1;
+
+      -- Register IPBus clocked signals onto clk 4x. So clk4x must be faster
+      -- than ipbus_clk for this to work.
+      s_T0_ipbus_d1 <= s_T0_ipbus;
+      s_T0_ipbus_d2 <= s_T0_ipbus_d1;
+
+      -- Shutter is a DC level, so clock speeds don't matter.
+      s_shutter_ipbus_d1 <= s_shutter_ipbus;
+      s_shutter_ipbus_d2 <= s_shutter_ipbus_d1;
+      
+      
+      -- Stretch T0_i pulse to 4 clock cycles on clk4x
+      if ( (( s_T0_d2 = '1' ) and ( s_maskExternalT0 = '0')) or ( s_T0_ipbus_d2 = '1' )) then
+        s_stretch_T0_in <= '1';
+        s_stretch_T0_in_sr <= "111";
+      else
+        s_stretch_T0_in <= s_stretch_T0_in_sr(0);
+        s_stretch_T0_in_sr <= '0' & s_stretch_T0_in_sr(s_stretch_T0_in_sr'left downto 1);
+      end if;
+
+      -- 
+      if (clk_4x_strobe  = '1') and ( s_stretch_T0_in = '1' ) then
+        T0_o <= '1';
+        s_T0_out_sr <= "111";
+      else
+        T0_o <= s_T0_out_sr(0);
+        s_T0_out_sr <= '0' & s_T0_out_sr(s_T0_out_sr'left downto 1);
+      end if;
+
+      
+    end if;
+  end process p_T0_retime;
+    
+  cmp_IBUFDS_shutter : IBUFDS
+      generic map (
+        DIFF_TERM => TRUE, -- Differential Termination 
+        IBUF_LOW_PWR => TRUE, -- Low power (TRUE) vs. performance (FALSE) setting for referenced I/O standards
+        IOSTANDARD => "LVDS_25")
+      port map (
+        O =>  s_shutter,  -- Buffer output
+        I =>  shutter_p_i,  -- Diff_p buffer input (connect directly to top-level port)
+        IB => shutter_n_i -- Diff_n buffer input (connect directly to top-level port)
+      );
+
+  -- Just retime onto the 4x clock. Probably should retime onto 1x clock.
+  p_shutter_retime: process (s_shutter , clk_4x_i) is
+  begin  -- process p_shutter_retime
+    if rising_edge(clk_4x_i)  then
+      s_shutter_d1 <= ( ( s_shutter and not s_maskExternalShutter ) xor s_shutter_ipbus );
+      s_shutter_d2 <= s_shutter_d1;
+      shutter_o    <= s_shutter_d2;
+    end if;
+  end process p_shutter_retime;
+
+end architecture rtl;
diff --git a/legacy/TLU_v1e/hdl/ax3_pm3_mTLUvC.xdc b/legacy/TLU_v1e/hdl/ax3_pm3_mTLUvC.xdc
new file mode 100644
index 00000000..8ba10646
--- /dev/null
+++ b/legacy/TLU_v1e/hdl/ax3_pm3_mTLUvC.xdc
@@ -0,0 +1,377 @@
+# -------------------------------------------------------------------------------------------------
+# -- Project             : Mars AX3 
+# -- File description    : User Constraint File for Mars PM3 Base Board
+# -- File name           : mars_ax3_pm3.xdc
+# -- Authors             : Kanishk Sugand / Marc Oberholzer
+# -------------------------------------------------------------------------------------------------
+# -- Copyright © 2012 by Enclustra GmbH, Switzerland. All rights are reserved. 
+# -- Unauthorized duplication of this document, in whole or in part, by any means is prohibited
+# -- without the prior written permission of Enclustra GmbH, Switzerland.
+# -- 
+# -- Although Enclustra GmbH believes that the information included in this publication is correct
+# -- as of the date of publication, Enclustra GmbH reserves the right to make changes at any time
+# -- without notice.
+# -- 
+# -- All information in this document may only be published by Enclustra GmbH, Switzerland.
+# -------------------------------------------------------------------------------------------------
+# -- Notes:
+# -- 1. For best I/O timing, it is necessary to set the following options in Xilinx ISE/PlanAhead: 
+# --    map option "Pack I/O registers into IOBs" to "Inputs and Outputs"
+# -- 2. The IO standards for banks 0, 2 and 3 are only valid if VCCO_0/VCCO_2/VCCO_3 = 3.3 V
+# -------------------------------------------------------------------------------------------------
+# -- File history:
+# --
+# -- Version | Date       | Author             | Remarks
+# -- ----------------------------------------------------------------------------------------------
+# -- 1.0     | 11.4.14    | C. Glattfelder     | converted from UCF
+# -------------------------------------------------------------------------------------------------
+
+# -------------------------------------------------------------------------------------------------
+# mars ax3: global clock inputs
+# -------------------------------------------------------------------------------------------------
+
+set_property PACKAGE_PIN P17 [get_ports {Clk_50}]
+set_property IOSTANDARD LVCMOS33 [get_ports {Clk_50}]
+set_property PACKAGE_PIN L16 [get_ports {Fpga_Emcclk}]
+set_property IOSTANDARD LVCMOS33 [get_ports {Fpga_Emcclk}]
+
+# -------------------------------------------------------------------------------------------------
+# mars ax3: ddr3 sdram
+# -------------------------------------------------------------------------------------------------
+
+set_property IOSTANDARD SSTL15 [get_ports {Ddr3_Ba[0]}]
+set_property IOSTANDARD SSTL15 [get_ports {Ddr3_Ba[1]}]
+set_property IOSTANDARD SSTL15 [get_ports {Ddr3_A[9]}]
+set_property IOSTANDARD SSTL15 [get_ports {Ddr3_A[8]}]
+set_property IOSTANDARD DIFF_SSTL15 [get_ports {Ddr3_Dqs_P[1]}]
+set_property IOSTANDARD SSTL15 [get_ports {Ddr3_Ba[2]}]
+set_property IOSTANDARD SSTL15 [get_ports {Ddr3_A[7]}]
+set_property IOSTANDARD SSTL15 [get_ports {Ddr3_A[6]}]
+set_property IOSTANDARD SSTL15 [get_ports {Ddr3_A[5]}]
+set_property IOSTANDARD SSTL15 [get_ports Ddr3_Cas_N]
+set_property IOSTANDARD DIFF_SSTL15 [get_ports {Ddr3_Dqs_P[0]}]
+set_property IOSTANDARD SSTL15 [get_ports Ddr3_Odt]
+set_property IOSTANDARD SSTL15 [get_ports {Ddr3_A[4]}]
+set_property IOSTANDARD SSTL15 [get_ports Ddr3_Cke]
+set_property IOSTANDARD SSTL15 [get_ports {Ddr3_A[3]}]
+set_property IOSTANDARD SSTL15 [get_ports {Ddr3_A[2]}]
+set_property IOSTANDARD SSTL15 [get_ports Ddr3_We_N]
+set_property IOSTANDARD DIFF_SSTL15 [get_ports Ddr3_Clk_N]
+set_property IOSTANDARD SSTL15 [get_ports Ddr3_Ras_N]
+set_property IOSTANDARD SSTL15 [get_ports {Ddr3_A[13]}]
+set_property IOSTANDARD SSTL15 [get_ports {Ddr3_A[12]}]
+set_property IOSTANDARD DIFF_SSTL15 [get_ports Ddr3_Clk_P]
+set_property IOSTANDARD DIFF_SSTL15 [get_ports {Ddr3_Dqs_N[0]}]
+set_property IOSTANDARD SSTL15 [get_ports {Ddr3_A[11]}]
+set_property IOSTANDARD SSTL15 [get_ports Ddr3_Reset_N]
+set_property IOSTANDARD SSTL15 [get_ports {Ddr3_Dm[0]}]
+set_property IOSTANDARD SSTL15 [get_ports {Ddr3_A[10]}]
+set_property IOSTANDARD SSTL15 [get_ports {Ddr3_A[1]}]
+set_property IOSTANDARD SSTL15 [get_ports {Ddr3_A[0]}]
+set_property IOSTANDARD SSTL15 [get_ports {Ddr3_Dm[1]}]
+set_property IOSTANDARD DIFF_SSTL15 [get_ports {Ddr3_Dqs_N[1]}]
+set_property IOSTANDARD SSTL15 [get_ports {Ddr3_Dq[0]}]
+set_property IOSTANDARD SSTL15 [get_ports {Ddr3_Dq[9]}]
+set_property IOSTANDARD SSTL15 [get_ports {Ddr3_Dq[1]}]
+set_property IOSTANDARD SSTL15 [get_ports {Ddr3_Dq[8]}]
+set_property IOSTANDARD SSTL15 [get_ports {Ddr3_Dq[10]}]
+set_property IOSTANDARD SSTL15 [get_ports {Ddr3_Dq[7]}]
+set_property IOSTANDARD SSTL15 [get_ports {Ddr3_Dq[11]}]
+set_property IOSTANDARD SSTL15 [get_ports {Ddr3_Dq[6]}]
+set_property IOSTANDARD SSTL15 [get_ports {Ddr3_Dq[12]}]
+set_property IOSTANDARD SSTL15 [get_ports {Ddr3_Dq[5]}]
+set_property IOSTANDARD SSTL15 [get_ports {Ddr3_Dq[13]}]
+set_property IOSTANDARD SSTL15 [get_ports {Ddr3_Dq[4]}]
+set_property IOSTANDARD SSTL15 [get_ports {Ddr3_Dq[14]}]
+set_property IOSTANDARD SSTL15 [get_ports {Ddr3_Dq[3]}]
+set_property IOSTANDARD SSTL15 [get_ports {Ddr3_Dq[15]}]
+set_property IOSTANDARD SSTL15 [get_ports {Ddr3_Dq[2]}]
+set_property PACKAGE_PIN A15 [get_ports {Ddr3_Dq[2]}]
+set_property PACKAGE_PIN E15 [get_ports {Ddr3_Dq[3]}]
+set_property PACKAGE_PIN B11 [get_ports {Ddr3_Dq[15]}]
+set_property PACKAGE_PIN B18 [get_ports {Ddr3_Dq[4]}]
+set_property PACKAGE_PIN F14 [get_ports {Ddr3_Dq[14]}]
+set_property PACKAGE_PIN B17 [get_ports {Ddr3_Dq[5]}]
+set_property PACKAGE_PIN A11 [get_ports {Ddr3_Dq[13]}]
+set_property PACKAGE_PIN A16 [get_ports {Ddr3_Dq[6]}]
+set_property PACKAGE_PIN F13 [get_ports {Ddr3_Dq[12]}]
+set_property PACKAGE_PIN B16 [get_ports {Ddr3_Dq[7]}]
+set_property PACKAGE_PIN D14 [get_ports {Ddr3_Dq[11]}]
+set_property PACKAGE_PIN B14 [get_ports {Ddr3_Dq[8]}]
+set_property PACKAGE_PIN B13 [get_ports {Ddr3_Dq[10]}]
+set_property PACKAGE_PIN C14 [get_ports {Ddr3_Dq[9]}]
+set_property PACKAGE_PIN E16 [get_ports {Ddr3_Dq[1]}]
+set_property PACKAGE_PIN A14 [get_ports {Ddr3_Dqs_N[0]}]
+set_property PACKAGE_PIN A18 [get_ports {Ddr3_Dq[0]}]
+set_property PACKAGE_PIN D12 [get_ports {Ddr3_Dm[1]}]
+set_property PACKAGE_PIN D15 [get_ports {Ddr3_Dm[0]}]
+set_property PACKAGE_PIN A13 [get_ports {Ddr3_Dqs_P[0]}]
+set_property PACKAGE_PIN C16 [get_ports Ddr3_Clk_P]
+set_property PACKAGE_PIN C17 [get_ports Ddr3_Clk_N]
+set_property PACKAGE_PIN G14 [get_ports Ddr3_Cke]
+set_property PACKAGE_PIN B12 [get_ports {Ddr3_Dqs_N[1]}]
+set_property PACKAGE_PIN F16 [get_ports Ddr3_Cas_N]
+set_property PACKAGE_PIN K15 [get_ports {Ddr3_Ba[2]}]
+set_property PACKAGE_PIN H14 [get_ports {Ddr3_Ba[1]}]
+set_property PACKAGE_PIN C12 [get_ports {Ddr3_Dqs_P[1]}]
+set_property PACKAGE_PIN D17 [get_ports {Ddr3_Ba[0]}]
+set_property PACKAGE_PIN F18 [get_ports {Ddr3_A[9]}]
+set_property PACKAGE_PIN H17 [get_ports {Ddr3_A[8]}]
+set_property PACKAGE_PIN K16 [get_ports Ddr3_Odt]
+set_property PACKAGE_PIN E18 [get_ports {Ddr3_A[7]}]
+set_property PACKAGE_PIN K13 [get_ports {Ddr3_A[6]}]
+set_property PACKAGE_PIN E17 [get_ports {Ddr3_A[5]}]
+set_property PACKAGE_PIN F15 [get_ports Ddr3_Ras_N]
+set_property PACKAGE_PIN J13 [get_ports {Ddr3_A[4]}]
+set_property PACKAGE_PIN D18 [get_ports {Ddr3_A[3]}]
+set_property PACKAGE_PIN J18 [get_ports {Ddr3_A[2]}]
+set_property PACKAGE_PIN G13 [get_ports Ddr3_Reset_N]
+set_property PACKAGE_PIN G17 [get_ports {Ddr3_A[13]}]
+set_property PACKAGE_PIN H16 [get_ports {Ddr3_A[12]}]
+set_property PACKAGE_PIN G18 [get_ports {Ddr3_A[11]}]
+set_property PACKAGE_PIN J15 [get_ports Ddr3_We_N]
+set_property PACKAGE_PIN G16 [get_ports {Ddr3_A[10]}]
+set_property PACKAGE_PIN J14 [get_ports {Ddr3_A[1]}]
+set_property PACKAGE_PIN J17 [get_ports {Ddr3_A[0]}]
+
+# -------------------------------------------------------------------------------------------------
+# mars ax3: ethernet
+# -------------------------------------------------------------------------------------------------
+
+set_property IOSTANDARD LVCMOS33 [get_ports {Eth_Txd[1]}]
+set_property IOSTANDARD LVCMOS33 [get_ports Eth_Rxc]
+set_property IOSTANDARD LVCMOS33 [get_ports Eth_Rst_N]
+set_property IOSTANDARD LVCMOS33 [get_ports {Eth_Rxd[0]}]
+set_property IOSTANDARD LVCMOS33 [get_ports {Eth_Txd[0]}]
+set_property IOSTANDARD LVCMOS33 [get_ports {Eth_Rxd[1]}]
+set_property IOSTANDARD LVCMOS33 [get_ports Eth_Mdio]
+set_property IOSTANDARD LVCMOS33 [get_ports {Eth_Rxd[2]}]
+set_property IOSTANDARD LVCMOS33 [get_ports Eth_Mdc]
+set_property IOSTANDARD LVCMOS33 [get_ports {Eth_Rxd[3]}]
+set_property IOSTANDARD LVCMOS33 [get_ports Eth_Txc]
+set_property IOSTANDARD LVCMOS33 [get_ports {Eth_Txd[2]}]
+set_property IOSTANDARD LVCMOS15 [get_ports Eth_Link_N]
+set_property IOSTANDARD LVCMOS33 [get_ports Eth_Tx_Ctl]
+set_property IOSTANDARD LVCMOS33 [get_ports Eth_Int_N]
+set_property IOSTANDARD LVCMOS33 [get_ports Eth_Rx_Ctl]
+set_property IOSTANDARD LVCMOS33 [get_ports {Eth_Txd[3]}]
+set_property PACKAGE_PIN T16 [get_ports Eth_Tx_Ctl]
+set_property PACKAGE_PIN R18 [get_ports {Eth_Txd[0]}]
+set_property PACKAGE_PIN V16 [get_ports {Eth_Rxd[3]}]
+set_property PACKAGE_PIN V15 [get_ports {Eth_Rxd[2]}]
+set_property PACKAGE_PIN V17 [get_ports {Eth_Rxd[1]}]
+set_property PACKAGE_PIN T18 [get_ports {Eth_Txd[1]}]
+set_property PACKAGE_PIN U16 [get_ports {Eth_Rxd[0]}]
+set_property PACKAGE_PIN T14 [get_ports Eth_Rxc]
+set_property PACKAGE_PIN R16 [get_ports Eth_Rx_Ctl]
+set_property PACKAGE_PIN U17 [get_ports {Eth_Txd[2]}]
+set_property PACKAGE_PIN M13 [get_ports Eth_Rst_N]
+set_property PACKAGE_PIN N14 [get_ports Eth_Mdio]
+set_property PACKAGE_PIN P14 [get_ports Eth_Mdc]
+set_property PACKAGE_PIN U18 [get_ports {Eth_Txd[3]}]
+set_property PACKAGE_PIN C15 [get_ports Eth_Link_N]
+set_property PACKAGE_PIN N16 [get_ports Eth_Txc]
+set_property PACKAGE_PIN T15 [get_ports Eth_Int_N]
+
+# -------------------------------------------------------------------------------------------------
+# mars ax3: i2c
+# -------------------------------------------------------------------------------------------------
+
+set_property PACKAGE_PIN R17 [get_ports I2c_Int_N]
+set_property IOSTANDARD LVCMOS33 [get_ports I2c_Int_N]
+set_property PACKAGE_PIN N17 [get_ports I2c_Scl]
+set_property IOSTANDARD LVCMOS33 [get_ports I2c_Scl]
+set_property PACKAGE_PIN P18 [get_ports I2c_Sda]
+set_property IOSTANDARD LVCMOS33 [get_ports I2c_Sda]
+
+# -------------------------------------------------------------------------------------------------
+# mars ax3: spi flash
+# -------------------------------------------------------------------------------------------------
+
+set_property PACKAGE_PIN L13 [get_ports Flash_Cs_N]
+set_property IOSTANDARD LVCMOS33 [get_ports Flash_Cs_N]
+set_property PACKAGE_PIN K17 [get_ports Flash_Di]
+set_property IOSTANDARD LVCMOS33 [get_ports Flash_Di]
+set_property PACKAGE_PIN M14 [get_ports Flash_Hold_N]
+set_property IOSTANDARD LVCMOS33 [get_ports Flash_Hold_N]
+set_property PACKAGE_PIN L14 [get_ports Flash_Wp_N]
+set_property IOSTANDARD LVCMOS33 [get_ports Flash_Wp_N]
+set_property PACKAGE_PIN R10 [get_ports Flash_Clk]
+set_property IOSTANDARD LVCMOS33 [get_ports Flash_Clk]
+set_property PACKAGE_PIN K18 [get_ports Flash_Do]
+set_property IOSTANDARD LVCMOS33 [get_ports Flash_Do]
+
+# -------------------------------------------------------------------------------------------------
+# mars ax3: led		
+# -------------------------------------------------------------------------------------------------
+
+set_property IOSTANDARD LVCMOS33 [get_ports {Led_N[2]}]
+set_property IOSTANDARD LVCMOS33 [get_ports {Led_N[1]}]
+set_property IOSTANDARD LVCMOS33 [get_ports {Led_N[0]}]
+set_property IOSTANDARD LVCMOS33 [get_ports {Led_N[3]}]
+set_property PACKAGE_PIN M17 [get_ports {Led_N[1]}]
+set_property PACKAGE_PIN M16 [get_ports {Led_N[0]}]
+set_property PACKAGE_PIN M18 [get_ports {Led_N[3]}]
+set_property PACKAGE_PIN L18 [get_ports {Led_N[2]}]
+
+# -------------------------------------------------------------------------------------------------
+# mars ax3: system		
+# -------------------------------------------------------------------------------------------------
+
+set_property PACKAGE_PIN R11 [get_ports Pwr_Good]
+set_property IOSTANDARD LVCMOS33 [get_ports Pwr_Good]
+set_property PACKAGE_PIN N15 [get_ports {Reset_N}]
+set_property IOSTANDARD LVCMOS33 [get_ports {Reset_N}]
+
+# -------------------------------------------------------------------------------------------------
+# mars pm3: fmc lpc connector
+# -------------------------------------------------------------------------------------------------
+set_property PACKAGE_PIN T4 [get_ports {CLK_TO_FPGA_N}]
+set_property PACKAGE_PIN T5 [get_ports {CLK_TO_FPGA_P}]
+set_property PACKAGE_PIN D3 [get_ports {CLK_FROM_FPGA_N}]
+set_property PACKAGE_PIN E3 [get_ports {CLK_FROM_FPGA_P}]
+
+set_property PACKAGE_PIN N5 [get_ports {CLK_GEN_LOL_N}]
+set_property PACKAGE_PIN C1 [get_ports {CLK_GEN_RST_N}]
+set_property PACKAGE_PIN C2 [get_ports {I2C_RESET_N}]
+set_property PACKAGE_PIN F6 [get_ports {GPIO}]
+
+set_property PACKAGE_PIN P5 [get_ports {CONT_TO_FPGA[0]}]
+set_property PACKAGE_PIN P3 [get_ports {CONT_TO_FPGA[1]}]
+set_property PACKAGE_PIN N6 [get_ports {CONT_TO_FPGA[2]}]
+set_property PACKAGE_PIN L5 [get_ports {CONT_TO_FPGA[3]}]
+
+# Warning - can't find CONT_FROM_FPGA[0] in Allegro netlist ....
+set_property PACKAGE_PIN P4 [get_ports {CONT_FROM_FPGA[1]}]
+set_property PACKAGE_PIN M6 [get_ports {CONT_FROM_FPGA[2]}]
+set_property PACKAGE_PIN L6 [get_ports {CONT_FROM_FPGA[3]}]
+
+set_property PACKAGE_PIN M1 [get_ports {SPARE_TO_FPGA[0]}]
+set_property PACKAGE_PIN N4 [get_ports {SPARE_TO_FPGA[1]}]
+set_property PACKAGE_PIN N1 [get_ports {SPARE_TO_FPGA[2]}]
+set_property PACKAGE_PIN M2 [get_ports {SPARE_TO_FPGA[3]}]
+
+set_property PACKAGE_PIN L1 [get_ports {SPARE_FROM_FPGA[0]}]
+set_property PACKAGE_PIN M4 [get_ports {SPARE_FROM_FPGA[1]}]
+set_property PACKAGE_PIN N2 [get_ports {SPARE_FROM_FPGA[2]}]
+set_property PACKAGE_PIN M3 [get_ports {SPARE_FROM_FPGA[3]}]
+
+set_property PACKAGE_PIN R5 [get_ports {TRIG_TO_FPGA[0]}]
+set_property PACKAGE_PIN R2 [get_ports {TRIG_TO_FPGA[1]}]
+set_property PACKAGE_PIN T1 [get_ports {TRIG_TO_FPGA[2]}]
+set_property PACKAGE_PIN V1 [get_ports {TRIG_TO_FPGA[3]}]
+
+set_property PACKAGE_PIN R6 [get_ports {TRIG_FROM_FPGA[0]}]
+set_property PACKAGE_PIN P2 [get_ports {TRIG_FROM_FPGA[1]}]
+set_property PACKAGE_PIN R1 [get_ports {TRIG_FROM_FPGA[2]}]
+set_property PACKAGE_PIN U1 [get_ports {TRIG_FROM_FPGA[3]}]
+
+set_property PACKAGE_PIN T6 [get_ports {BUSY_TO_FPGA[0]}]
+set_property PACKAGE_PIN U3 [get_ports {BUSY_TO_FPGA[1]}]
+set_property PACKAGE_PIN T8 [get_ports {BUSY_TO_FPGA[2]}]
+set_property PACKAGE_PIN L4 [get_ports {BUSY_TO_FPGA[3]}]
+
+set_property PACKAGE_PIN R7 [get_ports {BUSY_FROM_FPGA[0]}]
+set_property PACKAGE_PIN U4 [get_ports {BUSY_FROM_FPGA[1]}]
+set_property PACKAGE_PIN R8 [get_ports {BUSY_FROM_FPGA[2]}]
+set_property PACKAGE_PIN K5 [get_ports {BUSY_FROM_FPGA[3]}]
+
+set_property PACKAGE_PIN L3 [get_ports {DUT_CLK_TO_FPGA[0]}]
+set_property PACKAGE_PIN F3 [get_ports {DUT_CLK_TO_FPGA[1]}]
+set_property PACKAGE_PIN D2 [get_ports {DUT_CLK_TO_FPGA[2]}]
+set_property PACKAGE_PIN G3 [get_ports {DUT_CLK_TO_FPGA[3]}]
+
+set_property PACKAGE_PIN K3 [get_ports {DUT_CLK_FROM_FPGA_P[0]}]
+set_property PACKAGE_PIN F4 [get_ports {DUT_CLK_FROM_FPGA_P[1]}]
+set_property PACKAGE_PIN E2 [get_ports {DUT_CLK_FROM_FPGA_P[2]}]
+set_property PACKAGE_PIN G4 [get_ports {DUT_CLK_FROM_FPGA_P[3]}]
+
+set_property PACKAGE_PIN A1 [get_ports {BEAM_TRIGGER_N[0]}]
+set_property PACKAGE_PIN B1 [get_ports {BEAM_TRIGGER_P[0]}]
+set_property PACKAGE_PIN B4 [get_ports {BEAM_TRIGGER_N[1]}]
+set_property PACKAGE_PIN C4 [get_ports {BEAM_TRIGGER_P[1]}]
+set_property PACKAGE_PIN K1 [get_ports {BEAM_TRIGGER_N[2]}]
+set_property PACKAGE_PIN K2 [get_ports {BEAM_TRIGGER_P[2]}]
+set_property PACKAGE_PIN C5 [get_ports {BEAM_TRIGGER_N[3]}]
+set_property PACKAGE_PIN C6 [get_ports {BEAM_TRIGGER_P[3]}]
+set_property PACKAGE_PIN H4 [get_ports {BEAM_TRIGGER_N[4]}]
+set_property PACKAGE_PIN J4 [get_ports {BEAM_TRIGGER_P[4]}]
+set_property PACKAGE_PIN G1 [get_ports {BEAM_TRIGGER_N[5]}]
+set_property PACKAGE_PIN H1 [get_ports {BEAM_TRIGGER_P[5]}]
+
+# -------------------------------------------------------------------------------------------------
+# mars pm3: ft232 uart interface
+# -------------------------------------------------------------------------------------------------
+
+set_property IOSTANDARD LVCMOS33 [get_ports FTDI_RXD]
+set_property IOSTANDARD LVCMOS33 [get_ports FTDI_TXD]
+set_property PACKAGE_PIN B3 [get_ports FTDI_TXD]
+set_property PACKAGE_PIN B2 [get_ports FTDI_RXD]
+
+# -------------------------------------------------------------------------------------------------
+# mars pm3: ez-usb fx3 interface
+# -------------------------------------------------------------------------------------------------
+
+set_property PACKAGE_PIN V2 [get_ports FX3_A1]
+set_property IOSTANDARD LVCMOS33 [get_ports FX3_A1]
+set_property PACKAGE_PIN V7 [get_ports FX3_CLK]
+set_property IOSTANDARD LVCMOS33 [get_ports FX3_CLK]
+set_property PACKAGE_PIN U12 [get_ports FX3_DQ0]
+set_property IOSTANDARD LVCMOS33 [get_ports FX3_DQ0]
+set_property PACKAGE_PIN R15 [get_ports FX3_DQ1]
+set_property IOSTANDARD LVCMOS33 [get_ports FX3_DQ1]
+set_property PACKAGE_PIN U9 [get_ports FX3_DQ10]
+set_property IOSTANDARD LVCMOS33 [get_ports FX3_DQ10]
+set_property PACKAGE_PIN V5 [get_ports FX3_DQ11]
+set_property IOSTANDARD LVCMOS33 [get_ports FX3_DQ11]
+set_property PACKAGE_PIN T3 [get_ports FX3_DQ12]
+set_property IOSTANDARD LVCMOS33 [get_ports FX3_DQ12]
+set_property PACKAGE_PIN R3 [get_ports FX3_DQ13]
+set_property IOSTANDARD LVCMOS33 [get_ports FX3_DQ13]
+set_property PACKAGE_PIN V4 [get_ports FX3_DQ14]
+set_property IOSTANDARD LVCMOS33 [get_ports FX3_DQ14]
+set_property PACKAGE_PIN U7 [get_ports FX3_DQ15]
+set_property IOSTANDARD LVCMOS33 [get_ports FX3_DQ15]
+set_property PACKAGE_PIN V12 [get_ports FX3_DQ2]
+set_property IOSTANDARD LVCMOS33 [get_ports FX3_DQ2]
+set_property PACKAGE_PIN P15 [get_ports FX3_DQ3]
+set_property IOSTANDARD LVCMOS33 [get_ports FX3_DQ3]
+set_property PACKAGE_PIN U11 [get_ports FX3_DQ4]
+set_property IOSTANDARD LVCMOS33 [get_ports FX3_DQ4]
+set_property PACKAGE_PIN U13 [get_ports FX3_DQ5]
+set_property IOSTANDARD LVCMOS33 [get_ports FX3_DQ5]
+set_property PACKAGE_PIN T13 [get_ports FX3_DQ6]
+set_property IOSTANDARD LVCMOS33 [get_ports FX3_DQ6]
+set_property PACKAGE_PIN T11 [get_ports FX3_DQ7]
+set_property IOSTANDARD LVCMOS33 [get_ports FX3_DQ7]
+set_property PACKAGE_PIN V9 [get_ports FX3_DQ8]
+set_property IOSTANDARD LVCMOS33 [get_ports FX3_DQ8]
+set_property PACKAGE_PIN U6 [get_ports FX3_DQ9]
+set_property IOSTANDARD LVCMOS33 [get_ports FX3_DQ9]
+set_property PACKAGE_PIN V6 [get_ports FX3_FLAGA]
+set_property IOSTANDARD LVCMOS33 [get_ports FX3_FLAGA]
+set_property PACKAGE_PIN U2 [get_ports FX3_FLAGB]
+set_property IOSTANDARD LVCMOS33 [get_ports FX3_FLAGB]
+set_property PACKAGE_PIN T10 [get_ports FX3_PKTEND_N]
+set_property IOSTANDARD LVCMOS33 [get_ports FX3_PKTEND_N]
+set_property PACKAGE_PIN T9 [get_ports FX3_SLOE_N]
+set_property IOSTANDARD LVCMOS33 [get_ports FX3_SLOE_N]
+set_property PACKAGE_PIN R12 [get_ports FX3_SLRD_N]
+set_property IOSTANDARD LVCMOS33 [get_ports FX3_SLRD_N]
+set_property PACKAGE_PIN R13 [get_ports FX3_SLWR_N]
+set_property IOSTANDARD LVCMOS33 [get_ports FX3_SLWR_N]
+
+# -------------------------------------------------------------------------------------------------
+# timing constraints
+# -------------------------------------------------------------------------------------------------
+
+
+create_clock -name {Clk_50} -period 20.000 [get_ports {Clk_50}]
+
+
+# -------------------------------------------------------------------------------------------------
+# eof
+# -------------------------------------------------------------------------------------------------
+
+
+
diff --git a/legacy/TLU_v1e/hdl/clocks/clock_sim.vhd b/legacy/TLU_v1e/hdl/clocks/clock_sim.vhd
new file mode 100644
index 00000000..7a9e09e7
--- /dev/null
+++ b/legacy/TLU_v1e/hdl/clocks/clock_sim.vhd
@@ -0,0 +1,47 @@
+-- Behavioural model of clocks for ipbus testing
+--
+-- The clock edges are *not* delta cycle accurate
+-- Do not assume any phase relationship between clk125, clk25
+--
+-- Dave Newbold, March 2011
+
+library ieee;
+use ieee.std_logic_1164.all;
+
+entity clock_sim is
+	port(
+	  clko125: out std_logic;
+	  clko25: out std_logic;
+	  clko40: out std_logic;
+	  nuke: in std_logic;
+	  rsto: out std_logic
+  );
+
+end clock_sim;
+
+architecture behavioural of clock_sim is
+
+  signal clk125, clk25, clk40, nuke_del: std_logic := '0';
+  signal reset_vec: std_logic_vector(3 downto 0) := X"f";
+
+begin
+
+  clk125 <= not clk125 after 4 ns;
+  clk25 <= not clk25 after 20 ns;
+  clk40 <= not clk40 after 12.5ns;
+  
+  clko125 <= clk125;
+  clko25 <= clk25;
+  clko40 <= clk40;
+  
+  process(clk25)
+  begin
+    if rising_edge(clk25) then
+      reset_vec <= '0' & reset_vec(3 downto 1);
+    end if;
+  end process;
+
+  nuke_del <= nuke after 50us;
+  rsto <= reset_vec(0) or nuke_del;
+
+end behavioural;
\ No newline at end of file
diff --git a/legacy/TLU_v1e/hdl/clocks/clocks_7s_extphy.vhd b/legacy/TLU_v1e/hdl/clocks/clocks_7s_extphy.vhd
new file mode 100644
index 00000000..47c0f3b8
--- /dev/null
+++ b/legacy/TLU_v1e/hdl/clocks/clocks_7s_extphy.vhd
@@ -0,0 +1,148 @@
+-- clocks_7s_extphy
+--
+-- Generates a 125MHz ethernet clock and 31MHz ipbus clock from the 200MHz reference
+-- Also an unbuffered 200MHz clock for IO delay calibration block
+-- Includes reset logic for ipbus
+--
+-- Dave Newbold, April 2011
+--
+-- $Id$
+
+library ieee;
+use ieee.std_logic_1164.all;
+use ieee.numeric_std.all;
+
+library unisim;
+use unisim.VComponents.all;
+
+entity clocks_7s_extphy is
+	port(
+		sysclk_p: in std_logic;
+		sysclk_n: in std_logic;
+		clko_125: out std_logic;
+		clko_125_90: out std_logic;
+		clko_200: out std_logic;
+		clko_ipb: out std_logic;
+		locked: out std_logic;
+		nuke: in std_logic;
+		soft_rst: in std_logic;
+		rsto_125: out std_logic;
+		rsto_ipb: out std_logic;
+		rsto_ipb_ctrl: out std_logic;
+		onehz: out std_logic
+	);
+
+end clocks_7s_extphy;
+
+architecture rtl of clocks_7s_extphy is
+	
+	signal dcm_locked, sysclk, clk_ipb_i, clk_125_i, clk_125_90_i, clkfb, clk_ipb_b, clk_125_b: std_logic;
+	signal d17, d17_d: std_logic;
+	signal nuke_i, nuke_d, nuke_d2: std_logic := '0';
+	signal rst, srst, rst_ipb, rst_125, rst_ipb_ctrl: std_logic := '1';
+	signal rctr: unsigned(3 downto 0) := "0000";
+
+begin
+
+	ibufgds0: IBUFGDS port map(
+		i => sysclk_p,
+		ib => sysclk_n,
+		o => sysclk
+	);
+	
+	clko_200 <= sysclk; -- io delay ref clock only, no bufg
+
+	bufg125: BUFG port map(
+		i => clk_125_i,
+		o => clk_125_b
+	);
+
+	clko_125 <= clk_125_b;
+
+	bufg125_90: BUFG port map(
+		i => clk_125_90_i,
+		o => clk_125_90
+	);
+	
+	bufgipb: BUFG port map(
+		i => clk_ipb_i,
+		o => clk_ipb_b
+	);
+	
+	clko_ipb <= clk_ipb_b;
+	
+	mmcm: MMCME2_BASE
+		generic map(
+			clkfbout_mult_f => 5.0,
+			clkout1_divide => 8,
+			clkout2_divide => 8,
+			clkout2_phase => 90,
+			clkout3_divide => 32,
+			clkin1_period => 5.0
+		)
+		port map(
+			clkin1 => sysclk,
+			clkfbin => clkfb,
+			clkfbout => clkfb,
+			clkout1 => clk_125_i,
+			clkout2 => clk125_90_i,
+			clkout3 => clk_ipb_i,
+			locked => dcm_locked,
+			rst => '0',
+			pwrdwn => '0'
+		);
+	
+	clkdiv: entity work.ipbus_clock_div
+		port map(
+			clk => sysclk,
+			d17 => d17,
+			d28 => onehz
+		);
+	
+	process(sysclk)
+	begin
+		if rising_edge(sysclk) then
+			d17_d <= d17;
+			if d17='1' and d17_d='0' then
+				rst <= nuke_d2 or not dcm_locked;
+				nuke_d <= nuke_i; -- Time bomb (allows return packet to be sent)
+				nuke_d2 <= nuke_d;
+			end if;
+		end if;
+	end process;
+		
+	locked <= dcm_locked;
+	srst <= '1' when rctr /= "0000" else '0';
+	
+	process(clk_ipb_b)
+	begin
+		if rising_edge(clk_ipb_b) then
+			rst_ipb <= rst or srst;
+			nuke_i <= nuke;
+			if srst = '1' or soft_rst = '1' then
+				rctr <= rctr + 1;
+			end if;
+		end if;
+	end process;
+	
+	rsto_ipb <= rst_ipb;
+	
+	process(clk_ipb_b)
+	begin
+		if rising_edge(clk_ipb_b) then
+			rst_ipb_ctrl <= rst;
+		end if;
+	end process;
+	
+	rsto_ipb_ctrl <= rst_ipb_ctrl;
+	
+	process(clk_125_b)
+	begin
+		if rising_edge(clk_125_b) then
+			rst_125 <= rst;
+		end if;
+	end process;
+	
+	rsto_125 <= rst_125;
+			
+end rtl;
diff --git a/legacy/TLU_v1e/hdl/clocks/clocks_7s_extphy_se.vhd b/legacy/TLU_v1e/hdl/clocks/clocks_7s_extphy_se.vhd
new file mode 100644
index 00000000..90c77ffd
--- /dev/null
+++ b/legacy/TLU_v1e/hdl/clocks/clocks_7s_extphy_se.vhd
@@ -0,0 +1,151 @@
+-- clocks_7s_extphy_se
+--
+-- Generates a 125MHz ethernet clock and 31MHz ipbus clock from the 50MHz reference
+-- Also an unbuffered 200MHz clock for IO delay calibration block
+-- Includes reset logic for ipbus
+--
+-- Dave Newbold, April 2011
+--
+-- $Id$
+
+library ieee;
+use ieee.std_logic_1164.all;
+use ieee.numeric_std.all;
+
+library unisim;
+use unisim.VComponents.all;
+
+entity clocks_7s_extphy_Se is
+	port(
+		sysclk: in std_logic;
+		clko_125: out std_logic;
+		clko_125_90: out std_logic;
+		clko_200: out std_logic;
+		clko_ipb: out std_logic;
+		locked: out std_logic;
+		nuke: in std_logic;
+		soft_rst: in std_logic;
+		rsto_125: out std_logic;
+		rsto_ipb: out std_logic;
+		rsto_ipb_ctrl: out std_logic;
+		onehz: out std_logic
+	);
+
+end clocks_7s_extphy_se;
+
+architecture rtl of clocks_7s_extphy_se is
+	
+	signal dcm_locked, sysclk_i, clk_ipb_i, clk_125_i, clk_125_90_i, clkfb, clk_ipb_b, clk_125_b, clk_200_i: std_logic;
+	signal d17, d17_d: std_logic;
+	signal nuke_i, nuke_d, nuke_d2: std_logic := '0';
+	signal rst, srst, rst_ipb, rst_125, rst_ipb_ctrl: std_logic := '1';
+	signal rctr: unsigned(3 downto 0) := "0000";
+
+begin
+
+	ibufgds0: IBUFG port map(
+		i => sysclk,
+		o => sysclk_i
+	);
+	
+	bufg125: BUFG port map(
+		i => clk_125_i,
+		o => clk_125_b
+	);
+
+	clko_125 <= clk_125_b;
+
+	bufg125_90: BUFG port map(
+		i => clk_125_90_i,
+		o => clko_125_90
+	);
+	
+	bufgipb: BUFG port map(
+		i => clk_ipb_i,
+		o => clk_ipb_b
+	);
+	
+	clko_ipb <= clk_ipb_b;
+	
+	bufg200: BUFG port map(
+		i => clk_200_i,
+		o => clko_200
+	);	
+	
+	mmcm: MMCME2_BASE
+		generic map(
+			clkfbout_mult_f => 20.0,
+			clkout1_divide => 8,
+			clkout2_divide => 8,
+			clkout2_phase => 90.0,
+			clkout3_divide => 32,
+			clkout4_divide => 5,
+			clkin1_period => 20.0
+		)
+		port map(
+			clkin1 => sysclk_i,
+			clkfbin => clkfb,
+			clkfbout => clkfb,
+			clkout1 => clk_125_i,
+			clkout2 => clk_125_90_i,
+			clkout3 => clk_ipb_i,
+			clkout4 => clk_200_i,
+			locked => dcm_locked,
+			rst => '0',
+			pwrdwn => '0'
+		);
+	
+	clkdiv: entity work.ipbus_clock_div
+		port map(
+			clk => sysclk_i,
+			d17 => d17,
+			d28 => onehz
+		);
+	
+	process(sysclk_i)
+	begin
+		if rising_edge(sysclk_i) then
+			d17_d <= d17;
+			if d17='1' and d17_d='0' then
+				rst <= nuke_d2 or not dcm_locked;
+				nuke_d <= nuke_i; -- Time bomb (allows return packet to be sent)
+				nuke_d2 <= nuke_d;
+			end if;
+		end if;
+	end process;
+		
+	locked <= dcm_locked;
+	srst <= '1' when rctr /= "0000" else '0';
+	
+	process(clk_ipb_b)
+	begin
+		if rising_edge(clk_ipb_b) then
+			rst_ipb <= rst or srst;
+			nuke_i <= nuke;
+			if srst = '1' or soft_rst = '1' then
+				rctr <= rctr + 1;
+			end if;
+		end if;
+	end process;
+	
+	rsto_ipb <= rst_ipb;
+	
+	process(clk_ipb_b)
+	begin
+		if rising_edge(clk_ipb_b) then
+			rst_ipb_ctrl <= rst;
+		end if;
+	end process;
+	
+	rsto_ipb_ctrl <= rst_ipb_ctrl;
+	
+	process(clk_125_b)
+	begin
+		if rising_edge(clk_125_b) then
+			rst_125 <= rst;
+		end if;
+	end process;
+	
+	rsto_125 <= rst_125;
+			
+end rtl;
diff --git a/legacy/TLU_v1e/hdl/clocks/clocks_7s_extphy_se_MOD.vhd b/legacy/TLU_v1e/hdl/clocks/clocks_7s_extphy_se_MOD.vhd
new file mode 100644
index 00000000..7d67ef7b
--- /dev/null
+++ b/legacy/TLU_v1e/hdl/clocks/clocks_7s_extphy_se_MOD.vhd
@@ -0,0 +1,158 @@
+-- clocks_7s_extphy_se
+--
+-- Generates a 125MHz ethernet clock and 31MHz ipbus clock from the 50MHz reference
+-- Also an unbuffered 200MHz clock for IO delay calibration block
+-- Includes reset logic for ipbus
+--
+-- Dave Newbold, April 2011
+--
+-- $Id$
+
+library ieee;
+use ieee.std_logic_1164.all;
+use ieee.numeric_std.all;
+
+library unisim;
+use unisim.VComponents.all;
+
+entity clocks_7s_extphy_Se is
+	port(
+		--sysclk: in std_logic;
+		sysclk_p: in std_logic;--
+        sysclk_n: in std_logic;--
+        clko_125: out std_logic;--
+		clko_125_90: out std_logic;
+		clko_200: out std_logic;
+		clko_ipb: out std_logic;
+		locked: out std_logic;--
+		nuke: in std_logic;
+		soft_rst: in std_logic;
+		rsto_125: out std_logic;--
+		rsto_ipb: out std_logic;--
+		rsto_ipb_ctrl: out std_logic;
+		onehz: out std_logic--
+	);
+
+end clocks_7s_extphy_se;
+
+architecture rtl of clocks_7s_extphy_se is
+	
+	signal dcm_locked, sysclk_i, sysclk, clk_ipb_i, clk_125_i, clk_125_90_i, clkfb, clk_ipb_b, clk_125_b, clk_200_i: std_logic;
+	signal d17, d17_d: std_logic;
+	signal nuke_i, nuke_d, nuke_d2: std_logic := '0';
+	signal rst, srst, rst_ipb, rst_125, rst_ipb_ctrl: std_logic := '1';
+	signal rctr: unsigned(3 downto 0) := "0000";
+
+begin
+
+--	ibufgds0: IBUFG port map(
+--		i => sysclk,
+--		o => sysclk_i
+--	);
+    ibufgds0: IBUFGDS port map(
+    i => sysclk_p,
+    ib => sysclk_n,
+    o => sysclk
+    );
+	
+	bufg125: BUFG port map(
+		i => clk_125_i,
+		o => clk_125_b
+	);
+
+	clko_125 <= clk_125_b;
+
+	bufg125_90: BUFG port map(
+		i => clk_125_90_i,
+		o => clko_125_90
+	);
+	
+	bufgipb: BUFG port map(
+		i => clk_ipb_i,
+		o => clk_ipb_b
+	);
+	
+	clko_ipb <= clk_ipb_b;
+	
+	bufg200: BUFG port map(
+		i => clk_200_i,
+		o => clko_200
+	);	
+	
+	mmcm: MMCME2_BASE
+		generic map(
+			clkfbout_mult_f => 20.0,
+			clkout1_divide => 8,
+			clkout2_divide => 8,
+			clkout2_phase => 90.0,
+			clkout3_divide => 32,
+			clkout4_divide => 5,
+			clkin1_period => 20.0
+		)
+		port map(
+			clkin1 => sysclk_i,
+			clkfbin => clkfb,
+			clkfbout => clkfb,
+			clkout1 => clk_125_i,
+			clkout2 => clk_125_90_i,
+			clkout3 => clk_ipb_i,
+			clkout4 => clk_200_i,
+			locked => dcm_locked,
+			rst => '0',
+			pwrdwn => '0'
+		);
+	
+	clkdiv: entity work.ipbus_clock_div
+		port map(
+			clk => sysclk_i,
+			d17 => d17,
+			d28 => onehz
+		);
+	
+	process(sysclk_i)
+	begin
+		if rising_edge(sysclk_i) then
+			d17_d <= d17;
+			if d17='1' and d17_d='0' then
+				rst <= nuke_d2 or not dcm_locked;
+				nuke_d <= nuke_i; -- Time bomb (allows return packet to be sent)
+				nuke_d2 <= nuke_d;
+			end if;
+		end if;
+	end process;
+		
+	locked <= dcm_locked;
+	srst <= '1' when rctr /= "0000" else '0';
+	
+	process(clk_ipb_b)
+	begin
+		if rising_edge(clk_ipb_b) then
+			rst_ipb <= rst or srst;
+			nuke_i <= nuke;
+			if srst = '1' or soft_rst = '1' then
+				rctr <= rctr + 1;
+			end if;
+		end if;
+	end process;
+	
+	rsto_ipb <= rst_ipb;
+	
+	process(clk_ipb_b)
+	begin
+		if rising_edge(clk_ipb_b) then
+			rst_ipb_ctrl <= rst;
+		end if;
+	end process;
+	
+	rsto_ipb_ctrl <= rst_ipb_ctrl;
+	
+	process(clk_125_b)
+	begin
+		if rising_edge(clk_125_b) then
+			rst_125 <= rst;
+		end if;
+	end process;
+	
+	rsto_125 <= rst_125;
+			
+end rtl;
diff --git a/legacy/TLU_v1e/hdl/clocks/clocks_s6_extphy.vhd b/legacy/TLU_v1e/hdl/clocks/clocks_s6_extphy.vhd
new file mode 100644
index 00000000..d823b524
--- /dev/null
+++ b/legacy/TLU_v1e/hdl/clocks/clocks_s6_extphy.vhd
@@ -0,0 +1,137 @@
+--! @file clocks_s6_extphy
+-- 
+library ieee;
+use ieee.std_logic_1164.all;
+
+library unisim;
+use unisim.VComponents.all;
+
+--! @brief Generates a 125MHz ethernet clock and 31MHz ipbus clock from the 200MHz reference
+--! Includes reset logic for ipbus
+--
+--! @author Dave Newbold
+--! @date April 2011
+--
+entity clocks_s6_extphy is port(
+	sysclk_p, sysclk_n: in std_logic; --! From on board crystal. By default 200MHz
+	clk_logic_xtal_o : out std_logic; --! Clock for TLU timing logic ( when not using external clock ). sysclk/5 ( i.e. by default 40MHz) 
+	clko_125: out std_logic; --! 125MHz for IPBus logic
+	clko_ipb: out std_logic; --! 32.5MHz for IPBus logic
+	locked: out std_logic;
+	rsto_125: out std_logic;
+	rsto_ipb: out std_logic;
+	onehz: out std_logic
+	);
+
+end clocks_s6_extphy;
+
+architecture rtl of clocks_s6_extphy is
+
+	signal clk_ipb_i, clk_ipb_b, clk_125_i, clk_125_b, sysclk : std_logic;
+        -- signal sysclk_in : std_logic;
+	signal d25, d25_d, dcm_locked: std_logic;
+	signal rst: std_logic := '1';
+	signal s_xtal_dcm_locked: std_logic;
+        signal s_clk_logic_xtal : std_logic;
+	-- signal clk_400: std_logic;
+	
+--	component clock_divider_s6 port(
+--		clk: in std_logic;
+--		d25: out std_logic;
+--		d28: out std_logic
+--	);
+--	end component;
+	
+begin
+
+	ibufgds0: IBUFGDS port map(
+		i => sysclk_p,
+		ib => sysclk_n,
+		o => sysclk
+	);
+
+--        -- Add global clock buffer in sysclk path.
+--        bufg_sysclk : BUFG port map (
+--          i => sysclk_in,
+--          o => sysclk);
+        
+	bufg_125: BUFG port map(
+		i => clk_125_i,
+		o => clk_125_b
+	);
+	
+	clko_125 <= clk_125_b;
+	
+	bufg_ipb: BUFG port map(
+		i => clk_ipb_i,
+		o => clk_ipb_b
+	);
+	
+	bufg_clk_logic_xtal: BUFG port map(
+	  i => s_clk_logic_xtal,
+	  o => clk_logic_xtal_o
+	  );
+	  
+	clko_ipb <= clk_ipb_b;
+
+	dcm0: DCM_CLKGEN
+		generic map(
+			CLKIN_PERIOD => 5.0,
+			CLKFX_MULTIPLY => 5,
+			CLKFX_DIVIDE => 8,
+			CLKFXDV_DIVIDE => 4
+		)
+		port map(
+			clkin => sysclk,
+			clkfx => clk_125_i,
+			clkfxdv => clk_ipb_i,
+			locked => dcm_locked,
+			rst => '0'
+		);
+		
+	clkdiv: entity work.clock_divider_s6 port map(
+--        clkdiv: entity work.clock_div port map(
+		clk => sysclk,
+--                D17 => open,
+		d25 => d25,
+		d28 => onehz
+	);
+	  
+	process(sysclk)
+	begin
+		if rising_edge(sysclk) then
+			d25_d <= d25;
+			if d25='1' and d25_d='0' then
+				rst <= not dcm_locked;
+			end if;
+		end if;
+	end process;
+	
+	locked <= dcm_locked;
+
+	process(clk_ipb_b)
+	begin
+		if rising_edge(clk_ipb_b) then
+			rsto_ipb <= rst;
+		end if;
+	end process;
+	
+	process(clk_125_b)
+	begin
+		if rising_edge(clk_125_b) then
+			rsto_125 <= rst;
+		end if;
+	end process;
+
+        sys40_gen : BUFIO2
+          generic map (
+            DIVIDE => 5,            -- DIVCLK divider (1-8)
+            DIVIDE_BYPASS => FALSE) -- Bypass the divider circuitry (TRUE/FALSE)
+          port map (
+            I => SysClk,        -- 1-bit input: Clock input (connect to IBUFG)
+            DIVCLK =>  s_clk_logic_xtal,   -- 1-bit output: Divided clock output
+            IOCLK => open,          -- 1-bit output: I/O output clock
+            SERDESSTROBE => open);  -- 1-bit output: Output SERDES strobe (connect to ISERDES2/OSERDES2)
+        
+                
+end rtl;
diff --git a/legacy/TLU_v1e/hdl/coincidenceLogic_rtl.vhd b/legacy/TLU_v1e/hdl/coincidenceLogic_rtl.vhd
new file mode 100644
index 00000000..217fa224
--- /dev/null
+++ b/legacy/TLU_v1e/hdl/coincidenceLogic_rtl.vhd
@@ -0,0 +1,158 @@
+--=============================================================================
+--! @file stretchPulse_rtl.vhd
+--=============================================================================
+--
+-------------------------------------------------------------------------------
+-- --
+-- University of Bristol, High Energy Physics Group.
+-- --
+------------------------------------------------------------------------------- --
+-- VHDL Architecture fmc_mTLU_lib.triggerLogic.rtl
+--
+
+LIBRARY ieee;
+USE ieee.std_logic_1164.all;
+
+-- Include UNISIM to get CFGLUT5 definition
+Library UNISIM;
+use UNISIM.vcomponents.all;
+
+--! @brief Takes a set of input pulses and produces an output pulse based on trigger
+--! pattern. Defaults to "OR" of all inputs.
+--!
+--! @details If triggers_i matches a pattern in triggerPattern then trigger_o
+--! goes high for one clock cycle of logicClk_o. Load a new pattern by taking loadPattern_i high for one cycle of configClk_i
+--!
+--! @author David Cussans
+--! @date 2014
+-------------------------------------------------------------------------------
+
+entity coincidenceLogic is
+  
+  generic (
+    g_nInputs      : positive := 4;  --! Number of trigger inputs. Must be four for this implementation
+    g_patternWidth : positive := 32);  --! Width of trigger pattern. Must be 32 in this implementation
+
+  port (
+    configClk_i      : in  std_logic;   --! Rising edge active
+    logicClk_i       : in  std_logic;   --! Rising edge active
+    triggers_i       : in  std_logic_vector(g_nInputs-1 downto 0);  --! Array of trigger inputs
+    trigger_o        : out std_logic;  --! Goes high when trigger pattern matched
+    --auxTrigger_o     : out std_logic;  --! Goes high when auxillary trigger pattern matched
+    triggerPattern_low_i : in  std_logic_vector(g_patternWidth-1 downto 0);  --! Pattern to match triggers with (lowest 32-bits)
+    triggerPattern_high_i : in  std_logic_vector(g_patternWidth-1 downto 0);  --! Pattern to match triggers with (highest 32-bits)
+    loadPatternHi_i    : in std_logic; --! Pattern (high 32 bits) is loaded when loadPatternHi goes high.
+    loadPatternLo_i    : in  std_logic);  --! Pattern (low 32 bits) is loaded when loadPatternLo goes high.
+
+end entity coincidenceLogic;
+
+architecture rtl of coincidenceLogic is
+
+  signal s_configDataSR_low , s_configEnableSR_low: std_logic_vector( triggerPattern_low_i'range ) := ( others => '0' );  --! shift reg for config data
+  signal s_configDataSR_high , s_configEnableSR_high: std_logic_vector( triggerPattern_high_i'range ) := ( others => '0' );  --! shift reg for config data
+  signal s_configBit_low, s_configBit_high, s_configEnable_low, s_configEnable_high : std_logic := '0';  --! Take high to shift in configuration data.
+  signal s_trigOut_low, s_trigOut_high, s_auxTrigOut_low, s_auxTrigOut_high : std_logic := '0';  -- registers for output data. (s_auxTrig high and low should be removed)
+  
+begin  -- architecture rtl
+
+  --assert g_nInputs /= 4 report "Wrong number of inputs in coincidence logic" severity failure;
+  --assert g_patternWidth /= 32 report "Wrong pattern width in coincidence logic" severity failure;
+
+  -- See Xilinx UG615 ( Spartan-6 Libraries guide for HDL Designs"
+  -- We now need 6 inputs in the LUT and we need to dynamically change it so we merge two 5-inputs together:
+  -- one does the low 32 bits of the address table, the other the high 32 bits.
+  LUT_low : CFGLUT5
+    generic map (
+      INIT => X"FFFEFFFE") --! Default to "OR" of all inputs (exclude case with no input at all)
+    port map (
+      CDO => open, -- Reconfiguration cascade output
+      O5 => open ,  -- 4-LUT output
+      O6 => s_trigOut_low, -- 5-LUT output
+      CDI => s_configBit_low, -- Reconfiguration data input
+      CE => s_configEnable_low, -- Reconfiguration enable input
+      CLK => configClk_i, -- Clock input
+      I0 => triggers_i(0), -- Logic data input
+      I1 => triggers_i(1), -- Logic data input
+      I2 => triggers_i(2), -- Logic data input
+      I3 => triggers_i(3), -- Logic data input
+      I4 => triggers_i(4) --! Tie high to set O5 and O6 to different functions.
+      );
+   
+   LUT_high : CFGLUT5
+    generic map (
+        INIT => X"FFFFFFFF") --! Default to "OR" of all inputs
+    port map (
+        CDO => open, -- Reconfiguration cascade output
+        O5 => open ,  -- 4-LUT output
+        O6 => s_trigOut_high, -- 5-LUT output
+        CDI => s_configBit_high, -- Reconfiguration data input
+        CE => s_configEnable_high, -- Reconfiguration enable input
+        CLK => configClk_i, -- Clock input
+        I0 => triggers_i(0), -- Logic data input
+        I1 => triggers_i(1), -- Logic data input
+        I2 => triggers_i(2), -- Logic data input
+        I3 => triggers_i(3), -- Logic data input
+        I4 => triggers_i(4) --! Tie high to set O5 and O6 to different functions.
+    );   
+
+  p_controlInitLo: process (configClk_i , triggerPattern_low_i , loadPatternLo_i) is
+  begin  -- process p_controlInit
+
+    if rising_edge(configClk_i) then
+
+      -- Control configuration
+      if ( loadPatternLo_i = '1' ) then -- Load pattern into shift register
+        s_configDataSR_low <= triggerPattern_low_i;
+        s_configEnableSR_low <= ( others => '1');
+        s_configBit_low <= '0';
+        s_configEnable_low <= '0';
+      else -- If load isn't active then shift data out.
+        s_configBit_low    <= s_configDataSR_low( s_configDataSR_low'left ); --! Shift in MSB first.
+        s_configDataSR_low <= s_configDataSR_low( s_configDataSR_low'left-1 downto 0) & '0'; --! Shift up
+                
+        s_configEnable_low <= s_configEnableSR_low ( s_configEnableSR_low'left); --! enable will stay high for as long as there is data in config data SR
+        s_configEnableSR_low <= s_configEnableSR_low( s_configEnableSR_low'left-1 downto 0) & '0'; --! Shift up
+      end if;
+
+  end if;
+  end process p_controlInitLo;
+  
+  -- Add a second control for the secondary LUT introduced when we moved to 6 inputs.
+  p_controlInitHi: process (configClk_i , triggerPattern_high_i,  loadPatternHi_i) is
+    begin  -- process p_controlInit
+  
+      if rising_edge(configClk_i) then
+  
+        -- Control configuration
+        if ( loadPatternHi_i = '1' ) then -- Load pattern into shift register
+          s_configDataSR_high <= triggerPattern_high_i;
+          s_configEnableSR_high <= ( others => '1');
+          s_configBit_high <= '0';
+          s_configEnable_high <= '0';
+        else -- If load isn't active then shift data out.
+          s_configBit_high    <= s_configDataSR_high( s_configDataSR_high'left ); --! Shift in MSB first.
+          s_configDataSR_high <= s_configDataSR_high( s_configDataSR_high'left-1 downto 0) & '0'; --! Shift up
+                  
+          s_configEnable_high <= s_configEnableSR_high ( s_configEnableSR_high'left); --! enable will stay high for as long as there is data in config data SR
+          s_configEnableSR_high <= s_configEnableSR_high( s_configEnableSR_high'left-1 downto 0) & '0'; --! Shift up
+        end if;
+  
+    end if;
+    end process p_controlInitHi;
+
+  --! Register output data
+  p_registerData: process (logicClk_i) is
+  begin  -- process p_registerData
+    if rising_edge(logicClk_i) then
+        if triggers_i(5) = '0' then -- the LUT has 5 inputs. We use a MUX to considere the 6th one (triggers_i(5)).
+            trigger_o <=  s_trigOut_low;
+            --auxTrigger_o <= s_auxTrigOut_low;
+        else
+            trigger_o <=  s_trigOut_high;
+            --auxTrigger_o <= s_auxTrigOut_high;
+        end if;
+    end if;
+  end process p_registerData;
+  
+end architecture rtl;
+
diff --git a/legacy/TLU_v1e/hdl/coincidenceLogic_rtl_BKP.vhd b/legacy/TLU_v1e/hdl/coincidenceLogic_rtl_BKP.vhd
new file mode 100644
index 00000000..32b57b74
--- /dev/null
+++ b/legacy/TLU_v1e/hdl/coincidenceLogic_rtl_BKP.vhd
@@ -0,0 +1,108 @@
+--=============================================================================
+--! @file stretchPulse_rtl.vhd
+--=============================================================================
+--
+-------------------------------------------------------------------------------
+-- --
+-- University of Bristol, High Energy Physics Group.
+-- --
+------------------------------------------------------------------------------- --
+-- VHDL Architecture fmc_mTLU_lib.triggerLogic.rtl
+--
+
+LIBRARY ieee;
+USE ieee.std_logic_1164.all;
+
+-- Include UNISIM to get CFGLUT5 definition
+Library UNISIM;
+use UNISIM.vcomponents.all;
+
+--! @brief Takes a set of input pulses and produces an output pulse based on trigger
+--! pattern. Defaults to "OR" of all inputs.
+--!
+--! @details If triggers_i matches a pattern in triggerPattern then trigger_o
+--! goes high for one clock cycle of logicClk_o. Load a new pattern by taking loadPattern_i high for one cycle of configClk_i
+--!
+--! @author David Cussans
+--! @date 2014
+-------------------------------------------------------------------------------
+
+entity coincidenceLogic is
+  
+  generic (
+    g_nInputs      : positive := 4;  --! Number of trigger inputs. Must be four for this implementation
+    g_patternWidth : positive := 32);  --! Width of trigger pattern. Must be 32 in this implementation
+
+  port (
+    configClk_i      : in  std_logic;   --! Rising edge active
+    logicClk_i       : in  std_logic;   --! Rising edge active
+    triggers_i       : in  std_logic_vector(g_nInputs-1 downto 0);  --! Array of trigger inputs
+    trigger_o        : out std_logic;  --! Goes high when trigger pattern matched
+    auxTrigger_o     : out std_logic;  --! Goes high when auxillary trigger pattern matched
+    triggerPattern_i : in  std_logic_vector(g_patternWidth-1 downto 0);  --! Pattern to match triggers with
+    loadPattern_i    : in  std_logic);  --! Pattern is loaded when loadPattern goes high.
+
+end entity coincidenceLogic;
+
+architecture rtl of coincidenceLogic is
+
+  signal s_configDataSR , s_configEnableSR: std_logic_vector( triggerPattern_i'range ) := ( others => '0' );  --! shift reg for config data
+  signal s_configBit , s_configEnable : std_logic := '0';  --! Take high to shift in configuration data.
+  signal s_trigOut , s_auxTrigOut : std_logic := '0';  -- registers for output data.
+  
+begin  -- architecture rtl
+
+  --assert g_nInputs /= 4 report "Wrong number of inputs in coincidence logic" severity failure;
+  --assert g_patternWidth /= 32 report "Wrong pattern width in coincidence logic" severity failure;
+
+  -- See Xilinx UG615 ( Spartan-6 Libraries guide for HDL Designs"
+  CFGLUT5_inst : CFGLUT5
+    generic map (
+      INIT => X"FFFEFFFE") --! Default to "OR" of all inputs
+    port map (
+      CDO => open, -- Reconfiguration cascade output
+      O5 => s_trigOut ,  -- 4-LUT output
+      O6 => s_auxTrigOut, -- 5-LUT output
+      CDI => s_configBit, -- Reconfiguration data input
+      CE => s_configEnable, -- Reconfiguration enable input
+      CLK => configClk_i, -- Clock input
+      I0 => triggers_i(0), -- Logic data input
+      I1 => triggers_i(1), -- Logic data input
+      I2 => triggers_i(2), -- Logic data input
+      I3 => triggers_i(3), -- Logic data input
+      I4 => '1' --! Tie high to set O5 and O6 to different functions.
+      );
+
+  p_controlInit: process (configClk_i , triggerPattern_i , loadPattern_i) is
+  begin  -- process p_controlInit
+
+    if rising_edge(configClk_i) then
+
+      -- Contol configuration
+      if ( loadPattern_i = '1' ) then -- Load pattern into shift register
+        s_configDataSR <= triggerPattern_i;
+        s_configEnableSR <= ( others => '1');
+        s_configBit <= '0';
+        s_configEnable <= '0';
+      else -- If load isn't active then shift data out.
+        s_configBit    <= s_configDataSR( s_configDataSR'left ); --! Shift in MSB first.
+        s_configDataSR <= s_configDataSR( s_configDataSR'left-1 downto 0) & '0'; --! Shift up
+        
+        s_configEnable <= s_configEnableSR ( s_configEnableSR'left); --! enable will stay high for as long as there is data in config data SR
+        s_configEnableSR <= s_configEnableSR( s_configEnableSR'left-1 downto 0) & '0'; --! Shift up
+      end if;
+
+  end if;
+  end process p_controlInit;
+
+  --! Register output data
+  p_registerData: process (logicClk_i) is
+  begin  -- process p_registerData
+    if rising_edge(logicClk_i) then
+      trigger_o <=  s_trigOut;
+      auxTrigger_o <= s_auxTrigOut;
+    end if;
+  end process p_registerData;
+  
+end architecture rtl;
+
diff --git a/legacy/TLU_v1e/hdl/counterDown.vhd b/legacy/TLU_v1e/hdl/counterDown.vhd
new file mode 100644
index 00000000..de150900
--- /dev/null
+++ b/legacy/TLU_v1e/hdl/counterDown.vhd
@@ -0,0 +1,50 @@
+--Counter down
+--Outputs: 	Q<='1' while counting
+--				Q<='0' if not counting
+
+
+library ieee;
+use ieee.std_logic_1164.all;
+use ieee.numeric_std.all;
+
+
+ENTITY CounterDown IS
+	GENERIC(
+		MAX_WIDTH: positive := 32
+	);
+	PORT( 
+		Clk		: in  std_logic; 
+		Reset		: in  std_logic; 
+		Load 		: in  std_logic; 
+		InitVal 	: in std_logic_vector(MAX_WIDTH-1 downto 0);
+		Count		: out Std_logic_vector(MAX_WIDTH-1 downto 0);
+		Q 			: out std_logic
+	);
+END ENTITY CounterDown;
+
+architecture rtl of CounterDown is 
+	signal cnt	: std_logic_vector(MAX_WIDTH-1 downto 0);
+	signal Qtmp	: std_logic;
+  
+begin 
+	Counter: process (Clk, Reset)
+	begin 
+		if (Reset='1') then 
+			cnt <= (others =>'0');
+		elsif rising_edge(Clk) then
+			if (Load='1') then
+				cnt <= InitVal;
+			else
+				if Qtmp='0' then
+					cnt <= std_logic_vector(unsigned(cnt) - 1);
+				end if;
+			end if;
+		end if; 
+	end process;
+      
+	Qtmp <= 	'1' when cnt=(cnt'range=>'0') else
+				'0';
+          
+	Count <= cnt;
+	Q <= Qtmp;
+end rtl;
diff --git a/legacy/TLU_v1e/hdl/counterWithReset_rtl.vhd b/legacy/TLU_v1e/hdl/counterWithReset_rtl.vhd
new file mode 100644
index 00000000..2512f986
--- /dev/null
+++ b/legacy/TLU_v1e/hdl/counterWithReset_rtl.vhd
@@ -0,0 +1,84 @@
+--=============================================================================
+--! @file counterWithReset_rtl.vhd
+--=============================================================================
+-------------------------------------------------------------------------------
+-- --
+-- University of Bristol, High Energy Physics Group.
+-- --
+------------------------------------------------------------------------------- --
+-- unit name: counterWithReset (counterWithReset / rtl)
+--
+--============================================================================
+--! Entity declaration for counterWithReset
+--============================================================================
+LIBRARY ieee;
+USE ieee.std_logic_1164.ALL;
+use ieee.numeric_std.all;
+
+--! @brief Simple counter with synchronous reset
+--
+--! @author David Cussans , David.Cussans@bristol.ac.uk
+--
+--! @date Feb\2012
+--
+--! @version v0.1
+--
+-------------------------------------------------------------------------------
+--! @details
+--! \n\n<b>Last changes:</b>\n
+--! 5/Mar/12  DGC Changed to use numeric_std\n
+--! 26/Feb/14 DGC Added registers to output to aid timing closure.
+--! 
+
+
+
+ENTITY counterWithReset IS
+  GENERIC (g_COUNTER_WIDTH : integer := 32; --! Number of bits
+           g_OUTPUT_REGISTERS : integer := 4 --! Number of output registers. Minumum =1. Aids timing closure.
+           );
+  PORT
+    (
+      clock_i: 	IN STD_LOGIC;  --! rising edge active clock
+      reset_i:  IN STD_LOGIC;  --! Active high. syncronous with rising clk
+      enable_i: IN STD_LOGIC;  --! counts when enable=1
+      result_o:	OUT STD_LOGIC_VECTOR ( g_COUNTER_WIDTH-1 downto 0) --! Unsigned integer output
+      
+      );
+END counterWithReset;
+
+ARCHITECTURE rtl OF counterWithReset IS
+  type t_register_array is array(natural range <>) of UNSIGNED ( g_COUNTER_WIDTH-1 downto 0) ;  -- --! Array of arrays for output register...
+  signal s_output_registers : t_register_array(g_OUTPUT_REGISTERS downto 0) := ( others => ( others => '0'));  -- --! Output registers.
+  
+BEGIN
+
+  --! Process to count up from zero when enable_i is high.
+  p_counter: PROCESS (clock_i)
+  BEGIN
+    IF rising_edge(clock_i) THEN
+      IF (reset_i = '1') THEN
+        s_output_registers(0) <= (others => '0');
+      ELSIF (enable_i='1') THEN
+        s_output_registers(0) <= s_output_registers(0) + 1;
+      END IF;
+    END IF;
+  END PROCESS p_counter;
+
+  --! Generate some output registers. Number controlled by g_OUTPUT_REGISTERS
+  generate_registers: for v_register in 1 to g_OUTPUT_REGISTERS generate
+
+    --! An individual register
+    p_outputRegister: process (clock_i)
+    begin  -- process p_outputRegister
+      if rising_edge(clock_i) then
+        s_output_registers( v_register) <=
+        s_output_registers( v_register-1);
+      end if;
+    end process p_outputRegister;
+    
+  end generate generate_registers;  -- v_register
+
+  --! Copy the (registered) result to the output 
+  result_o <= STD_LOGIC_VECTOR(s_output_registers(g_OUTPUT_REGISTERS));
+  
+END rtl;		
diff --git a/legacy/TLU_v1e/hdl/dut/DUTInterface_AIDA_rtl.vhd b/legacy/TLU_v1e/hdl/dut/DUTInterface_AIDA_rtl.vhd
new file mode 100644
index 00000000..d6d9ac80
--- /dev/null
+++ b/legacy/TLU_v1e/hdl/dut/DUTInterface_AIDA_rtl.vhd
@@ -0,0 +1,152 @@
+--=============================================================================
+--! @file DUTInterface_AIDA_rtl.vhd
+--=============================================================================
+--
+-------------------------------------------------------------------------------
+-- --
+-- University of Bristol, High Energy Physics Group.
+-- --
+------------------------------------------------------------------------------- --
+-- VHDL Architecture fmc_mTLU_lib.DUTInterface_AIDA.rtl
+--
+--------------------------------------------------------------------------------
+--
+LIBRARY ieee;
+USE ieee.std_logic_1164.all;
+
+--! @brief "AIDA Style" Interface to a Device Under Test (DUT) connector.
+--! factorized from original DUTInterfaces_rtl.vhd firmware.
+--!
+--! @author David Cussans , David.Cussans@bristol.ac.uk
+--!
+--! @date 1/Sept/2015
+--!
+--! @version v0.1
+--!
+--! @details
+--
+
+ENTITY DUTInterface_AIDA IS
+   GENERIC( 
+      g_IPBUS_WIDTH : positive := 32
+   );
+   PORT( 
+      clk_4x_logic_i          : IN     std_logic;
+      strobe_4x_logic_i       : IN     std_logic;      --! goes high every 4th clock cycle
+      trigger_counter_i       : IN     std_logic_vector (g_IPBUS_WIDTH-1 DOWNTO 0);  --! Number of trigger events since last reset
+      trigger_i               : IN     std_logic;      --! goes high when trigger logic issues a trigger
+      reset_or_clk_to_dut_i   : IN     std_logic;      --! Synchronization signal. Passed to DUT pins
+      shutter_to_dut_i        : IN     std_logic;      --! Goes high to indicate data-taking active. DUTs report busy unless ignore_shutter_veto  flag is set high
+      ignore_shutter_veto_i   : in     std_logic;
+      ignore_dut_busy_i       : in     std_logic;
+      dut_mask_i              : in     std_logic;      --! Set high if DUT is active.
+      busy_o                  : OUT    std_logic;      --! goes high when DUT is busy or vetoed by shutter
+      
+      -- Signals to/from DUT
+      dut_busy_i       : IN     std_logic;     --! BUSY input from DUTs
+      dut_clk_o        : OUT    std_logic;     --! clocks trigger data when in EUDET mode
+      dut_reset_or_clk_o : OUT    std_logic;     --! Either reset line or trigger
+      dut_shutter_o      : OUT    std_logic;     --! Shutter output. Output 0 (RJ45) has no shutter signal
+      dut_trigger_o      : OUT    std_logic     --! Trigger output
+
+   );
+
+-- Declarations
+
+END ENTITY DUTInterface_AIDA ;
+
+--
+ARCHITECTURE rtl OF DUTInterface_AIDA IS
+
+  signal s_strobe_4x_logic_d1 : std_logic;
+  signal s_dut_clk : std_logic := '0';  -- Clock to be sent to DUT connectors ( before final register )
+  signal s_dut_clk_sr : std_logic_vector(2 downto 0) := "001"; --! Gets shifted out by clk_4x logic. Loaded by strobe_4x_logic
+  signal s_stretch_trig_in : std_logic := '0';  -- ! stretched version of trigger_i 
+  signal s_stretch_trig_in_sr : std_logic_vector(2 downto 0) := "111"; --! Gets shifted out by clk_4x logic. Loaded by trigger_i
+  signal s_trigger_out : std_logic := '0';  -- ! trigger shifted to start on strobe_4x_logic
+
+  -- Set length of output trigger here ( output length = length of this vector + 1 ) 
+  signal s_trigger_out_sr : std_logic_vector(2 downto 0) := ( others => '1'); --! Gets shifted out by clk_4x logic. Loaded by strobe_4x_logic.
+  
+                                                               
+BEGIN
+
+     
+  -- Copy reset/clk signal straight through
+  dut_reset_or_clk_o <= reset_or_clk_to_dut_i;
+
+  dut_shutter_o <= shutter_to_dut_i;
+      
+  -- purpose: generates a clock from 4x clock and strobe ( high once every 4 cycles )
+  -- should produce 11001100... etc. ie. 40MHz clock from 160MHz clock
+  -- type   : combinational
+  -- inputs : clk_4x_logic_i , strobe_4x_i
+  -- outputs: s_dut_clk
+  p_dut_clk_gen: process (clk_4x_logic_i , strobe_4x_logic_i) is
+  begin  -- process p_dut_clk_gen
+    if rising_edge(clk_4x_logic_i) then
+      if (strobe_4x_logic_i = '1') then
+        s_dut_clk <= '1';
+        s_dut_clk_sr <= "001";
+      else
+        s_dut_clk <= s_dut_clk_sr(0);
+        s_dut_clk_sr <= '0' & s_dut_clk_sr(s_dut_clk_sr'left downto 1);          
+      end if;
+    end if;
+  end process p_dut_clk_gen;
+
+  -- purpose: re-times a single cycle pulse on trigger on clk_4x_logic onto clk_logic 
+  -- type   : combinational
+  -- inputs : clk_4x_logic_i , strobe_4x_logic_i , trigger_i
+  -- outputs: s_premask_trigger_to_dut
+  p_dut_trig_retime: process (clk_4x_logic_i , strobe_4x_logic_i , trigger_i) is
+  begin  -- process p_dut_trig_retime
+    if rising_edge(clk_4x_logic_i)  then
+
+      -- Stretch trigger_i pulse to 4 clock cycles on clk4x
+      if trigger_i = '1' then
+        s_stretch_trig_in <= '1';
+        s_stretch_trig_in_sr <= ( others => '1' );
+      else
+        s_stretch_trig_in <= s_stretch_trig_in_sr(0);
+        s_stretch_trig_in_sr <= '0' & s_stretch_trig_in_sr(s_stretch_trig_in_sr'left downto 1);
+      end if;
+
+      -- 
+      if (strobe_4x_logic_i  = '1') and ( s_stretch_trig_in = '1' ) then
+        s_trigger_out <= '1';
+        s_trigger_out_sr <= ( others => '1' );
+      else
+        s_trigger_out <= s_trigger_out_sr(0);
+        s_trigger_out_sr <= '0' & s_trigger_out_sr(s_trigger_out_sr'left downto 1);
+      end if;
+      
+    end if;
+  end process p_dut_trig_retime;
+
+    
+  -- purpose: register for internal signals and output signals
+  -- type   : combinational
+  -- inputs : clk_4x_logic_i , strobe_4x_logic_i , s_veto
+  -- outputs: busy_o
+  register_signals: process (clk_4x_logic_i)-- , strobe_4x_logic_i , s_veto)
+  begin  -- process register_signals
+    if rising_edge(clk_4x_logic_i) then
+
+      s_strobe_4x_logic_d1 <= strobe_4x_logic_i;
+
+      --busy_o <= ((not ignore_shutter_veto_i ) and (not shutter_to_dut_i)) or
+      --          ((dut_busy_i and DUT_mask_i ) and (not ignore_dut_busy_i) );
+                
+      busy_o <= ((not ignore_shutter_veto_i ) and (not shutter_to_dut_i)) or
+                ( (dut_busy_i and DUT_mask_i )  );
+
+      dut_clk_o <= s_dut_clk ;
+      dut_trigger_o <= DUT_mask_i and s_trigger_out;
+      
+    end if;
+  end process register_signals;
+
+  
+END ARCHITECTURE rtl;
+
diff --git a/legacy/TLU_v1e/hdl/dut/DUTInterface_EUDET_rtl.vhd b/legacy/TLU_v1e/hdl/dut/DUTInterface_EUDET_rtl.vhd
new file mode 100644
index 00000000..cd56e09b
--- /dev/null
+++ b/legacy/TLU_v1e/hdl/dut/DUTInterface_EUDET_rtl.vhd
@@ -0,0 +1,277 @@
+--! @file
+-------------------------------------------------------------------------------
+--
+--
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+
+--! @brief "EUDET style" interfaces to a DUT connection. Outputs TRIGGER and receives DUT_CLK and BUSY
+--! lines. Adapted from Trigger_Signal_Controller from EUDET TLU firmware.
+--!
+--! @author David.Cussans@bristol.ac.uk
+--! @date 1/Sept/2015
+------------------------------------------------------------------------------------
+entity DUTInterface_EUDET is
+  GENERIC( 
+    g_TRIGGER_DATA_WIDTH : positive := 32 -- was32
+   );
+  port (
+    rst_i : in std_logic;                --! asynchronous reset. Active high
+    busy_o : out std_logic;             --! low if FSM is in IDLE state, high otherwise
+    fsm_state_value_o : out std_logic_vector(3 downto 0);  --! detailed status of FSM.
+    trigger_i : in std_logic;        --! Trigger retimed onto system clock.active high. 
+    trigger_counter_i : in std_logic_vector(g_TRIGGER_DATA_WIDTH-1 downto 0);  --! event number
+    system_clk_i : in std_logic;          --! rising edge active clock from TLU
+    reset_or_clk_to_dut_i   : IN     std_logic;  --! Synchronization signal. Passed to DUT pins
+    shutter_to_dut_i        : IN     std_logic;  --! Goes high to indicate data-taking active. DUTs report busy unless ignoreShutterVeto flag set high
+    ignore_shutter_veto_i        : in     std_logic;
+    enable_dut_veto_i : in std_logic;      --! If high: if DUT raises dut_busy_i, then  busy_o is raised
+    -- Connections to DUT:
+    dut_clk_i : in std_logic;             --! rising edge active clock from DUT
+    dut_busy_i : in std_logic;            --! from DUT
+    dut_shutter_o      : OUT    std_logic;     --! Shutter output.
+    dut_trigger_o : out std_logic    --! trigger to DUT
+    );
+end DUTInterface_EUDET;
+
+architecture rtl of DUTInterface_EUDET is
+
+-----------------------------------------------------------------------------
+-- Declarations for state machine
+  type state_type is (IDLE , WAIT_FOR_BUSY_HIGH , TRIGGER_DEGLITCH_DELAY1 ,
+                      TRIGGER_DEGLITCH_DELAY2 , WAIT_FOR_BUSY_LOW 
+                     , DUT_INITIATED_VETO );
+--                      );
+  signal state , next_state : state_type;
+
+  -- Xilinx Voodoo for state machine
+  attribute SAFE_IMPLEMENTATION : string;
+  attribute SAFE_IMPLEMENTATION of state : signal is "yes";
+  -- End of Xilinx Voodoo
+
+-----------------------------------------------------------------------------
+
+--  signal internal_clk : std_logic;
+  signal serial_trig_data : std_logic;
+  signal trig_shift_reg : std_logic_vector(g_TRIGGER_DATA_WIDTH-1 downto 0);  
+                                        -- shift register storing parallel trigger data
+--  signal d1_output  :  std_logic;
+--  signal d2_output  :  std_logic;
+  signal dut_rising_edge  :  std_logic;
+  signal shift_reg_ce  :  std_logic;
+
+  signal dut_busy_r1 , dut_busy_r2 , dut_clk_r1 , dut_clk_r2 : std_logic;  -- ! registered values
+  signal trigger_counter_copy : std_logic_vector(g_TRIGGER_DATA_WIDTH-1 downto 0);  --! registered copy of event number
+  
+begin  -- rtl
+
+
+  dut_shutter_o <= shutter_to_dut_i ; -- for now just pass through.
+  
+  -- purpose: suppress meta-stability by registering input signals.
+  -- type   : combinational
+  -- inputs : dut_busy_r1 , dut_busy_r2 , dut_clk_r1 , dut_clk_r2
+  -- outputs: dut_busy_r2 , dut_clk_r2
+  register_signals: process ( dut_busy_r1 , dut_clk_r1 , system_clk_i )
+  begin  -- process register_signals
+    if rising_edge(system_clk_i) then
+
+      dut_busy_r2 <= dut_busy_r1 ;
+      dut_clk_r2 <= dut_clk_r1;
+      dut_busy_r1 <= dut_busy_i ;
+      dut_clk_r1 <= dut_clk_i;
+      
+    end if;
+  end process register_signals;
+
+
+  
+  rising_edge_pulse: entity work.single_pulse
+    port map (
+      level => dut_clk_i,
+      clk   => system_clk_i,
+      pulse => dut_rising_edge);
+
+  
+-- look for the rising edge of DUT clock and enable CE for one cycle.
+  -- I have a nasty suspicion that meta-stability issues may make this
+  -- go horribly wrong .
+-- Need to add timing constraint that shift_reg_ce must arrive before clock at trig_data_driver
+-- also WAIT_FOR_BUSY_LOW must not mess things up.
+  clk_enable_select: process (state, dut_rising_edge)
+begin  -- process
+  if (state=WAIT_FOR_BUSY_LOW) then
+    shift_reg_ce <= dut_rising_edge;
+  else
+    shift_reg_ce <= '0';
+  end if;
+end process;
+
+  
+   
+  
+  -- purpose: controls the serial_trig_data line
+  -- type   : combinational
+  -- inputs : system_clk_i , trigger_counter_i
+  -- outputs: serial_trig_data
+  trig_data_driver: process (system_clk_i , trigger_counter_copy , shift_reg_ce , trig_shift_reg , state)
+  begin
+    
+    if rising_edge( system_clk_i ) then
+
+      -- if busy is high in response to a trigger shift data out of
+      -- register on rising edge of DUT clock . This is done by having a slow
+      -- DUT clock and setting shift_reg_ce for one cycle of system_clk_i when
+      -- the DUT clock rising edge comes by.
+      if (shift_reg_ce ='1' ) then
+        trig_shift_reg <= '0' & trig_shift_reg(g_TRIGGER_DATA_WIDTH-1 downto 1);
+        serial_trig_data <= trig_shift_reg(0);
+
+      -- otherwise load shift register if we have just had a trigger.
+      elsif (state = WAIT_FOR_BUSY_HIGH ) then        
+	-- only clock out bottom 15 bits of data. 
+        -- (replace fixed width with a mask at some stage ?)
+	trig_shift_reg <=  "00000000000000000" & trigger_counter_copy(14 downto 0);
+        serial_trig_data <= '0';
+      end if;
+
+    end if;
+    
+  end process trig_data_driver;
+
+
+  -- purpose: Determine the next state
+  -- type   : combinational
+  -- inputs : state,Dut_Busy_r2, trigger_i
+  state_logic: process (state,  trigger_i ,  enable_dut_veto_i , dut_clk_r2, dut_busy_r2 )
+  begin  -- process state_logic
+    case state is
+	 
+      when IDLE =>
+        if ( trigger_i = '1') then  -- respond to trigger going high
+          next_state <= WAIT_FOR_BUSY_HIGH;  -- wait for DUT to respond to busy
+          trigger_counter_copy <= trigger_counter_i; -- register the trigger number to shift it out
+
+        elsif ( (dut_clk_r2 = '1') and (enable_dut_veto_i = '1') ) then      -- If DUT asserts DUT_CLK_I then veto triggers
+          next_state <= DUT_INITIATED_VETO;          
+
+        else          
+          next_state <= IDLE;
+        end if;
+
+      when WAIT_FOR_BUSY_HIGH =>
+        if (DUT_Busy_r2 = '1') then
+          next_state <= TRIGGER_DEGLITCH_DELAY1;
+        else
+          next_state <= WAIT_FOR_BUSY_HIGH;
+        end if;
+
+        -- put in a pause to supress glitch in output trigger
+        -- this is an inelegant (to say the least ) way of doing it.
+      when TRIGGER_DEGLITCH_DELAY1 =>
+          next_state <= TRIGGER_DEGLITCH_DELAY2;
+
+      -- delay for two clock cycles.
+      when TRIGGER_DEGLITCH_DELAY2 =>
+        next_state <= WAIT_FOR_BUSY_LOW;
+
+
+
+      when WAIT_FOR_BUSY_LOW =>
+        if (DUT_Busy_r2 = '1')  then
+          next_state <= WAIT_FOR_BUSY_LOW;
+        else
+          next_state <= IDLE;
+        end if;        
+
+      when DUT_INITIATED_VETO =>
+        if (( dut_clk_r2 = '0' ) or ( enable_dut_veto_i = '0')) then
+          next_state <= IDLE;
+        else
+          next_state <= DUT_INITIATED_VETO;
+        end if;
+        
+    end case;
+  end process state_logic;
+
+  -- determine clock select and trigger_mux from FSM state
+
+  
+  -- purpose: Determines the state of the dut_trigger_o output based on the state of the FSM
+  -- type   : combinational
+  -- inputs : state
+  -- outputs: dut_trigger_o
+  output_logic: process (state,serial_trig_data)
+  begin  -- process output_logic
+    if ( state = IDLE ) then
+      -- waiting for external trigger to arrive...
+      dut_trigger_o <= '0';
+    elsif ((state = WAIT_FOR_BUSY_HIGH) or ( state=TRIGGER_DEGLITCH_DELAY1) or (state=TRIGGER_DEGLITCH_DELAY2) ) then
+      -- wait until the BUSY line goes high, then continue to hold TRIGGER high for two clock cycles.
+      dut_trigger_o <= '1';
+    elsif (state = WAIT_FOR_BUSY_LOW) then
+      -- if BUSY is high then connect TRIGGER to serial trigger number register.
+      dut_trigger_o <= serial_trig_data;
+    else
+      dut_trigger_o <= '0';
+    end if;
+  end process output_logic;
+
+    -- purpose: Register that holds the current state of the FSM
+  -- type   : combinational
+  -- inputs : system_clk_i , rst_i
+  -- outputs: state
+  state_register: process (system_clk_i , rst_i)
+  begin  -- process state_register
+    if (rst_i = '1') then
+      state <= IDLE;
+    elsif rising_edge(system_clk_i) then
+      state <= next_state;
+    end if;
+  end process state_register;
+
+
+  -- purpose: sets the value of clock_select based on FSM state
+  -- type   : combinational
+  -- inputs : state
+  -- outputs: clock_select , trigger_muxsel , fsm_state
+  set_busy: process (system_clk_i , state)
+  begin  -- process set_muxsel
+    if rising_edge(system_clk_i) then
+          if (state = IDLE) then
+            busy_o <= '0';
+          else
+            busy_o <= '1';
+          end if;
+    end if;
+ end process set_busy;
+  
+  -- purpose: Sets the fsm_state_value_o vector to a number representing the current state
+  -- type   : combinational
+  -- inputs : system_clk_i , state
+  -- outputs: fsm_state_value_o
+  store_state: process (system_clk_i , state)
+  begin  -- process store_state
+    case state is
+      when IDLE =>
+        fsm_state_value_o <= "0000";
+      when WAIT_FOR_BUSY_HIGH =>
+        fsm_state_value_o <= "0001";
+      when TRIGGER_DEGLITCH_DELAY1 =>
+        fsm_state_value_o <= "0010";
+      when TRIGGER_DEGLITCH_DELAY2 =>
+        fsm_state_value_o <= "0011";
+      when WAIT_FOR_BUSY_LOW =>
+        fsm_state_value_o <= "0100";
+      when DUT_INITIATED_VETO =>
+        fsm_state_value_o <= "0101";
+      when others =>
+        fsm_state_value_o <= "1111";
+    end case;
+  end process store_state;
+
+
+
+  end rtl;
+
diff --git a/legacy/TLU_v1e/hdl/dut/DUTInterfaces_rtl.vhd b/legacy/TLU_v1e/hdl/dut/DUTInterfaces_rtl.vhd
new file mode 100644
index 00000000..ba5d800c
--- /dev/null
+++ b/legacy/TLU_v1e/hdl/dut/DUTInterfaces_rtl.vhd
@@ -0,0 +1,358 @@
+--=============================================================================
+--! @file DUTInterfaces_rtl.vhd
+--=============================================================================
+--
+-------------------------------------------------------------------------------
+-- --
+-- University of Bristol, High Energy Physics Group.
+-- --
+------------------------------------------------------------------------------- --
+-- VHDL Architecture fmc_mTLU_lib.DUTInterfaces.rtl
+--
+--------------------------------------------------------------------------------
+-- 
+-- Created using using Mentor Graphics HDL Designer(TM) 2010.3 (Build 21)
+--
+-- hds interface_start
+LIBRARY ieee;
+USE ieee.std_logic_1164.all;
+USE ieee.numeric_std.all;
+
+USE work.ipbus.all;
+use work.ipbus_reg_types.all;
+
+library unisim;
+use unisim.VComponents.all;
+
+--! @brief Interfaces to Device Under Test (DUT) connectors.
+--!
+--! @author David Cussans , David.Cussans@bristol.ac.uk
+--!
+--! @date 15:09:50 11/09/12
+--!
+--! @version v0.1
+--!
+--! @details
+--! \n\n IPBUS Address map:
+--! \n (Decodes 4 bits)
+--! \li 0x00000000 - DUT mask(write). 1 = active , 0 = inactive. Inactive DUT don't contribute to BUSY. One bit per DUT XXXXXXXXXXXXXXXXXXXXXXBA9876543210
+--! \li 0x00000001 - Ignore DUT busy. 1 = ignore BUSY from this connector
+--! \li 0x00000002 - Ignore shutter veto. 0 = raising shutter vetos triggers.
+--! \li 0x00000003 - DUT interface mode, two bits per DUT. Up to 12 inputs  XXXXXXXXBBAA99887766554433221100 mode: 0 = EUDET mode , 1 = synchronous/AIDA ( LHC / Timepix ) , 2,3=reserved
+--! \li 0x00000004 - DUT mode modifier: XXXXXXXXBBAA99887766554433221100 in EUDET mode: 0 = standard trigger/busy mode, 1 = raising BUSY outside handshake vetoes triggers
+--! \li 0x00000008 - DUT mask ( read )
+--! \li 0x0000000D - EUDET interface FSM status. Packed 4 bits per i/face ( read )
+--!
+--!
+--! <b>Modified by:</b>\n
+--! -----------------------------------------------------------------------------
+--! \n\n<b>Last changes:</b>\n
+-------------------------------------------------------------------------------
+-- todo  Indicate if the DUT works under AIDA/EUDET style
+--
+ENTITY DUTInterfaces IS
+   GENERIC( 
+      g_NUM_DUTS    : positive := 3;
+      g_IPBUS_WIDTH : positive := 32
+   );
+   PORT( 
+      clk_4x_logic_i          : IN     std_logic;
+      strobe_4x_logic_i       : IN     std_logic;                                    --! goes high every 4th clock cycle
+      trigger_counter_i       : IN     std_logic_vector (g_IPBUS_WIDTH-1 DOWNTO 0);  --! Number of trigger events since last reset
+      trigger_i               : IN     std_logic;                                    --! goes high when trigger logic issues a trigger
+      reset_or_clk_to_dut_i   : IN     std_logic;                                    --! Synchronization signal. Passed to DUT pins
+      shutter_to_dut_i        : IN     std_logic;                                    --! Goes high to indicate data-taking active. DUTs report busy unless ignoreShutterVeto IPBus flag is set high
+      -- IPBus signals.
+      ipbus_clk_i             : IN     std_logic;
+      ipbus_i                 : IN     ipb_wbus;                                     --! Signals from IPBus core to slave
+      ipbus_reset_i           : IN     std_logic;
+      ipbus_o                 : OUT    ipb_rbus;                                     --! signals from slave to IPBus core
+      -- Signals to/from DUT
+      busy_from_dut       : IN     std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);     --! BUSY input from DUTs (single ended)
+      busy_to_dut       : OUT     std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);     --! BUSY input to DUTs (single ended)
+      clk_from_dut  : IN std_logic_vector(g_NUM_DUTS-1 DOWNTO 0); --new signal for TLU, replace differential I/O
+      clk_to_dut : OUT std_logic_vector(g_NUM_DUTS-1 DOWNTO 0); --new signal for TLU, replace differential I/O
+      trigger_to_dut : OUT    std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);     --! Trigger output
+      
+      --clk_to_dut_n_io         : INOUT  std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);     --! clocks trigger data when in EUDET mode
+      --clk_to_dut_p_io         : INOUT  std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);     --! clocks trigger data when in EUDET mode
+      --reset_or_clk_to_dut_n_o : OUT    std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);     --! Either reset line or trigger
+      --reset_or_clk_to_dut_p_o : OUT    std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);     --! Either reset line or trigger
+      reset_to_dut: OUT    std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);     --! Replaces reset_or_clk_to_dut
+      --trigger_to_dut_n_o      : OUT    std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);     --! Trigger output
+      --trigger_to_dut_p_o      : OUT    std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);     --! Trigger output
+      --shutter_to_dut_n_o      : OUT    std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);     --! Shutter output. Output 0 (RJ45) has no shutter signal
+      --shutter_to_dut_p_o      : OUT    std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);     --! Shutter output
+      shutter_to_dut      : OUT    std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);     --! Shutter output
+      veto_o                  : OUT    std_logic                                     --! goes high when one or more DUT are busy or vetoed by shutter
+   );
+
+-- Declarations
+
+END ENTITY DUTInterfaces ;
+-- hds interface_end
+
+--
+ARCHITECTURE rtl OF DUTInterfaces IS
+
+  signal s_intermediate_busy_or : std_logic_vector(g_NUM_DUTS downto 0);  -- OR tree
+
+
+  signal s_clk_to_DUT , s_busy_from_dut , s_dut_veto , s_reset_or_clk_to_dut , s_trigger_to_dut , s_shutter_to_dut : std_logic_vector(g_NUM_DUTS-1 downto 0) := (others => '0');
+  signal s_clk_from_dut_eudet , s_busy_from_dut_eudet , s_dut_veto_eudet , s_reset_or_clk_to_dut_eudet , s_trigger_to_dut_eudet , s_shutter_to_dut_eudet : std_logic_vector(g_NUM_DUTS-1 downto 0) := (others => '0');
+  signal s_clk_to_DUT_AIDA , s_busy_from_dut_aida , s_dut_veto_aida , s_reset_or_clk_to_dut_aida , s_trigger_to_dut_aida , s_shutter_to_dut_aida : std_logic_vector(g_NUM_DUTS-1 downto 0) := (others => '0');
+  signal s_DUT_mask : std_logic_vector(g_NUM_DUTS-1 downto 0) := (others => '0');   	--! Mask for the DUTs used. 1 = active
+  signal s_dut_clk_is_output : std_logic_vector(g_NUM_DUTS-1 downto 0) := (others => '1');  --! Set low to enable transmission of clock from TLU to DUT
+
+  constant c_NUM_EUDET_FSM_BITS : positive := 4;
+  signal s_dut_fsm_status_eudet : std_logic_vector((c_NUM_EUDET_FSM_BITS*g_NUM_DUTS)-1 downto 0) ; --! Stores status from EUDET interface FSM. Can only support up to 32/4 = 8 DUT interfaces, not 12...
+
+  signal s_DUT_ignore_busy : std_logic_vector(g_NUM_DUTS-1 downto 0) := (others => '0');  --! set bit to 1 for BUSY to be ignored.
+  signal s_DUT_interface_mode : std_logic_vector((2*g_NUM_DUTS)-1 downto 0) := (others => '1'); --! sets AIDA/EUDET/whatever interface.
+  signal s_DUT_aida_eudet_mode : std_logic_vector(g_NUM_DUTS-1 downto 0) := (others => '1');  --! set bit to 1 for AIDA mode, 0 for EUDET
+  signal s_dut_enable_veto_eudet : std_logic_vector(g_NUM_DUTS-1 downto 0) := (others => '1'); --! set bit high to allow asynchronous veto using DUT_CLK when in EUDET mode
+
+  signal s_DUT_interface_mode_modifier : std_logic_vector((2*g_NUM_DUTS)-1 downto 0) := (others => '1');  
+  signal s_IgnoreShutterVeto : std_logic := '0';  -- --! When high the shutter won't veto triggers when low.
+  
+  signal s_SPILL_delay : std_logic_vector(31 downto 0) := (others => '0');
+  signal s_SPILL_wait : std_logic_vector(31 downto 0) := (others => '0');
+  signal s_SPILL_width : std_logic_vector(31 downto 0) := (others => '0');
+
+  
+  -- Signal for IPBus
+  constant c_N_CTRL : positive := 9;
+  constant c_N_STAT : positive := 9;
+  signal s_status_to_ipbus, s_sync_status_to_ipbus : ipb_reg_v(c_N_STAT-1 downto 0);
+  signal s_control_from_ipbus,s_sync_control_from_ipbus : ipb_reg_v(c_N_CTRL-1 downto 0);
+                                                               
+BEGIN
+
+  
+  -----------------------------------------------------------------------------
+  -- IPBus interface 
+  -----------------------------------------------------------------------------
+  ipbus_registers: entity work.ipbus_ctrlreg_v
+    generic map(
+      N_CTRL => c_N_CTRL,
+      N_STAT => c_N_STAT
+      )
+    port map(
+      clk => ipbus_clk_i,
+      reset=> '0',--ipbus_reset_i ,
+      ipbus_in=>  ipbus_i,
+      ipbus_out=> ipbus_o,
+      d=>  s_sync_status_to_ipbus,
+      q=>  s_control_from_ipbus,
+      stb=>  open
+      );
+
+  -- Synchronize registers from logic clock to ipbus.
+    sync_status: entity work.synchronizeRegisters
+    generic map (
+      g_NUM_REGISTERS => c_N_STAT )
+    port map (
+      clk_input_i => clk_4x_logic_i,
+      data_i      =>  s_status_to_ipbus,
+      data_o      => s_sync_status_to_ipbus,
+      clk_output_i => ipbus_clk_i);
+
+    -- Synchronize registers from logic clock to ipbus.
+    sync_ctrl: entity work.synchronizeRegisters
+    generic map (
+      g_NUM_REGISTERS => c_N_CTRL )
+    port map (
+      clk_input_i => ipbus_clk_i,
+      data_i      =>  s_control_from_ipbus,
+      data_o      => s_sync_control_from_ipbus,
+      clk_output_i => clk_4x_logic_i);
+
+  -- Map the control registers
+  s_DUT_mask                    <= s_sync_control_from_ipbus(0)(g_NUM_DUTS-1 downto 0);
+  s_DUT_ignore_busy             <= s_sync_control_from_ipbus(1)(g_NUM_DUTS-1 downto 0);
+  s_IgnoreShutterVeto           <= s_sync_control_from_ipbus(2)(0);
+  s_DUT_interface_mode          <= s_sync_control_from_ipbus(3)((2*g_NUM_DUTS)-1 downto 0);
+  s_DUT_interface_mode_modifier <= s_sync_control_from_ipbus(4)((2*g_NUM_DUTS)-1 downto 0);
+  
+  
+    -- Map the status registers
+  s_status_to_ipbus(0) <= std_logic_vector(to_unsigned(0,g_IPBUS_WIDTH-g_NUM_DUTS)) & s_DUT_mask;
+  s_status_to_ipbus(1) <= std_logic_vector(to_unsigned(0,g_IPBUS_WIDTH-g_NUM_DUTS)) & s_DUT_ignore_busy;
+  s_status_to_ipbus(2) <= std_logic_vector(to_unsigned(0,g_IPBUS_WIDTH-1)) & s_IgnoreShutterVeto;
+  s_status_to_ipbus(3) <= std_logic_vector(to_unsigned(0,g_IPBUS_WIDTH-(2*g_NUM_DUTS))) & s_DUT_interface_mode;
+  s_status_to_ipbus(4) <= std_logic_vector(to_unsigned(0,g_IPBUS_WIDTH-(2*g_NUM_DUTS))) & s_DUT_interface_mode_modifier;
+  s_status_to_ipbus(5) <= std_logic_vector(to_unsigned(0,g_IPBUS_WIDTH-( c_NUM_EUDET_FSM_BITS*g_NUM_DUTS))) & s_dut_fsm_status_eudet ;
+  
+  
+  ------------------------------------------------------------------------------
+  -- Instantiate BUFIODS  
+  ------------------------------------------------------------------------------
+  
+  -- Loop through *all* DUTs ( including RJ45 )
+  dut_clk_busy_trig_rst_io: for dut in 0 to g_NUM_DUTS-1 generate
+
+------------------------------------------------------------------        
+--    clk_IOBUFDS_inst : IOBUFDS
+--      generic map (
+--        IOSTANDARD => "BLVDS_25")
+--      port map (
+--        O => s_clk_from_dut_eudet(dut), --! Clock *from* DUT
+--        IO => clk_to_dut_p_io(dut),  --! Diff_p dut clock I/O (connect directly to top-level port)
+--        IOB => clk_to_dut_n_io(dut), --! Diff_n dut clock I/O (connect directly to top-level port)
+--        I => s_clk_to_dut_aida(dut), --! Clock generated by TLU to DUT
+--        T => s_dut_clk_is_output(dut) --! Set *low* to enable transmission of clock from TLU to DUT
+--        );
+    
+        clk_to_dut(dut) <= s_clk_to_dut_aida(dut); -- do we need to disable this using T? No, the TLU now has enable signals.
+        s_clk_from_dut_eudet(dut) <= clk_from_dut(dut);
+        
+------------------------------------------------------------------        
+        -- Now the signals are single ended: remove IBUFDS and use IBUF
+--    busy_IBUFDS_inst : IBUFDS
+--      generic map (
+--        DIFF_TERM => TRUE, -- Differential Termination 
+--        IBUF_LOW_PWR => TRUE, -- Low power (TRUE) vs. performance (FALSE) setting for referenced I/O standards
+--        IOSTANDARD => "LVDS_25")
+--      port map (
+--        O => s_busy_from_dut(dut),  -- Buffer output
+--        I => busy_from_dut_p_i(dut),  -- Diff_p buffer input (connect directly to top-level port)
+--        IB => busy_from_dut_n_i(dut) -- Diff_n buffer input (connect directly to top-level port)
+--      );
+
+--    busy_IBUF_inst : IBUF
+--    generic map(
+--        IBUF_LOW_PWR => TRUE,
+--        IOSTANDARD => "DEFAULT"
+--    )
+--    port map(
+--        O => s_busy_from_dut(dut),
+--        I => busy_from_dut(dut)
+--    );
+    s_busy_from_dut(dut) <= busy_from_dut(dut) ;
+------------------------------------------------------------------        
+   
+--    trig_OBUFDS_inst : OBUFDS
+--      generic map (
+--        IOSTANDARD => "LVDS_25")
+--      port map (
+--        O =>  trigger_to_dut_p_o(dut),     						-- Diff_p output (connect directly to top-level port)
+--        OB => trigger_to_dut_n_o(dut),   							-- Diff_n output (connect directly to top-level port)
+--        I =>  s_trigger_to_dut(dut)     -- Buffer input 
+--      );
+
+    trigger_to_dut(dut) <= s_trigger_to_dut(dut);
+------------------------------------------------------------------        
+     
+--    clk_rst_OBUFDS_inst : OBUFDS
+--      generic map (
+--        IOSTANDARD => "LVDS_25")
+--      port map (
+--        O =>  reset_or_clk_to_dut_p_o(dut),    							-- Diff_p output (connect directly to top-level port)
+--        OB => reset_or_clk_to_dut_n_o(dut),   							-- Diff_n output (connect directly to top-level port)
+--        I =>  s_reset_or_clk_to_dut(dut) 	--s_reset_or_clk_to_dut(dut) and s_DUT_mask(dut)     -- Buffer input 
+--      );
+	
+	reset_to_dut(dut) <= s_reset_or_clk_to_dut(dut) and s_DUT_mask(dut); 
+		 
+  end generate dut_clk_busy_trig_rst_io;
+  
+  -- Loop through DUTs 
+  dut_shutter_io: for dut in 0 to g_NUM_DUTS-1 generate
+
+--    shutter_OBUFDS_inst : OBUFDS
+--      generic map (
+--        IOSTANDARD => "LVDS_25")
+--      port map (
+--        O =>  shutter_to_dut_p_o(dut), -- Diff_p output (connect directly to top-level port)
+--        OB => shutter_to_dut_n_o(dut), -- Diff_n output (connect directly to top-level port)
+--        I =>  s_shutter_to_dut(dut) 	
+--        );
+        
+    shutter_to_dut(dut) <= s_shutter_to_dut(dut) ;	  
+  end generate dut_shutter_io;
+
+
+  ------------------------------------------------------------------------------
+  -- Instantiate interfaces to DUTs  
+  ------------------------------------------------------------------------------
+  dut_interfaces: for dut in 0 to g_NUM_DUTS-1 generate
+
+    --! AIDA style interface
+    aida_dut_interface: ENTITY work.DUTInterface_AIDA
+      generic map (
+        g_IPBUS_WIDTH => g_IPBUS_WIDTH
+        )
+      PORT map ( 
+        clk_4x_logic_i          => clk_4x_logic_i ,
+        strobe_4x_logic_i       => strobe_4x_logic_i ,
+        trigger_counter_i       => trigger_counter_i , 
+        trigger_i               => trigger_i , 
+        reset_or_clk_to_dut_i   => reset_or_clk_to_dut_i,
+        shutter_to_dut_i        => shutter_to_dut_i ,
+        ignore_shutter_veto_i   => s_IgnoreShutterVeto ,
+        ignore_dut_busy_i       => s_DUT_ignore_busy(dut),
+        dut_mask_i              => s_DUT_mask(dut),
+        busy_o                  => s_dut_veto_aida(dut),
+      
+        -- Signals to/from DUT
+        dut_busy_i              => s_busy_from_dut(dut),
+        dut_clk_o               => s_clk_to_dut_aida(dut),
+        dut_reset_or_clk_o      => s_reset_or_clk_to_dut_aida(dut), 
+        dut_shutter_o           => s_shutter_to_dut_aida(dut),
+        dut_trigger_o           => s_trigger_to_dut_aida(dut)
+
+        );
+
+    --! EUDET style interface
+    eudet_dut_interface: entity work.DUTInterface_EUDET
+      GENERIC map ( 
+        g_TRIGGER_DATA_WIDTH => g_IPBUS_WIDTH
+        )
+      port map (
+        rst_i                 => ipbus_reset_i, 
+        busy_o                => s_dut_veto_eudet(dut),
+        fsm_state_value_o     => s_dut_fsm_status_eudet( (c_NUM_EUDET_FSM_BITS*(dut+1)-1) downto c_NUM_EUDET_FSM_BITS*(dut) ),
+        trigger_i             => trigger_i , 
+        trigger_counter_i     => trigger_counter_i , 
+        system_clk_i          => clk_4x_logic_i ,
+        reset_or_clk_to_dut_i => reset_or_clk_to_dut_i,
+        shutter_to_dut_i      => shutter_to_dut_i ,
+        ignore_shutter_veto_i => s_IgnoreShutterVeto ,
+        enable_dut_veto_i     => s_dut_enable_veto_eudet(dut),
+        -- Connections to DUT:
+        dut_clk_i             => s_clk_from_dut_eudet(dut),
+        dut_busy_i            => s_busy_from_dut(dut),
+        dut_shutter_o         => s_shutter_to_dut_eudet(dut),
+        dut_trigger_o         => s_trigger_to_dut_eudet(dut)
+        );
+
+    s_DUT_aida_eudet_mode(dut) <= s_DUT_interface_mode(2*dut);
+    s_dut_enable_veto_eudet(dut) <= s_DUT_interface_mode_modifier(2*dut);
+    
+    -- Produce "OR" of veto/busy signals from DUTs, take into account IGNORE BUSY bit
+    s_intermediate_busy_or(dut+1) <= s_intermediate_busy_or(dut) or ( s_dut_veto(dut) and (not s_DUT_ignore_busy(dut) ) );
+    
+  end generate dut_interfaces;
+
+  s_dut_clk_is_output <= not s_DUT_aida_eudet_mode; -- at the moment can hardwire clk_is_output to mode_is_aida
+                                               
+  s_intermediate_busy_or(0) <= '0';
+  veto_o <=  s_intermediate_busy_or(g_NUM_DUTS);
+
+  -- purpose: Multiplexes signals between EUDET and AIDA interfaces
+  -- type   : combinational
+  -- inputs : clk_4x_logic_i 
+  -- outputs: s_trigger_to_dut , s_reset_or_clk_to_dut , s_shutter_to_dut , s_dut_veto
+  p_signal_mux: process (clk_4x_logic_i ) is
+  begin  -- process p_signal_mux
+    if rising_edge(clk_4x_logic_i) then
+      s_trigger_to_dut <= ( s_trigger_to_dut_eudet and (not s_DUT_aida_eudet_mode)) or ( s_trigger_to_dut_aida and  s_DUT_aida_eudet_mode) ;
+      s_dut_veto <= ( s_dut_veto_eudet and (not s_DUT_aida_eudet_mode)) or ( s_dut_veto_aida and  s_DUT_aida_eudet_mode) ;
+      s_shutter_to_dut <= ( s_shutter_to_dut_eudet and (not s_DUT_aida_eudet_mode)) or ( s_shutter_to_dut_aida and  s_DUT_aida_eudet_mode) ; 
+      s_reset_or_clk_to_dut <= ( s_reset_or_clk_to_dut_aida and  s_DUT_aida_eudet_mode) ; --! reset_or_clk line stays low if in EUDET mode
+      
+    end if;
+  end process p_signal_mux;
+  
+END ARCHITECTURE rtl;
+
diff --git a/legacy/TLU_v1e/hdl/dut/DUTInterfaces_rtl_BKP.vhd b/legacy/TLU_v1e/hdl/dut/DUTInterfaces_rtl_BKP.vhd
new file mode 100644
index 00000000..6a19837a
--- /dev/null
+++ b/legacy/TLU_v1e/hdl/dut/DUTInterfaces_rtl_BKP.vhd
@@ -0,0 +1,328 @@
+--=============================================================================
+--! @file DUTInterfaces_rtl.vhd
+--=============================================================================
+--
+-------------------------------------------------------------------------------
+-- --
+-- University of Bristol, High Energy Physics Group.
+-- --
+------------------------------------------------------------------------------- --
+-- VHDL Architecture fmc_mTLU_lib.DUTInterfaces.rtl
+--
+--------------------------------------------------------------------------------
+-- 
+-- Created using using Mentor Graphics HDL Designer(TM) 2010.3 (Build 21)
+--
+-- hds interface_start
+LIBRARY ieee;
+USE ieee.std_logic_1164.all;
+USE ieee.numeric_std.all;
+
+USE work.ipbus.all;
+use work.ipbus_reg_types.all;
+
+library unisim;
+use unisim.VComponents.all;
+
+--! @brief Interfaces to Device Under Test (DUT) connectors.
+--!
+--! @author David Cussans , David.Cussans@bristol.ac.uk
+--!
+--! @date 15:09:50 11/09/12
+--!
+--! @version v0.1
+--!
+--! @details
+--! \n\n IPBUS Address map:
+--! \n (Decodes 4 bits)
+--! \li 0x00000000 - DUT mask(write). 1 = active , 0 = inactive. Inactive DUT don't contribute to BUSY. One bit per DUT XXXXXXXXXXXXXXXXXXXXXXBA9876543210
+--! \li 0x00000001 - Ignore DUT busy. 1 = ignore BUSY from this connector
+--! \li 0x00000002 - Ignore shutter veto. 0 = raising shutter vetos triggers.
+--! \li 0x00000003 - DUT interface mode, two bits per DUT. Up to 12 inputs  XXXXXXXXBBAA99887766554433221100 mode: 0 = EUDET mode , 1 = synchronous/AIDA ( LHC / Timepix ) , 2,3=reserved
+--! \li 0x00000004 - DUT mode modifier: XXXXXXXXBBAA99887766554433221100 in EUDET mode: 0 = standard trigger/busy mode, 1 = raising BUSY outside handshake vetoes triggers
+--! \li 0x00000008 - DUT mask ( read )
+--! \li 0x0000000D - EUDET interface FSM status. Packed 4 bits per i/face ( read )
+--!
+--! DUT(0) = RJ45 ( J3 )\n
+--! DUT(1) = HDMI ( J1 ) , furthest from RJ45\n
+--! DUT(2) = HDMI ( J2) , closest to RJ45\n
+--!
+--! <b>Modified by:</b>\n
+--! -----------------------------------------------------------------------------
+--! \n\n<b>Last changes:</b>\n
+-------------------------------------------------------------------------------
+-- todo  Indicate if the DUT works under AIDA/EUDET style
+--
+ENTITY DUTInterfaces IS
+   GENERIC( 
+      g_NUM_DUTS    : positive := 3;
+      g_IPBUS_WIDTH : positive := 32
+   );
+   PORT( 
+      clk_4x_logic_i          : IN     std_logic;
+      strobe_4x_logic_i       : IN     std_logic;                                    --! goes high every 4th clock cycle
+      trigger_counter_i       : IN     std_logic_vector (g_IPBUS_WIDTH-1 DOWNTO 0);  --! Number of trigger events since last reset
+      trigger_i               : IN     std_logic;                                    --! goes high when trigger logic issues a trigger
+      reset_or_clk_to_dut_i   : IN     std_logic;                                    --! Synchronization signal. Passed to DUT pins
+      shutter_to_dut_i        : IN     std_logic;                                    --! Goes high to indicate data-taking active. DUTs report busy unless ignoreShutterVeto IPBus flag is set high
+      -- IPBus signals.
+      ipbus_clk_i             : IN     std_logic;
+      ipbus_i                 : IN     ipb_wbus;                                     --! Signals from IPBus core to slave
+      ipbus_reset_i           : IN     std_logic;
+      ipbus_o                 : OUT    ipb_rbus;                                     --! signals from slave to IPBus core
+      -- Signals to/from DUT
+      busy_from_dut_n_i       : IN     std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);     --! BUSY input from DUTs
+      busy_from_dut_p_i       : IN     std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);     --! BUSY input from DUTs
+      clk_to_dut_n_io         : INOUT  std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);     --! clocks trigger data when in EUDET mode
+      clk_to_dut_p_io         : INOUT  std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);     --! clocks trigger data when in EUDET mode
+      reset_or_clk_to_dut_n_o : OUT    std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);     --! Either reset line or trigger
+      reset_or_clk_to_dut_p_o : OUT    std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);     --! Either reset line or trigger
+      trigger_to_dut_n_o      : OUT    std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);     --! Trigger output
+      trigger_to_dut_p_o      : OUT    std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);     --! Trigger output
+      shutter_to_dut_n_o      : OUT    std_logic_vector (g_NUM_DUTS-1 DOWNTO 1);     --! Shutter output. Output 0 (RJ45) has no shutter signal
+      shutter_to_dut_p_o      : OUT    std_logic_vector (g_NUM_DUTS-1 DOWNTO 1);     --! Shutter output
+      veto_o                  : OUT    std_logic                                     --! goes high when one or more DUT are busy or vetoed by shutter
+   );
+
+-- Declarations
+
+END ENTITY DUTInterfaces ;
+-- hds interface_end
+
+--
+ARCHITECTURE rtl OF DUTInterfaces IS
+
+  signal s_intermediate_busy_or : std_logic_vector(g_NUM_DUTS downto 0);  -- OR tree
+
+
+  signal s_clk_to_DUT , s_busy_from_dut , s_dut_veto , s_reset_or_clk_to_dut , s_trigger_to_dut , s_shutter_to_dut : std_logic_vector(g_NUM_DUTS-1 downto 0) := (others => '0');
+  signal s_clk_from_dut_eudet , s_busy_from_dut_eudet , s_dut_veto_eudet , s_reset_or_clk_to_dut_eudet , s_trigger_to_dut_eudet , s_shutter_to_dut_eudet : std_logic_vector(g_NUM_DUTS-1 downto 0) := (others => '0');
+  signal s_clk_to_DUT_AIDA , s_busy_from_dut_aida , s_dut_veto_aida , s_reset_or_clk_to_dut_aida , s_trigger_to_dut_aida , s_shutter_to_dut_aida : std_logic_vector(g_NUM_DUTS-1 downto 0) := (others => '0');
+  signal s_DUT_mask : std_logic_vector(g_NUM_DUTS-1 downto 0) := (others => '0');   	--! Mask for the DUTs used. 1 = active
+  signal s_dut_clk_is_output : std_logic_vector(g_NUM_DUTS-1 downto 0) := (others => '1');  --! Set low to enable transmission of clock from TLU to DUT
+
+  constant c_NUM_EUDET_FSM_BITS : positive := 4;
+  signal s_dut_fsm_status_eudet : std_logic_vector((c_NUM_EUDET_FSM_BITS*g_NUM_DUTS)-1 downto 0) ; --! Stores status from EUDET interface FSM. Can only support up to 32/4 = 8 DUT interfaces, not 12...
+
+  signal s_DUT_ignore_busy : std_logic_vector(g_NUM_DUTS-1 downto 0) := (others => '0');  --! set bit to 1 for BUSY to be ignored.
+  signal s_DUT_interface_mode : std_logic_vector((2*g_NUM_DUTS)-1 downto 0) := (others => '1'); --! sets AIDA/EUDET/whatever interface.
+  signal s_DUT_aida_eudet_mode : std_logic_vector(g_NUM_DUTS-1 downto 0) := (others => '1');  --! set bit to 1 for AIDA mode, 0 for EUDET
+  signal s_dut_enable_veto_eudet : std_logic_vector(g_NUM_DUTS-1 downto 0) := (others => '1'); --! set bit high to allow asynchronous veto using DUT_CLK when in EUDET mode
+
+  signal s_DUT_interface_mode_modifier : std_logic_vector((2*g_NUM_DUTS)-1 downto 0) := (others => '1');  
+  signal s_IgnoreShutterVeto : std_logic := '0';  -- --! When high the shutter won't veto triggers when low.
+
+  
+  -- Signal for IPBus
+  constant c_N_CTRL : positive := 8;
+  constant c_N_STAT : positive := 8;
+  signal s_status_to_ipbus, s_sync_status_to_ipbus : ipb_reg_v(c_N_STAT-1 downto 0);
+  signal s_control_from_ipbus,s_sync_control_from_ipbus : ipb_reg_v(c_N_CTRL-1 downto 0);
+                                                               
+BEGIN
+
+  
+  -----------------------------------------------------------------------------
+  -- IPBus interface 
+  -----------------------------------------------------------------------------
+  ipbus_registers: entity work.ipbus_ctrlreg_v
+    generic map(
+      N_CTRL => c_N_CTRL,
+      N_STAT => c_N_STAT
+      )
+    port map(
+      clk => ipbus_clk_i,
+      reset=> '0',--ipbus_reset_i ,
+      ipbus_in=>  ipbus_i,
+      ipbus_out=> ipbus_o,
+      d=>  s_sync_status_to_ipbus,
+      q=>  s_control_from_ipbus,
+      stb=>  open
+      );
+
+  -- Synchronize registers from logic clock to ipbus.
+    sync_status: entity work.synchronizeRegisters
+    generic map (
+      g_NUM_REGISTERS => c_N_STAT )
+    port map (
+      clk_input_i => clk_4x_logic_i,
+      data_i      =>  s_status_to_ipbus,
+      data_o      => s_sync_status_to_ipbus,
+      clk_output_i => ipbus_clk_i);
+
+    -- Synchronize registers from logic clock to ipbus.
+    sync_ctrl: entity work.synchronizeRegisters
+    generic map (
+      g_NUM_REGISTERS => c_N_CTRL )
+    port map (
+      clk_input_i => ipbus_clk_i,
+      data_i      =>  s_control_from_ipbus,
+      data_o      => s_sync_control_from_ipbus,
+      clk_output_i => clk_4x_logic_i);
+
+  -- Map the control registers
+  s_DUT_mask                    <= s_sync_control_from_ipbus(0)(g_NUM_DUTS-1 downto 0);
+  s_DUT_ignore_busy             <= s_sync_control_from_ipbus(1)(g_NUM_DUTS-1 downto 0);
+  s_IgnoreShutterVeto           <= s_sync_control_from_ipbus(2)(0);
+  s_DUT_interface_mode          <= s_sync_control_from_ipbus(3)((2*g_NUM_DUTS)-1 downto 0);
+  s_DUT_interface_mode_modifier <= s_sync_control_from_ipbus(4)((2*g_NUM_DUTS)-1 downto 0);
+  
+    -- Map the status registers
+  s_status_to_ipbus(0) <= std_logic_vector(to_unsigned(0,g_IPBUS_WIDTH-g_NUM_DUTS)) & s_DUT_mask;
+  s_status_to_ipbus(1) <= std_logic_vector(to_unsigned(0,g_IPBUS_WIDTH-g_NUM_DUTS)) & s_DUT_ignore_busy;
+  s_status_to_ipbus(2) <= std_logic_vector(to_unsigned(0,g_IPBUS_WIDTH-1)) & s_IgnoreShutterVeto;
+  s_status_to_ipbus(3) <= std_logic_vector(to_unsigned(0,g_IPBUS_WIDTH-(2*g_NUM_DUTS))) & s_DUT_interface_mode;
+  s_status_to_ipbus(4) <= std_logic_vector(to_unsigned(0,g_IPBUS_WIDTH-(2*g_NUM_DUTS))) & s_DUT_interface_mode_modifier;
+  s_status_to_ipbus(5) <= std_logic_vector(to_unsigned(0,g_IPBUS_WIDTH-( c_NUM_EUDET_FSM_BITS*g_NUM_DUTS))) & s_dut_fsm_status_eudet ;
+  
+  
+  ------------------------------------------------------------------------------
+  -- Instantiate BUFIODS  
+  ------------------------------------------------------------------------------
+  
+  -- Loop through *all* DUTs ( including RJ45 )
+  dut_clk_busy_trig_rst_io: for dut in 0 to g_NUM_DUTS-1 generate
+
+
+    clk_IOBUFDS_inst : IOBUFDS
+      generic map (
+        IOSTANDARD => "BLVDS_25")
+      port map (
+        O => s_clk_from_dut_eudet(dut), --! Clock *from* DUT
+        IO => clk_to_dut_p_io(dut),  --! Diff_p dut clock I/O (connect directly to top-level port)
+        IOB => clk_to_dut_n_io(dut), --! Diff_n dut clock I/O (connect directly to top-level port)
+        I => s_clk_to_dut_aida(dut), --! Clock generated by TLU to DUT
+        T => s_dut_clk_is_output(dut) --! Set *low* to enable transmission of clock from TLU to DUT
+        );
+    
+    busy_IBUFDS_inst : IBUFDS
+      generic map (
+        DIFF_TERM => TRUE, -- Differential Termination 
+        IBUF_LOW_PWR => TRUE, -- Low power (TRUE) vs. performance (FALSE) setting for referenced I/O standards
+        IOSTANDARD => "LVDS_25")
+      port map (
+        O => s_busy_from_dut(dut),  -- Buffer output
+        I => busy_from_dut_p_i(dut),  -- Diff_p buffer input (connect directly to top-level port)
+        IB => busy_from_dut_n_i(dut) -- Diff_n buffer input (connect directly to top-level port)
+      );
+		
+   
+    trig_OBUFDS_inst : OBUFDS
+      generic map (
+        IOSTANDARD => "LVDS_25")
+      port map (
+        O =>  trigger_to_dut_p_o(dut),     						-- Diff_p output (connect directly to top-level port)
+        OB => trigger_to_dut_n_o(dut),   							-- Diff_n output (connect directly to top-level port)
+        I =>  s_trigger_to_dut(dut)     -- Buffer input 
+      );
+     
+    clk_rst_OBUFDS_inst : OBUFDS
+      generic map (
+        IOSTANDARD => "LVDS_25")
+      port map (
+        O =>  reset_or_clk_to_dut_p_o(dut),    							-- Diff_p output (connect directly to top-level port)
+        OB => reset_or_clk_to_dut_n_o(dut),   							-- Diff_n output (connect directly to top-level port)
+        I =>  s_reset_or_clk_to_dut(dut) 	--s_reset_or_clk_to_dut(dut) and s_DUT_mask(dut)     -- Buffer input 
+      );
+		 
+  end generate dut_clk_busy_trig_rst_io;
+  
+  -- Loop through DUTs except RJ45  ( which (output 0) doesn't have a shutter
+  -- signal. )
+  dut_shutter_io: for dut in 1 to g_NUM_DUTS-1 generate
+
+    shutter_OBUFDS_inst : OBUFDS
+      generic map (
+        IOSTANDARD => "LVDS_25")
+      port map (
+        O =>  shutter_to_dut_p_o(dut), -- Diff_p output (connect directly to top-level port)
+        OB => shutter_to_dut_n_o(dut), -- Diff_n output (connect directly to top-level port)
+        I =>  s_shutter_to_dut(dut) 	
+        );
+  end generate dut_shutter_io;
+
+
+  ------------------------------------------------------------------------------
+  -- Instantiate interfaces to DUTs  
+  ------------------------------------------------------------------------------
+  dut_interfaces: for dut in 0 to g_NUM_DUTS-1 generate
+
+    --! AIDA style interface
+    aida_dut_interface: ENTITY work.DUTInterface_AIDA
+      generic map (
+        g_IPBUS_WIDTH => g_IPBUS_WIDTH
+        )
+      PORT map ( 
+        clk_4x_logic_i          => clk_4x_logic_i ,
+        strobe_4x_logic_i       => strobe_4x_logic_i ,
+        trigger_counter_i       => trigger_counter_i , 
+        trigger_i               => trigger_i , 
+        reset_or_clk_to_dut_i   => reset_or_clk_to_dut_i,
+        shutter_to_dut_i        => shutter_to_dut_i ,
+        ignore_shutter_veto_i   => s_IgnoreShutterVeto ,
+        ignore_dut_busy_i       => s_DUT_ignore_busy(dut),
+        dut_mask_i              => s_DUT_mask(dut),
+        busy_o                  => s_dut_veto_aida(dut),
+      
+        -- Signals to/from DUT
+        dut_busy_i              => s_busy_from_dut(dut),
+        dut_clk_o               => s_clk_to_dut_aida(dut),
+        dut_reset_or_clk_o      => s_reset_or_clk_to_dut_aida(dut), 
+        dut_shutter_o           => s_shutter_to_dut_aida(dut),
+        dut_trigger_o           => s_trigger_to_dut_aida(dut)
+
+        );
+
+    --! EUDET style interface
+    eudet_dut_interface: entity work.DUTInterface_EUDET
+      GENERIC map ( 
+        g_TRIGGER_DATA_WIDTH => g_IPBUS_WIDTH
+        )
+      port map (
+        rst_i                 => ipbus_reset_i, 
+        busy_o                => s_dut_veto_eudet(dut),
+        fsm_state_value_o     => s_dut_fsm_status_eudet( (c_NUM_EUDET_FSM_BITS*(dut+1)-1) downto c_NUM_EUDET_FSM_BITS*(dut) ),
+        trigger_i             => trigger_i , 
+        trigger_counter_i     => trigger_counter_i , 
+        system_clk_i          => clk_4x_logic_i ,
+        reset_or_clk_to_dut_i => reset_or_clk_to_dut_i,
+        shutter_to_dut_i      => shutter_to_dut_i ,
+        ignore_shutter_veto_i => s_IgnoreShutterVeto ,
+        enable_dut_veto_i     => s_dut_enable_veto_eudet(dut),
+        -- Connections to DUT:
+        dut_clk_i             => s_clk_from_dut_eudet(dut),
+        dut_busy_i            => s_busy_from_dut(dut),
+        dut_shutter_o         => s_shutter_to_dut_eudet(dut),
+        dut_trigger_o         => s_trigger_to_dut_eudet(dut)
+        );
+
+    s_DUT_aida_eudet_mode(dut) <= s_DUT_interface_mode(2*dut);
+    s_dut_enable_veto_eudet(dut) <= s_DUT_interface_mode_modifier(2*dut);
+    
+    -- Produce "OR" of veto/busy signals from DUTs
+    s_intermediate_busy_or(dut+1) <= s_intermediate_busy_or(dut) or s_dut_veto(dut);
+    
+  end generate dut_interfaces;
+
+  s_dut_clk_is_output <= not s_DUT_aida_eudet_mode; -- at the moment can hardwire clk_is_output to mode_is_aida
+                                               
+  s_intermediate_busy_or(0) <= '0';
+  veto_o <=  s_intermediate_busy_or(g_NUM_DUTS);
+
+  -- purpose: Multiplexes signals between EUDET and AIDA interfaces
+  -- type   : combinational
+  -- inputs : clk_4x_logic_i 
+  -- outputs: s_trigger_to_dut , s_reset_or_clk_to_dut , s_shutter_to_dut , s_dut_veto
+  p_signal_mux: process (clk_4x_logic_i ) is
+  begin  -- process p_signal_mux
+    if rising_edge(clk_4x_logic_i) then
+      s_trigger_to_dut <= ( s_trigger_to_dut_eudet and (not s_DUT_aida_eudet_mode)) or ( s_trigger_to_dut_aida and  s_DUT_aida_eudet_mode) ;
+      s_dut_veto <= ( s_dut_veto_eudet and (not s_DUT_aida_eudet_mode)) or ( s_dut_veto_aida and  s_DUT_aida_eudet_mode) ;
+      s_shutter_to_dut <= ( s_shutter_to_dut_eudet and (not s_DUT_aida_eudet_mode)) or ( s_shutter_to_dut_aida and  s_DUT_aida_eudet_mode) ; 
+      s_reset_or_clk_to_dut <= ( s_reset_or_clk_to_dut_aida and  s_DUT_aida_eudet_mode) ; --! reset_or_clk line stays low if in EUDET mode
+      
+    end if;
+  end process p_signal_mux;
+  
+END ARCHITECTURE rtl;
+
diff --git a/legacy/TLU_v1e/hdl/dut/DUTs_outputs.vhd b/legacy/TLU_v1e/hdl/dut/DUTs_outputs.vhd
new file mode 100644
index 00000000..5d8974e8
--- /dev/null
+++ b/legacy/TLU_v1e/hdl/dut/DUTs_outputs.vhd
@@ -0,0 +1,62 @@
+----------------------------------------------------------------------------------
+-- Company: 
+-- Engineer: 
+-- 
+-- Create Date: 15.02.2017 13:17:26
+-- Design Name: 
+-- Module Name: DUTs_outputs - Behavioral
+-- Project Name: 
+-- Target Devices: 
+-- Tool Versions: 
+-- Description: 
+-- 
+-- Dependencies: 
+-- 
+-- Revision:
+-- Revision 0.01 - File Created
+-- Additional Comments:
+-- 
+----------------------------------------------------------------------------------
+
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+
+-- Uncomment the following library declaration if using
+-- arithmetic functions with Signed or Unsigned values
+--use IEEE.NUMERIC_STD.ALL;
+
+-- Uncomment the following library declaration if instantiating
+-- any Xilinx leaf cells in this code.
+--library UNISIM;
+--use UNISIM.VComponents.all;
+
+entity DUTs_outputs is
+    Port ( clk_in : in STD_LOGIC;
+           d_clk_o : out STD_LOGIC_VECTOR (3 downto 0);
+           d_trg_o : out STD_LOGIC_VECTOR (3 downto 0);
+           d_busy_o : out STD_LOGIC_VECTOR (3 downto 0);
+           d_cont_o : out STD_LOGIC_VECTOR (3 downto 0);
+           d_spare_o : out STD_LOGIC_VECTOR (3 downto 0));
+end DUTs_outputs;
+
+architecture Behavioral of DUTs_outputs is
+signal toggleme : std_logic := '0'; 
+begin
+    gen_clk : process (clk_in)
+    begin  -- process gen_clk
+        
+        if rising_edge(clk_in) then   -- rising clock edge
+            toggleme <= not toggleme;
+            d_clk_o(1) <= toggleme;
+            d_clk_o(2) <= toggleme;
+            d_clk_o(3) <= toggleme;
+            d_trg_o <=  (toggleme & toggleme & toggleme & toggleme);
+            d_busy_o <= (toggleme & toggleme & toggleme & toggleme);
+            d_cont_o <= (toggleme & toggleme & toggleme & toggleme);
+            d_spare_o <=(toggleme & toggleme & toggleme & toggleme);
+        end if;
+        d_clk_o(0) <= clk_in;
+    end process gen_clk;
+
+end Behavioral;
diff --git a/legacy/TLU_v1e/hdl/enclustra_ax3_pm3_infra.vhd b/legacy/TLU_v1e/hdl/enclustra_ax3_pm3_infra.vhd
new file mode 100644
index 00000000..df07ba1e
--- /dev/null
+++ b/legacy/TLU_v1e/hdl/enclustra_ax3_pm3_infra.vhd
@@ -0,0 +1,131 @@
+-- enclustra_ax3_pm3_infra
+--
+-- All board-specific stuff goes here
+--
+-- Dave Newbold, June 2013---
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+
+use work.ipbus.all;
+
+entity enclustra_ax3_pm3_infra is
+	port(
+		sysclk: in std_logic; -- ??? board crystal clock
+		clk_ipb_o: out std_logic; -- IPbus clock
+		rst_ipb_o: out std_logic;
+		rst_125_o: out std_logic;
+		clk_200_o: out std_logic;
+		--clk_aux_o: out std_logic; -- 40MHz generated clock
+		--rst_aux_o: out std_logic;
+		nuke: in std_logic; -- The signal of doom
+		soft_rst: in std_logic; -- The signal of lesser doom
+		leds: out std_logic_vector(1 downto 0); -- status LEDs
+		rgmii_txd: out std_logic_vector(3 downto 0);
+		rgmii_tx_ctl: out std_logic;
+		rgmii_txc: out std_logic;
+		rgmii_rxd: in std_logic_vector(3 downto 0);
+		rgmii_rx_ctl: in std_logic;
+		rgmii_rxc: in std_logic;
+		mac_addr: in std_logic_vector(47 downto 0); -- MAC address
+		ip_addr: in std_logic_vector(31 downto 0); -- IP address
+		ipb_in: in ipb_rbus; -- ipbus
+		ipb_out: out ipb_wbus
+	);
+
+end enclustra_ax3_pm3_infra;
+
+architecture rtl of enclustra_ax3_pm3_infra is
+
+	signal clk125_fr, clk125, clk125_90, clk200, clk_ipb, clk_ipb_i, locked, rst125, rst_ipb, rst_ipb_ctrl, rst_eth, onehz, pkt: std_logic;
+	signal mac_tx_data, mac_rx_data: std_logic_vector(7 downto 0);
+	signal mac_tx_valid, mac_tx_last, mac_tx_error, mac_tx_ready, mac_rx_valid, mac_rx_last, mac_rx_error: std_logic;
+	signal led_p: std_logic_vector(0 downto 0);
+	
+begin
+
+--	DCM clock generation for internal bus, ethernet
+
+	clocks: entity work.clocks_7s_extphy_se
+		port map(
+			sysclk => sysclk,
+			clko_125 => clk125,
+			clko_125_90 => clk125_90,
+			clko_200 => clk200,
+			clko_ipb => clk_ipb_i,
+			locked => locked,
+			nuke => nuke,
+			soft_rst => soft_rst,
+			rsto_125 => rst125,
+			rsto_ipb => rst_ipb,
+			rsto_ipb_ctrl => rst_ipb_ctrl,
+			onehz => onehz
+		);
+
+	clk_ipb <= clk_ipb_i; -- Best to align delta delays on all clocks for simulation
+	clk_ipb_o <= clk_ipb_i;
+	rst_ipb_o <= rst_ipb;
+	rst_125_o <= rst125;
+	clk_200_o <= clk200;
+	
+	stretch: entity work.led_stretcher
+		generic map(
+			WIDTH => 1
+		)
+		port map(
+			clk => clk125,
+			d(0) => pkt,
+			q => led_p
+		);
+	leds <= (led_p(0), locked and onehz);
+	
+-- Ethernet MAC core and PHY interface
+	
+	eth: entity work.eth_7s_rgmii
+		port map(
+			clk125 => clk125,
+			clk125_90 => clk125_90,
+			clk200 => clk200,
+			rst => rst125,
+			rgmii_txd => rgmii_txd,
+			rgmii_tx_ctl => rgmii_tx_ctl,
+			rgmii_txc => rgmii_txc,
+			rgmii_rxd => rgmii_rxd,
+			rgmii_rx_ctl => rgmii_rx_ctl,
+			rgmii_rxc => rgmii_rxc,
+			tx_data => mac_tx_data,
+			tx_valid => mac_tx_valid,
+			tx_last => mac_tx_last,
+			tx_error => mac_tx_error,
+			tx_ready => mac_tx_ready,
+			rx_data => mac_rx_data,
+			rx_valid => mac_rx_valid,
+			rx_last => mac_rx_last,
+			rx_error => mac_rx_error
+		);
+	
+-- ipbus control logic
+
+	ipbus: entity work.ipbus_ctrl
+		port map(
+			mac_clk => clk125,
+			rst_macclk => rst125,
+			ipb_clk => clk_ipb,
+			rst_ipb => rst_ipb_ctrl,
+			mac_rx_data => mac_rx_data,
+			mac_rx_valid => mac_rx_valid,
+			mac_rx_last => mac_rx_last,
+			mac_rx_error => mac_rx_error,
+			mac_tx_data => mac_tx_data,
+			mac_tx_valid => mac_tx_valid,
+			mac_tx_last => mac_tx_last,
+			mac_tx_error => mac_tx_error,
+			mac_tx_ready => mac_tx_ready,
+			ipb_out => ipb_out,
+			ipb_in => ipb_in,
+			mac_addr => mac_addr,
+			ip_addr => ip_addr,
+			pkt => pkt
+		);
+
+end rtl;
diff --git a/legacy/TLU_v1e/hdl/eth_7s_gmii.vhd b/legacy/TLU_v1e/hdl/eth_7s_gmii.vhd
new file mode 100644
index 00000000..4db967ad
--- /dev/null
+++ b/legacy/TLU_v1e/hdl/eth_7s_gmii.vhd
@@ -0,0 +1,183 @@
+-- Contains the instantiation of the Xilinx MAC IP plus the GMII PHY interface
+--
+-- Do not change signal names in here without corresponding alteration to the timing contraints file
+--
+-- Dave Newbold, April 2011
+--
+-- $Id$
+
+library ieee;
+use ieee.std_logic_1164.all;
+
+library unisim;
+use unisim.VComponents.all;
+
+use work.emac_hostbus_decl.all;
+
+entity eth_7s_gmii is
+	port(
+		clk125: in std_logic;
+		clk200: in std_logic;
+		rst: in std_logic;
+		gmii_gtx_clk: out std_logic;
+		gmii_txd: out std_logic_vector(7 downto 0);
+		gmii_tx_en: out std_logic;
+		gmii_tx_er: out std_logic;
+		gmii_rx_clk: in std_logic;
+		gmii_rxd: in std_logic_vector(7 downto 0);
+		gmii_rx_dv: in std_logic;
+		gmii_rx_er: in std_logic;
+		tx_data: in std_logic_vector(7 downto 0);
+		tx_valid: in std_logic;
+		tx_last: in std_logic;
+		tx_error: in std_logic;
+		tx_ready: out std_logic;
+		rx_data: out std_logic_vector(7 downto 0);
+		rx_valid: out std_logic;
+		rx_last: out std_logic;
+		rx_error: out std_logic;
+		hostbus_in: in emac_hostbus_in := ('0', "00", "0000000000", X"00000000", '0', '0', '0');
+		hostbus_out: out emac_hostbus_out
+	);
+
+end eth_7s_gmii;
+
+architecture rtl of eth_7s_gmii is
+
+	COMPONENT temac_gbe_v9_0_rgmii
+		PORT (
+			gtx_clk : IN STD_LOGIC;
+			glbl_rstn : IN STD_LOGIC;
+			rx_axi_rstn : IN STD_LOGIC;
+			tx_axi_rstn : IN STD_LOGIC;
+			rx_statistics_vector : OUT STD_LOGIC_VECTOR(27 DOWNTO 0);
+			rx_statistics_valid : OUT STD_LOGIC;
+			rx_mac_aclk : OUT STD_LOGIC;
+			rx_reset : OUT STD_LOGIC;
+			rx_axis_mac_tdata : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);
+			rx_axis_mac_tvalid : OUT STD_LOGIC;
+			rx_axis_mac_tlast : OUT STD_LOGIC;
+			rx_axis_mac_tuser : OUT STD_LOGIC;
+			tx_ifg_delay : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
+			tx_statistics_vector : OUT STD_LOGIC_VECTOR(31 DOWNTO 0);
+			tx_statistics_valid : OUT STD_LOGIC;
+			tx_mac_aclk : OUT STD_LOGIC;
+			tx_reset : OUT STD_LOGIC;
+			tx_axis_mac_tdata : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
+			tx_axis_mac_tvalid : IN STD_LOGIC;
+			tx_axis_mac_tlast : IN STD_LOGIC;
+			tx_axis_mac_tuser : IN STD_LOGIC_VECTOR(0 DOWNTO 0);
+			tx_axis_mac_tready : OUT STD_LOGIC;
+			pause_req : IN STD_LOGIC;
+			pause_val : IN STD_LOGIC_VECTOR(15 DOWNTO 0);
+			speedis100 : OUT STD_LOGIC;
+			speedis10100 : OUT STD_LOGIC;
+			gmii_txd : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);
+			gmii_tx_en : OUT STD_LOGIC;
+			gmii_tx_er : OUT STD_LOGIC;
+			gmii_tx_clk : OUT STD_LOGIC;
+			gmii_rxd : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
+			gmii_rx_dv : IN STD_LOGIC;
+			gmii_rx_er : IN STD_LOGIC;
+			gmii_rx_clk : IN STD_LOGIC;
+			rx_configuration_vector : IN STD_LOGIC_VECTOR(79 DOWNTO 0);
+			tx_configuration_vector : IN STD_LOGIC_VECTOR(79 DOWNTO 0)
+		);
+	END COMPONENT;
+
+	COMPONENT mac_fifo_axi4
+	  PORT (
+		 m_aclk : IN STD_LOGIC;
+		 s_aclk : IN STD_LOGIC;
+		 s_aresetn : IN STD_LOGIC;
+		 s_axis_tvalid : IN STD_LOGIC;
+		 s_axis_tready : OUT STD_LOGIC;
+		 s_axis_tdata : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
+		 s_axis_tlast : IN STD_LOGIC;
+		 s_axis_tuser : IN STD_LOGIC_VECTOR(0 DOWNTO 0);
+		 m_axis_tvalid : OUT STD_LOGIC;
+		 m_axis_tready : IN STD_LOGIC;
+		 m_axis_tdata : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);
+		 m_axis_tlast : OUT STD_LOGIC;
+		 m_axis_tuser : OUT STD_LOGIC_VECTOR(0 DOWNTO 0)
+	  );
+	END COMPONENT;
+	
+	signal rx_data_e: std_logic_vector(7 downto 0);
+	signal rx_clk_e, rx_valid_e, rx_last_e, rx_user_e, rx_rst_e, rx_rst_en, rstn: std_logic;
+	signal rx_user_f, rx_user_ef: std_logic_vector(0 downto 0);
+
+begin
+
+	idelayctrl0: idelayctrl port map(
+		refclk => clk200,
+		rst => rst
+	);
+
+	rstn <= not rst;
+
+	emac0: temac_gbe_v9_0_rgmii
+		port map(
+			gtx_clk => clk125,
+			glbl_rstn => rstn,
+			rx_axi_rstn => '1',
+			tx_axi_rstn => '1',
+			rx_statistics_vector => open,
+			rx_statistics_valid => open,		
+			rx_mac_aclk => rx_clk_e,
+			rx_reset => rx_rst_e,
+			rx_axis_mac_tdata => rx_data_e,
+			rx_axis_mac_tvalid => rx_valid_e,
+			rx_axis_mac_tlast => rx_last_e,
+			rx_axis_mac_tuser => rx_user_e,
+			tx_ifg_delay => X"00",
+			tx_statistics_vector => open,
+			tx_statistics_valid => open,	
+			tx_mac_aclk => open, -- Internally connected to gtx_clk inside core
+			tx_reset => open,
+			tx_axis_mac_tdata => tx_data,
+			tx_axis_mac_tvalid => tx_valid,
+			tx_axis_mac_tlast => tx_last,
+			tx_axis_mac_tuser(0) => tx_error,
+			tx_axis_mac_tready => tx_ready,
+			pause_req => '0',
+			pause_val => X"0000",
+			speedis100 => open,
+			speedis10100 => open,
+			gmii_txd => gmii_txd,
+			gmii_tx_en => gmii_tx_en,
+			gmii_tx_er => gmii_tx_er,
+			gmii_tx_clk => gmii_gtx_clk,
+			gmii_rxd => gmii_rxd,
+			gmii_rx_dv => gmii_rx_dv,
+			gmii_rx_er => gmii_rx_er,
+			gmii_rx_clk => gmii_rx_clk,
+			rx_configuration_vector => X"0000_0000_0000_0000_0812",
+			tx_configuration_vector => X"0000_0000_0000_0000_0012"
+		);
+	
+	rx_user_ef(0) <= rx_user_e;
+	rx_error <= rx_user_f(0);
+	rx_rst_en <= not rx_rst_e;
+	
+	fifo: mac_fifo_axi4
+		port map(
+			m_aclk => clk125,
+			s_aclk => rx_clk_e,
+			s_aresetn => rx_rst_en,
+			s_axis_tvalid => rx_valid_e,
+			s_axis_tready => open,
+			s_axis_tdata => rx_data_e,
+			s_axis_tlast => rx_last_e,
+			s_axis_tuser => rx_user_ef,
+			m_axis_tvalid => rx_valid,
+			m_axis_tready => '1',
+			m_axis_tdata => rx_data,
+			m_axis_tlast => rx_last,
+			m_axis_tuser => rx_user_f
+		); -- Clock domain crossing FIFO
+
+	hostbus_out.hostrddata <= (others => '0');
+	hostbus_out.hostmiimrdy <= '0';
+
+end rtl;
diff --git a/legacy/TLU_v1e/hdl/eth_7s_rgmii.vhd b/legacy/TLU_v1e/hdl/eth_7s_rgmii.vhd
new file mode 100644
index 00000000..3e2e1670
--- /dev/null
+++ b/legacy/TLU_v1e/hdl/eth_7s_rgmii.vhd
@@ -0,0 +1,184 @@
+-- Contains the instantiation of the Xilinx MAC & PHY interface for RGMII
+--
+-- Do not change signal names in here without corresponding alteration to the timing contraints file
+--
+-- Dave Newbold, October 2016
+
+library ieee;
+use ieee.std_logic_1164.all;
+
+library unisim;
+use unisim.VComponents.all;
+use work.emac_hostbus_decl.all;
+
+entity eth_7s_rgmii is
+	port(
+		clk125: in std_logic;
+		clk125_90: in std_logic;
+		clk200: in std_logic;
+		rst: in std_logic;
+		rgmii_txd: out std_logic_vector(3 downto 0);
+		rgmii_tx_ctl: out std_logic;
+		rgmii_txc: out std_logic;
+		rgmii_rxd: in std_logic_vector(3 downto 0);
+		rgmii_rx_ctl: in std_logic;
+		rgmii_rxc: in std_logic;
+		tx_data: in std_logic_vector(7 downto 0);
+		tx_valid: in std_logic;
+		tx_last: in std_logic;
+		tx_error: in std_logic;
+		tx_ready: out std_logic;
+		rx_data: out std_logic_vector(7 downto 0);
+		rx_valid: out std_logic;
+		rx_last: out std_logic;
+		rx_error: out std_logic;
+		hostbus_in: in emac_hostbus_in := ('0', "00", "0000000000", X"00000000", '0', '0', '0');
+		hostbus_out: out emac_hostbus_out;
+		status: out std_logic_vector(3 downto 0)
+	);
+
+end eth_7s_rgmii;
+
+architecture rtl of eth_7s_rgmii is
+
+	COMPONENT temac_gbe_v9_rgmii
+		PORT (
+			gtx_clk : IN STD_LOGIC;
+			gtx_clk90 : IN STD_LOGIC;
+			glbl_rstn : IN STD_LOGIC;
+			rx_axi_rstn : IN STD_LOGIC;
+			tx_axi_rstn : IN STD_LOGIC;
+			rx_statistics_vector : OUT STD_LOGIC_VECTOR(27 DOWNTO 0);
+			rx_statistics_valid : OUT STD_LOGIC;
+			rx_mac_aclk : OUT STD_LOGIC;
+			rx_reset : OUT STD_LOGIC;
+			rx_axis_mac_tdata : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);
+			rx_axis_mac_tvalid : OUT STD_LOGIC;
+			rx_axis_mac_tlast : OUT STD_LOGIC;
+			rx_axis_mac_tuser : OUT STD_LOGIC;
+			tx_ifg_delay : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
+			tx_statistics_vector : OUT STD_LOGIC_VECTOR(31 DOWNTO 0);
+			tx_statistics_valid : OUT STD_LOGIC;
+			tx_mac_aclk : OUT STD_LOGIC;
+			tx_reset : OUT STD_LOGIC;
+			tx_axis_mac_tdata : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
+			tx_axis_mac_tvalid : IN STD_LOGIC;
+			tx_axis_mac_tlast : IN STD_LOGIC;
+			tx_axis_mac_tuser : IN STD_LOGIC_VECTOR(0 DOWNTO 0);
+			tx_axis_mac_tready : OUT STD_LOGIC;
+			pause_req : IN STD_LOGIC;
+			pause_val : IN STD_LOGIC_VECTOR(15 DOWNTO 0);
+			speedis100 : OUT STD_LOGIC;
+			speedis10100 : OUT STD_LOGIC;
+			rgmii_txd : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);
+			rgmii_tx_ctl : OUT STD_LOGIC;
+			rgmii_txc : OUT STD_LOGIC;
+			rgmii_rxd : IN STD_LOGIC_VECTOR(3 DOWNTO 0);
+			rgmii_rx_ctl : IN STD_LOGIC;
+			rgmii_rxc : IN STD_LOGIC;
+			inband_link_status : OUT STD_LOGIC;
+			inband_clock_speed : OUT STD_LOGIC_VECTOR(1 DOWNTO 0);
+			inband_duplex_status : OUT STD_LOGIC;
+			rx_configuration_vector : IN STD_LOGIC_VECTOR(79 DOWNTO 0);
+			tx_configuration_vector : IN STD_LOGIC_VECTOR(79 DOWNTO 0)
+		);
+	END COMPONENT;
+
+	COMPONENT mac_fifo_axi4
+	  PORT (
+		 m_aclk : IN STD_LOGIC;
+		 s_aclk : IN STD_LOGIC;
+		 s_aresetn : IN STD_LOGIC;
+		 s_axis_tvalid : IN STD_LOGIC;
+		 s_axis_tready : OUT STD_LOGIC;
+		 s_axis_tdata : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
+		 s_axis_tlast : IN STD_LOGIC;
+		 s_axis_tuser : IN STD_LOGIC_VECTOR(0 DOWNTO 0);
+		 m_axis_tvalid : OUT STD_LOGIC;
+		 m_axis_tready : IN STD_LOGIC;
+		 m_axis_tdata : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);
+		 m_axis_tlast : OUT STD_LOGIC;
+		 m_axis_tuser : OUT STD_LOGIC_VECTOR(0 DOWNTO 0)
+	  );
+	END COMPONENT;
+	
+	signal rx_data_e: std_logic_vector(7 downto 0);
+	signal rx_clk_e, rx_valid_e, rx_last_e, rx_user_e, rx_rst_e, rx_rst_en, rstn: std_logic;
+	signal rx_user_f, rx_user_ef: std_logic_vector(0 downto 0);
+	
+begin
+
+	idelayctrl0: idelayctrl port map(
+		refclk => clk200,
+		rst => rst
+	);
+	
+	rstn <= not rst;
+
+	emac0: temac_gbe_v9_rgmii
+		port map(
+			gtx_clk => clk125,
+			gtx_clk90 => clk125_90,
+			glbl_rstn => rstn,
+			rx_axi_rstn => '1',
+			tx_axi_rstn => '1',
+			rx_statistics_vector => open,
+			rx_statistics_valid => open,		
+			rx_mac_aclk => rx_clk_e,
+			rx_reset => rx_rst_e,
+			rx_axis_mac_tdata => rx_data_e,
+			rx_axis_mac_tvalid => rx_valid_e,
+			rx_axis_mac_tlast => rx_last_e,
+			rx_axis_mac_tuser => rx_user_e,
+			tx_ifg_delay => X"00",
+			tx_statistics_vector => open,
+			tx_statistics_valid => open,	
+			tx_mac_aclk => open, -- Internally connected to gtx_clk inside core
+			tx_reset => open,
+			tx_axis_mac_tdata => tx_data,
+			tx_axis_mac_tvalid => tx_valid,
+			tx_axis_mac_tlast => tx_last,
+			tx_axis_mac_tuser(0) => tx_error,
+			tx_axis_mac_tready => tx_ready,
+			pause_req => '0',
+			pause_val => X"0000",
+			speedis100 => open,
+			speedis10100 => open,
+			rgmii_txd => rgmii_txd,
+			rgmii_tx_ctl => rgmii_tx_ctl,
+			rgmii_txc => rgmii_txc,
+			rgmii_rxd => rgmii_rxd,
+			rgmii_rx_ctl => rgmii_rx_ctl,
+			rgmii_rxc => rgmii_rxc,
+			inband_link_status => status(0),
+			inband_clock_speed => status(3 downto 2),
+			inband_duplex_status => status(1),
+			rx_configuration_vector => X"0000_0000_0000_0000_0812",
+			tx_configuration_vector => X"0000_0000_0000_0000_0012"
+		);
+	
+	rx_user_ef(0) <= rx_user_e;
+	rx_error <= rx_user_f(0);
+	rx_rst_en <= not rx_rst_e;
+	
+	fifo: mac_fifo_axi4
+		port map(
+			m_aclk => clk125,
+			s_aclk => rx_clk_e,
+			s_aresetn => rx_rst_en,
+			s_axis_tvalid => rx_valid_e,
+			s_axis_tready => open,
+			s_axis_tdata => rx_data_e,
+			s_axis_tlast => rx_last_e,
+			s_axis_tuser => rx_user_ef,
+			m_axis_tvalid => rx_valid,
+			m_axis_tready => '1',
+			m_axis_tdata => rx_data,
+			m_axis_tlast => rx_last,
+			m_axis_tuser => rx_user_f
+		); -- Clock domain crossing FIFO
+
+	hostbus_out.hostrddata <= (others => '0');
+	hostbus_out.hostmiimrdy <= '0';
+	
+end rtl;
diff --git a/legacy/TLU_v1e/hdl/eventBuffer_rtl.vhd b/legacy/TLU_v1e/hdl/eventBuffer_rtl.vhd
new file mode 100644
index 00000000..b60fe514
--- /dev/null
+++ b/legacy/TLU_v1e/hdl/eventBuffer_rtl.vhd
@@ -0,0 +1,167 @@
+--=============================================================================
+--! @file eventBuffer_rtl.vhd
+--=============================================================================
+--
+-------------------------------------------------------------------------------
+-- --
+-- University of Bristol, High Energy Physics Group.
+-- --
+------------------------------------------------------------------------------- --
+-- VHDL Architecture fmc_mTLU_lib.eventBuffer.rtl
+--
+-- 
+-- Created using using Mentor Graphics HDL Designer(TM) 2010.3 (Build 21)
+--
+LIBRARY ieee;
+USE ieee.std_logic_1164.all;
+USE ieee.numeric_std.all;
+
+USE work.ipbus.all;
+
+--! @brief Stores input words (64bits) for readout over IPBus. 
+--! Uses a FIFO ( 64bits at input, 32 bits at output )
+--
+--
+--! @author David Cussans , David.Cussans@bristol.ac.uk
+--
+--! @date 15:24:50 11/13/12
+--
+--! @version v0.1
+--
+--! @details
+--! \n\nIPBus Address map:
+--! \li 0x0000 - FIFO data
+--! \li 0x0001 - FIFO fill level
+--! \li 0x0010 - FIFO status/control: (Writing Bit-0 resets pointers, Reading bit-1 returns "prog_full" flag)
+--!
+--! <b>Modified by: Alvaro Dosil , alvaro.dosil@usc.es </b>\n
+--------------------------------------------------------------------------------
+
+ENTITY eventBuffer IS
+    GENERIC( 
+        g_EVENT_DATA_WIDTH    : positive := 64;
+        g_IPBUS_WIDTH         : positive := 32;
+        g_READ_COUNTER_WIDTH  : positive := 14
+    );
+    PORT( 
+        clk_4x_logic_i    : IN     std_logic;
+        data_strobe_i     : IN     std_logic;                                         -- Indicates data to transfer
+        event_data_i      : IN     std_logic_vector (g_EVENT_DATA_WIDTH-1 DOWNTO 0);
+        ipbus_clk_i       : IN     std_logic;
+        ipbus_i           : IN     ipb_wbus;
+        ipbus_reset_i     : IN     std_logic;
+        strobe_4x_logic_i : IN     std_logic;
+        --trigger_count_i   : IN     std_logic_vector (g_IPBUS_WIDTH-1 DOWNTO 0); --! Not used yet.
+        rst_fifo_o			: OUT 	std_logic;														--! rst signal to first level fifos
+        buffer_full_o     : OUT    std_logic;                                         --! Goes high when event buffer almost full
+        ipbus_o           : OUT    ipb_rbus;
+        logic_reset_i     : IN     std_logic                                          -- reset buffers when high. Synch withclk_4x_logic
+    );
+
+-- Declarations
+
+END ENTITY eventBuffer ;
+
+--
+ARCHITECTURE rtl OF eventBuffer IS
+    signal s_rd_data_count    : std_logic_vector(g_READ_COUNTER_WIDTH-1 downto 0) := (others =>'0');
+    signal s_fifo_fill_level : std_logic_vector(g_IPBUS_WIDTH-1 downto 0) := (others =>'0');  -- read-counter - 2*write_count
+    signal s_write_strobe    : std_logic := '0';
+    signal s_rst_fifo, s_rst_fifo_ipb : std_logic := '0';                             -- ! Take high to reset FIFO pointers.
+    signal s_fifo_prog_full : std_logic := '0';                       -- ! Controlled by programmable-full flag of FIFO core
+    signal s_fifo_rd_en : std_logic := '0';                           -- ! Take high to clock data out of FIFO
+    signal s_fifo_dout : std_logic_vector(g_IPBUS_WIDTH-1 downto 0);  -- ! Output from FIFO ( fall-through mode)
+    signal s_fifo_valid : std_logic := '1';                           -- ! High when data in FIFO
+    signal s_fifo_full, s_fifo_almost_full, s_fifo_empty, s_fifo_almost_empty : std_logic := '0'; -- ! full and empty FIFO flags
+    signal s_fifo_status_ipb , s_fifo_fill_level_d1 : std_logic_vector(ipbus_o.ipb_rdata'range) := (others => '0');  -- data registered onto IPBus clock
+    signal s_ack : std_logic := '0';      -- -- IPBus ACK signal
+    COMPONENT tlu_event_fifo
+    PORT (
+        rst : IN STD_LOGIC;
+        wr_clk : IN STD_LOGIC;
+        rd_clk : IN STD_LOGIC;
+        din : IN STD_LOGIC_VECTOR(63 DOWNTO 0);
+        wr_en : IN STD_LOGIC;
+        rd_en : IN STD_LOGIC;
+        dout : OUT STD_LOGIC_VECTOR(31 DOWNTO 0);
+        full : OUT STD_LOGIC;
+        almost_full : OUT STD_LOGIC;
+        empty : OUT STD_LOGIC;
+        almost_empty : OUT STD_LOGIC;
+        rd_data_count : OUT STD_LOGIC_VECTOR(13 DOWNTO 0);
+        prog_full : OUT STD_LOGIC
+    );
+    END COMPONENT;
+  
+BEGIN
+
+  -----------------------------------------------------------------------------
+  -- IPBus IO
+  -----------------------------------------------------------------------------
+
+  --! Generate IPBus ACK 
+    ipbus_ack: process(ipbus_clk_i)
+    begin
+    if rising_edge(ipbus_clk_i) then
+        s_ack <= ipbus_i.ipb_strobe and not s_ack;
+    end if;
+    end process ipbus_ack;
+    ipbus_o.ipb_ack <= s_ack;
+    
+    --! Generate FIFO read enable
+    --! take high for one cycle ( when ipb_strobe goes high but before ACK goes
+    --high to follow it
+    s_fifo_rd_en  <= '1' when
+        ipbus_i.ipb_strobe = '1' and ipbus_i.ipb_write = '0' and ipbus_i.ipb_addr(1 downto 0) = "00" and s_ack = '0'
+        else '0';
+    ipbus_o.ipb_err <= '0';
+
+    --! Multiplex output data.
+    with ipbus_i.ipb_addr(1 downto 0) select ipbus_o.ipb_rdata <=
+        s_fifo_dout          when "00",
+        s_fifo_fill_level    when "01",
+        s_fifo_status_ipb	 when "10",
+        (others => '1')      when others;
+
+    ipbus_write: process (ipbus_clk_i)
+    begin  -- process ipbus_write
+    if rising_edge(ipbus_clk_i) then
+        s_rst_fifo_ipb <= '0';
+        if ipbus_i.ipb_strobe = '1' and ipbus_i.ipb_addr(1 downto 0) = "10" and ipbus_i.ipb_write = '1' then
+            s_rst_fifo_ipb <= '1';
+        end if;
+        -- Register data onto IPBus clock domain to ease timing closure.
+        s_fifo_status_ipb <=  X"000000" & "000" & s_fifo_prog_full & s_fifo_full & s_fifo_almost_full & s_fifo_almost_empty & s_fifo_empty;
+        s_fifo_fill_level <= X"0000" & "00" & s_rd_data_count; 
+    end if;
+    end process ipbus_write;
+  
+    rst_fifo_o <= s_rst_fifo_ipb;
+    s_rst_fifo <= s_rst_fifo_ipb or logic_reset_i;
+  
+  -----------------------------------------------------------------------------
+  -- FIFO and fill-level calculation
+  -----------------------------------------------------------------------------
+  
+  -- Instantiate a buffer to store the data. 64-bit on input, 32-bit on output.
+  --event_fifo : entity work.tlu_event_fifo
+    event_fifo : tlu_event_fifo
+    PORT MAP (
+        rst => s_rst_fifo,
+        wr_clk => clk_4x_logic_i,
+        rd_clk => ipbus_clk_i,
+        din => event_data_i,
+        wr_en => data_strobe_i,
+        rd_en => s_fifo_rd_en,
+        dout => s_fifo_dout,
+        full => s_fifo_full,
+        almost_full => s_fifo_almost_full,
+        empty => s_fifo_empty,
+        almost_empty => s_fifo_almost_empty,
+        rd_data_count => s_rd_data_count,
+        prog_full => s_fifo_prog_full
+    );
+    buffer_full_o <= s_fifo_prog_full;
+  
+END ARCHITECTURE rtl;
+
diff --git a/legacy/TLU_v1e/hdl/eventFormatter_rtl.vhd b/legacy/TLU_v1e/hdl/eventFormatter_rtl.vhd
new file mode 100644
index 00000000..c33279ab
--- /dev/null
+++ b/legacy/TLU_v1e/hdl/eventFormatter_rtl.vhd
@@ -0,0 +1,385 @@
+--=============================================================================
+--! @file eventFormatter_rtl.vhd
+--=============================================================================
+--
+-------------------------------------------------------------------------------
+-- --
+-- University of Bristol, High Energy Physics Group.
+-- --
+------------------------------------------------------------------------------- --
+-- VHDL Architecture fmc_mTLU_lib.eventFormatter.rtl
+--
+-- 
+-- Created using using Mentor Graphics HDL Designer(TM) 2010.3 (Build 21)
+--
+LIBRARY ieee;
+USE ieee.std_logic_1164.all;
+USE ieee.numeric_std.all;
+
+USE work.fmcTLU.all;
+USE work.ipbus.all;
+
+use work.ipbus_reg_types.all;
+
+--! @brief Takes the data delivered on each trigger and turns it into 64-bit
+--!        words to push into event buffer
+--! 
+--!
+--! @author David Cussans , David.Cussans@bristol.ac.uk
+--!
+--! @date 15:10:35 11/09/12
+--!
+--! @version v0.1
+--!
+--! @details
+--! \n\n IPBus address:
+--! \n (Decodes 3 bits)
+--! \li 000 - read/write enable data recording.
+--! \li 001 - write = reset timestamp,
+--! \li 010 - read = current timestamp (low  32-bits)
+--! \li 011 - read = current timestamp (high 16-bits)
+--!
+--! -----------------------------------------------------------------------------
+--! \n\n<b>Last changes:</b>\n
+--! Modified by: Alvaro Dosil , alvaro.dosil@usc.es \n
+--! 27/Feb/14 DGC Change "If" when setting s_word2 to a case ... generate. Questasim
+--!               doesn't like having an if that can take an array out of bounds.
+--! 26/Sept/14 DGC Hacked out shutter etc. Can't figure out bug.
+--!-----------------------------------------------------------------------------
+--! @todo Add more input data: \n
+--! a) shutter signals. One per DUT. ?? \n
+--! b) input levels ( for recording edge data ). Record rising and falling edges\n
+--! c) veto levels. One per DUT. Record rising and falling edges.\n
+--! \n
+--! Add backpressure output if short FIFOs fill up? But many inputs won't
+--! respond - e.g. scintillator inputs. This data will be lost....
+--! some ports are redundant - e.g. trigger counter, others confusingly
+--! labelled. Sort this out..
+--------------------------------------------------------------------------------
+
+
+ENTITY eventFormatter IS
+   GENERIC( 
+      g_EVENT_DATA_WIDTH   : positive := 64;
+      g_IPBUS_WIDTH        : positive := 32;
+      g_COUNTER_TRIG_WIDTH : positive := 32;
+      g_COUNTER_WIDTH      : positive := 12;
+      g_EVTTYPE_WIDTH      : positive := 4; --! Width of the event type word
+      --g_NUM_INPUT_TYPES     : positive := 4;               -- Number of different input types (trigger, shutter, edge...)
+      g_NUM_EDGE_INPUTS    : positive := 4;      --! Number of edge inputs
+      g_NUM_TRIG_INPUTS    : positive := 6      --! Number of trigger inputs
+   );
+   PORT( 
+      clk_4x_logic_i         : IN     std_logic;                                           --! Rising edge active
+      ipbus_clk_i            : IN     std_logic;
+      logic_strobe_i         : IN     std_logic;                                           --! Pulses high once every 4 cycles of clk_4x_logic
+      logic_reset_i          : IN     std_logic;                                           --! goes high to reset counters. Synchronous with clk_4x_logic
+      rst_fifo_i             : IN     std_logic;                                           --! Goes high to reset FIFOs
+      buffer_full_i          : IN     std_logic;                                           --! Goes high when output fifo full
+      trigger_i              : IN     std_logic;                                           --! goes high to load trigger data. One cycle of clk_4x_logic
+      trigger_times_i        : IN     t_triggerTimeArray (g_NUM_TRIG_INPUTS-1 DOWNTO 0);   --! Array of trigger times ( w.r.t. logic_strobe)
+      trigger_inputs_fired_i : IN     std_logic_vector (g_NUM_TRIG_INPUTS-1 DOWNTO 0);     --! high for each input that "fired"
+      trigger_cnt_i          : IN     std_logic_vector (g_COUNTER_TRIG_WIDTH-1 DOWNTO 0);  --! Trigger count
+      shutter_i              : IN     std_logic;
+      shutter_cnt_i          : IN     std_logic_vector (g_COUNTER_WIDTH-1 DOWNTO 0);
+      spill_i                : IN     std_logic;
+      spill_cnt_i            : IN     std_logic_vector (g_COUNTER_WIDTH-1 DOWNTO 0);
+      edge_rise_i            : IN     std_logic_vector (g_NUM_EDGE_INPUTS-1 DOWNTO 0);     --! High when rising edge
+      edge_fall_i            : IN     std_logic_vector (g_NUM_EDGE_INPUTS-1 DOWNTO 0);     --! High when falling edge
+      edge_rise_time_i       : IN     t_triggerTimeArray (g_NUM_EDGE_INPUTS-1 DOWNTO 0);   --! Array of edge times ( w.r.t. logic_strobe)
+      edge_fall_time_i       : IN     t_triggerTimeArray (g_NUM_EDGE_INPUTS-1 DOWNTO 0);   --! Array of edge times ( w.r.t. logic_strobe)
+      ipbus_i                : IN     ipb_wbus;
+      ipbus_o                : OUT    ipb_rbus;
+      data_strobe_o          : OUT    std_logic;                                           --! goes high when data ready to load into event buffer
+      event_data_o           : OUT    std_logic_vector (g_EVENT_DATA_WIDTH-1 DOWNTO 0);
+      reset_timestamp_i      : IN     std_logic;                                           --! Taking high causes timestamp to be reset. Combined with internal timestmap reset and written to reset_timestamp_o
+      reset_timestamp_o      : OUT    std_logic                                           --! Goes high for one clock cycle of clk_4x_logic when timestamp reset
+   );
+
+-- Declarations
+
+END eventFormatter ;
+
+--
+ARCHITECTURE rtl OF eventFormatter IS
+
+  
+  constant c_NUM_INPUT_TYPES     : positive := 3+g_NUM_EDGE_INPUTS;               -- Number of different input types (trigger, shutter, edge(0), edge(1)...)
+  
+--  type t_fifo_io is array(natural range <>) of std_logic_vector(g_EVENT_DATA_WIDTH-1 downto 0);
+-- type t_evttype is array(natural range <>) of std_logic_vector(g_EVTTYPE_WIDTH-1 downto 0);
+--  type t_var is array(natural range <>) of std_logic_vector(g_COUNTER_WIDTH-1 downto 0);
+  -- Input types:
+  -- 0 - Trigger
+  -- 1 - Shutter
+  -- 2 - Edge signal
+  -- 3 - Spill
+  
+  --! delayed strobes
+  signal s_event_strobe , s_event_strobe_d1 ,s_event_strobe_d2 ,s_event_strobe_d3 , s_event_strobe_d3_opt : std_logic := '0';
+  signal shutter_i_d1, shutter_i_d2, edge_i_d1, edge_i_d2, spill_i_d1, spill_i_d2 : std_logic := '0';
+  
+--  signal s_evttype : t_evttype(3+g_NUM_EDGE_INPUTS-1 downto 0) := (others=>(others=>'0'));   -- Event type
+  signal s_evttype : std_logic_vector(g_EVTTYPE_WIDTH-1 downto 0) := ( others => '0');
+  -- 0000 trigger internal
+  -- 0001 trigger external
+  -- 0010 shutter falling
+  -- 0011 shutter rising
+  -- 0100 edge falling
+  -- 0101 edge rising
+  -- 0111 spill on
+  -- 0110 spill off
+  
+  signal s_var        : std_logic_vector(g_COUNTER_WIDTH-1 downto 0) := (others => '0');
+    
+  signal s_data_o        : std_logic_vector(g_EVENT_DATA_WIDTH-1 DOWNTO 0);         -- Multiplexed data from FIFOs
+  
+  constant c_COARSE_TIMESTAMP_WIDTH : positive := 48;  -- ! Number of bits in 40MHz timestamp
+  signal s_coarse_timestamp : std_logic_vector(c_COARSE_TIMESTAMP_WIDTH-1 downto 0) := (others => '0');  -- 40MHz timestamp.
+  signal s_coarse_timestamp_ipbus : ipb_reg_v(1 downto 0) := ( others => (others => '0')); --! 40MHz timestamp on IPB clock domain.
+
+--  signal s_event_number : unsigned(g_IPBUS_WIDTH-1 downto 0) := (others => '0');  -- increment after each post-veto trigger.
+
+  signal s_word0 , s_word1, s_word2 			: std_logic_vector(g_EVENT_DATA_WIDTH-1 downto 0) := (others => '0');  -- clocked to data output on logic_strobe , s_logic_strobe_d1 , etc.
+  signal s_word0_p1  : std_logic_vector(g_EVENT_DATA_WIDTH-1 downto 0) := (others => '0');  -- clocked to data output on logic_strobe , s_logic_strobe_d1 , etc.
+  signal s_word0_d1 , s_word1_d1, s_word2_d1 : std_logic_vector(g_EVENT_DATA_WIDTH-1 downto 0) := (others => '0');  -- clocked to data output on logic_strobe , s_logic_strobe_d1 , etc.
+  signal s_word0_d2 , s_word1_d2, s_word2_d2 : std_logic_vector(g_EVENT_DATA_WIDTH-1 downto 0) := (others => '0');  -- clocked to data output on logic_strobe , s_logic_strobe_d1 , etc.
+  signal s_word0_d3 , s_word1_d3, s_word2_d3 : std_logic_vector(g_EVENT_DATA_WIDTH-1 downto 0) := (others => '0');  -- clocked to data output on logic_strobe , s_logic_strobe_d1 , etc.
+  signal trigger_times_d1							: t_triggerTimeArray (g_NUM_TRIG_INPUTS-1 DOWNTO 0) := (others => (others=>'0')); 
+
+  signal s_reset_timestamp_4x, s_reset_timestamp_4x_ipbus , s_reset_timestamp_4x_external , s_reset_timestamp_4x_external_p1 , s_reset_timestamp_4x_external_p2 : std_logic := '0'; --! Single pulse on 4x domain
+  signal s_reset_timestamp_ipbus : std_logic := '0'; --! Single pulse on IPBus clock domain
+  
+  signal s_ipbus_ack      : std_logic := '0';  -- used to produce a delayed IPBus ack signal
+  signal s_enable_record, s_enable_record_ipb : std_logic_vector(g_IPBUS_WIDTH-1 downto 0) := (2 downto 0 => '1', others=>'0'); -- Enable data record
+  signal s_enable_trigger : std_logic := '1'; -- Enable trigger record
+  signal s_enable_shutter : std_logic := '1'; -- Enable shutter record
+  signal s_enable_spill   : std_logic := '1'; -- Enable spill record
+  signal s_enable_edges   : std_logic_vector(g_NUM_EDGE_INPUTS-1 downto 0) := (others=>'0'); -- Enable edges record
+
+  signal s_rst_fifo_d1 , s_rst_fifo_d2 , s_rst_fifo_clk4x  : std_logic := '0';
+  signal s_buffer_full_d1 , s_buffer_full_d2 , s_buffer_full_clk4x  : std_logic := '0';
+  signal s_trigger : std_logic := '0';  -- pulses on risng edge of triger in
+
+  signal s_captured_trigger_times :  t_triggerTimeArray (g_NUM_TRIG_INPUTS-1 DOWNTO 0);   --! Array of trigger times,captured when trigger
+  
+BEGIN
+
+  -----------------------------------------------------------------------------
+  -- IPBus write
+  -----------------------------------------------------------------------------
+  ipbus_write: process (ipbus_clk_i)
+  begin  -- process ipb_clk_i
+    if rising_edge(ipbus_clk_i) then
+
+      s_reset_timestamp_ipbus <= '0';
+      if (ipbus_i.ipb_strobe = '1' and ipbus_i.ipb_write = '1') then
+
+         case ipbus_i.ipb_addr(2 downto 0) is
+           when "000" => s_enable_record_ipb <= ipbus_i.ipb_wdata ; -- Enable data record
+           when "001" => s_reset_timestamp_ipbus <= '1';
+           when others => null;
+         end case;
+          
+       end if;
+
+       s_ipbus_ack <= ipbus_i.ipb_strobe and not s_ipbus_ack;
+       
+    end if;
+  end process ipbus_write;
+
+  ipbus_o.ipb_ack <= s_ipbus_ack;
+  ipbus_o.ipb_err <= '0';
+  
+
+  -----------------------------------------------------------------------------
+  -- IPBUS read
+  -----------------------------------------------------------------------------
+  with ipbus_i.ipb_addr(2 downto 0) select
+    ipbus_o.ipb_rdata <=
+      s_enable_record_ipb                     when "000",
+      s_coarse_timestamp_ipbus(0)              when "010",  
+      s_coarse_timestamp_ipbus(1)             when "011",  
+      (others => '1')                         when others;
+
+  cmp_timestampDomainCross : entity work.synchronizeRegisters
+    generic map (
+      g_NUM_REGISTERS => 2 )
+    port map (
+      clk_input_i  => clk_4x_logic_i,
+      data_i       => ( "0000000000000000" & s_coarse_timestamp(s_coarse_timestamp'left downto 32) , s_coarse_timestamp(31 downto 0) ) ,
+      data_o       => s_coarse_timestamp_ipbus, 
+      clk_output_i => ipbus_clk_i
+      );
+
+  -- Move reset timestamp pulse onto clk_4x_logic
+  cmp_resetTimestampDomainCross: entity work.pulseClockDomainCrossing
+    port map (
+      clk_input_i  => ipbus_clk_i,
+      pulse_i      => s_reset_timestamp_ipbus,
+      clk_output_i => clk_4x_logic_i, 
+      pulse_o      => s_reset_timestamp_4x_ipbus
+    );
+
+  -- Combine reset timestamp from IPBus and external source
+  -- purpose: combines resets from IPBus and external source onto clk_4x_logic_i
+  -- type   : combinational
+  -- inputs : clk_4x_logic_i
+  -- outputs: s_reset_timestamp_4x
+  p_combine_reset_timestamps: process (clk_4x_logic_i) is
+  begin  -- process p_combine_reset_timestamps
+    if rising_edge(clk_4x_logic_i) then
+      s_reset_timestamp_4x_external_p2 <= reset_timestamp_i;
+      s_reset_timestamp_4x_external_p1 <= s_reset_timestamp_4x_external_p2 ;
+      s_reset_timestamp_4x_external    <= s_reset_timestamp_4x_external_p1 ;
+      s_reset_timestamp_4x <= s_reset_timestamp_4x_external or s_reset_timestamp_4x_ipbus;
+    end if;
+  end process p_combine_reset_timestamps;
+  
+  reset_timestamp_o <= s_reset_timestamp_4x;
+  
+  -- Change control signals from IPBus clock domain on to clk_4x_logic
+  -- CHANGE ME - use synchronize registers instead.
+  p_signals_clk_domain: process (clk_4x_logic_i )
+  begin  -- process p_internal_triggers
+    if rising_edge(clk_4x_logic_i) then
+      s_enable_record  <= s_enable_record_ipb;
+		
+      s_enable_trigger <= s_enable_record(0);
+      s_enable_shutter <= s_enable_record(1);
+      s_enable_spill <= s_enable_record(2);
+      s_enable_edges <= s_enable_record(g_NUM_EDGE_INPUTS-1+3 downto 3);
+
+      -- move  "reset fifo" and "buffer full"  signals onto clock4x domain
+      s_rst_fifo_d1 <= rst_fifo_i;
+      s_rst_fifo_d2 <= s_rst_fifo_d1;
+      s_rst_fifo_clk4x <= s_rst_fifo_d2 ;
+      s_buffer_full_d1 <= buffer_full_i;
+      s_buffer_full_d2 <= s_buffer_full_d1;
+      s_buffer_full_clk4x <= s_buffer_full_d2;  
+      
+    end if;
+  end process p_signals_clk_domain;
+
+  cmp_triggerEdgeDetect: entity work.single_pulse
+    port map (
+      level => trigger_i,
+      clk => clk_4x_logic_i,
+      pulse => s_trigger
+      );
+  
+  -- purpose: generate delayed strobes and write enable flags to the FIFOs
+  -- type   : combinational
+  -- inputs : clk_4x_logic_i , s_FIFO_rd
+  -- outputs: s_event_strobe_d1 , s_event_strobe_d2 , s_event_strobe_d3 , s_FIFO_rd_d , s_**_evttype
+  p_ff_rst: process (clk_4x_logic_i)
+  begin  -- process p_generate_strobes
+    if rising_edge(clk_4x_logic_i) then      
+      if s_rst_fifo_clk4x = '1' then
+        s_event_strobe_d1 <= '0';
+        s_event_strobe_d2 <= '0';
+        s_event_strobe_d3 <= '0';
+		
+      else
+        -- set s_event_strobe high if trigger_i is high and pipeline is empty
+        -- ( i.e. all event_strobe are zero)
+
+        s_event_strobe_d1 <= s_trigger and s_enable_trigger and not buffer_full_i and
+                             (not s_event_strobe_d1 ) and (not s_event_strobe_d2 ) and (not s_event_strobe_d3 );
+        s_event_strobe_d2 <= s_event_strobe_d1;
+        s_event_strobe_d3 <= s_event_strobe_d2;
+		
+      end if;
+    end if;
+  end process p_ff_rst;
+  
+  p_ff: process (clk_4x_logic_i)
+  begin  -- process p_generate_strobes
+    if rising_edge(clk_4x_logic_i) then
+
+		trigger_times_d1 <= trigger_times_i;
+
+        s_word0 <= s_word0_p1;
+		s_word0_d1 <= s_word0;
+		s_word1_d1 <= s_word1;
+		s_word1_d2 <= s_word1_d1;
+		s_word2_d1 <= s_word2;
+		s_word2_d2 <= s_word2_d1;
+		s_word2_d3 <= s_word2_d2;
+		
+	end if;
+  end process;
+	
+  -- If there are more than 4 trigger inputs we need to fill a second word.
+  -- .. do this by having an optional strobe.
+  -- If 4 or fewer trigger inputs, just leave s_event_strobe_d3_opt at zero..
+  gen_strobe_d3: if (g_NUM_TRIG_INPUTS > 4) generate
+    s_event_strobe_d3_opt <= s_event_strobe_d3;
+  end generate;
+
+-------------------------------------------------------------------------------
+-- Trigger event formater
+-------------------------------------------------------------------------------
+  s_evttype <= "0000" when unsigned(trigger_inputs_fired_i) = 0 else "0001";
+
+  --s_var <= trigger_inputs_fired_i & std_logic_vector(to_unsigned(0,s_var'length-g_NUM_TRIG_INPUTS));
+  s_var <= std_logic_vector(to_unsigned(0,s_var'length-g_NUM_TRIG_INPUTS)) & trigger_inputs_fired_i; -- Pad with zeroes on the left.
+
+  s_word0_p1 <= s_evttype & s_var & s_coarse_timestamp;
+  
+  s_word1 <= "000" & trigger_times_d1(0) & "000" & trigger_times_d1(1) &
+             "000" & trigger_times_d1(2) & "000" & trigger_times_d1(3) &
+             trigger_cnt_i;
+				 
+	
+  -- Different number of trigger inputs require packing into s_word2 in
+  -- different ways.
+  -- Do this in a generate since g_NUM_TRIG_INPUTS is static and
+  -- Questasim doesn't like refering to indices outside declared range.
+    gen_word2_init: if (g_NUM_TRIG_INPUTS <= 4) generate
+       s_word2 <= (others=>'0');
+    end generate;
+  --s_word2 <= (others=>'0'); -- Set all bits to zero
+  -- then override with the following assignments....
+    gen_word2: for v_trigInput in 4 to g_NUM_TRIG_INPUTS-1 generate
+        s_word2( (((11-v_trigInput)*8)+c_NUM_TIME_BITS-1) downto ((11-v_trigInput)*8) ) <= trigger_times_i(v_trigInput);
+    end generate;
+  
+      
+  --! Could also output data on trigger_i , but let's use the delayed signals. \n
+  --! The counters are one cycle delayed from the signal generation
+  p_fifo_i : process (clk_4x_logic_i)
+  begin  
+    if rising_edge(clk_4x_logic_i) then
+      data_strobe_o <= s_event_strobe_d1 or s_event_strobe_d2 or s_event_strobe_d3_opt;
+      
+      if s_event_strobe_d1 = '1' then
+        event_data_o <= s_word0_d1;
+      elsif s_event_strobe_d2 = '1' then
+        event_data_o <= s_word1_d2;
+      elsif s_event_strobe_d3_opt = '1' then
+        event_data_o <= s_word2_d3;
+      else
+        event_data_o <= (others=>'0');
+      end if;
+    end if;
+  end process;
+		
+
+  cmp_timeStampCounter: entity work.counterWithReset
+    generic map (
+      g_COUNTER_WIDTH => s_coarse_timestamp'length)
+    port map (
+      clock_i  => clk_4x_logic_i,
+      reset_i  => s_reset_timestamp_4x or logic_reset_i,
+      enable_i => logic_strobe_i,
+      result_o => s_coarse_timestamp);
+    
+ 
+  -- Generate data in format decided at DESY. Put out two strobes for the
+  -- two 64 bit words.
+  -- get trigger inputs to also generate a global time-stamp ??
+  -- add trigger_inputs_active_i array (to indicate which triggers fired)
+  
+END ARCHITECTURE rtl;
+
diff --git a/legacy/TLU_v1e/hdl/fmcTLU_pkg.vhd b/legacy/TLU_v1e/hdl/fmcTLU_pkg.vhd
new file mode 100644
index 00000000..cb6b1010
--- /dev/null
+++ b/legacy/TLU_v1e/hdl/fmcTLU_pkg.vhd
@@ -0,0 +1,27 @@
+--=============================================================================
+--! @file fmcTLU_pkg.vhd
+--=============================================================================
+---
+--! @brief VHDL Package Header fmc_mTLU_lib.fmcTLU
+--
+--! @author  phdgc
+--! @date  16:44:31 11/08/12         
+--
+-- using Mentor Graphics HDL Designer(TM) 2010.3 (Build 21)
+--
+LIBRARY ieee;
+USE ieee.std_logic_1164.all;
+PACKAGE fmcTLU IS
+  
+  constant c_NUM_TIME_BITS : natural := 5;
+  constant c_NUM_TRIG_INPUTS : natural := 4;
+  constant c_EVENT_DATA_WIDTH : natural := 32;
+  constant c_DATA_WIDTH : natural := 32;
+  
+  subtype t_triggerTime is std_logic_vector(c_NUM_TIME_BITS-1 downto 0);
+  --type    t_triggerTimeArray is array(natural range <>) of t_triggerTime;
+  type    t_triggerTimeArray is array(natural range <>) of std_logic_vector(c_NUM_TIME_BITS-1 downto 0) ;
+
+  type t_registerArray is array(natural range <>) of std_logic_vector(c_DATA_WIDTH-1 downto 0) ;
+  
+END fmcTLU;
diff --git a/legacy/TLU_v1e/hdl/fmcTLU_pkg_body.vhd b/legacy/TLU_v1e/hdl/fmcTLU_pkg_body.vhd
new file mode 100644
index 00000000..9437776d
--- /dev/null
+++ b/legacy/TLU_v1e/hdl/fmcTLU_pkg_body.vhd
@@ -0,0 +1,13 @@
+--=============================================================================
+--! @file fmcTLU_pkg_body.vhd
+--=============================================================================
+---
+--! @brief VHDL Package Body fmc_mTLU_lib.fmcTLU
+--
+--! @author  phdgc
+--! @date  16:45:08 11/08/12         
+--
+-- using Mentor Graphics HDL Designer(TM) 2010.3 (Build 21)
+--
+PACKAGE BODY fmcTLU IS
+END fmcTLU;
diff --git a/legacy/TLU_v1e/hdl/handshakes_rtl.vhd b/legacy/TLU_v1e/hdl/handshakes_rtl.vhd
new file mode 100644
index 00000000..ab893a2a
--- /dev/null
+++ b/legacy/TLU_v1e/hdl/handshakes_rtl.vhd
@@ -0,0 +1,248 @@
+--=============================================================================
+--! @file handshakes_rtl.vhd
+--=============================================================================
+--
+-------------------------------------------------------------------------------
+-- --
+-- University of Santiago de Compostela, High Energy Physics Group.
+-- --
+------------------------------------------------------------------------------- --
+-- VHDL Architecture fmc_mTLU_lib.handshakes.rtl
+--
+--! @brief Handshakes between TLU and DUTs. \n
+--
+--
+--! @author Alvaro Dosil , alvaro.dosil@usc.es
+--
+--! @date 12:08:30 25/06/14
+--
+--! @version v0.1
+--
+--! @details
+--!
+--!
+--! <b>Dependencies:</b>\n
+--!
+--! <b>References:</b>\n
+--!
+--! <b>Modified by: </b>\n
+--! Author: 
+-------------------------------------------------------------------------------
+--! \n\n<b>Last changes:</b>\n
+-------------------------------------------------------------------------------
+--! @todo \n
+--! <another thing to do> \n
+--
+--------------------------------------------------------------------------------
+-- 
+-- Created using using Mentor Graphics HDL Designer(TM) 2010.3 (Build 21)
+--
+LIBRARY ieee;
+USE ieee.std_logic_1164.all;
+USE ieee.numeric_std.all;
+
+USE work.ipbus.all;
+use work.ipbus_reg_types.all;
+
+ENTITY handshakes IS
+   GENERIC( 
+      g_IPBUS_WIDTH         : positive := 32
+   );
+   PORT( 
+      clk_i    			: IN     std_logic;
+		Trigger_i			: IN 		std_logic;
+      ipbus_clk_i       : IN     std_logic;
+      ipbus_i           : IN     ipb_wbus;
+      ipbus_reset_i     : IN     std_logic;
+      ipbus_o           : OUT    ipb_rbus;
+      logic_reset_i     : IN     std_logic;    
+		Busy_i				: IN		std_logic;
+		AIDAhandshake_o	: OUT		std_logic;		-- running an AIDA handshake or the old EUDET handshake
+		Trigger_o			: OUT 	std_logic;
+		rst_or_clk_o		: OUT 	std_logic		-- CONT in schematics
+   );
+
+-- Declarations
+
+END ENTITY handshakes ;
+
+--
+ARCHITECTURE rtl OF handshakes IS
+
+	signal s_handshakeEnabled : std_logic_vector(g_IPBUS_WIDTH-1 downto 0);
+	signal s_Shutter, s_T0sync : std_logic;
+	signal s_Trigger, s_TrigAux : std_logic := '0';
+	signal s_Busy, s_Busy_d1, s_Busy_d2, s_Busy_d3 : std_logic;
+	
+	signal TPx3_T0syncLen 	: std_logic_vector(g_IPBUS_WIDTH-1 DOWNTO 0) := x"00000004";   	--! T0-sync length
+	signal TPx3_Start_T0sync 	: std_logic;   																--! Flag to start the T0-sync signal
+
+	signal s_Veto 			: std_logic := '0';
+	signal s_WU				: std_logic := '0';
+	signal s_NMaxPulses 	: std_logic_vector(g_IPBUS_WIDTH-1 DOWNTO 0) := (others=>'0');
+	signal s_SuDTime 		: std_logic_vector(g_IPBUS_WIDTH-1 DOWNTO 0) := (others=>'0');
+	signal s_PulseLen 	: std_logic_vector(g_IPBUS_WIDTH-1 DOWNTO 0) := x"00000001";
+	signal s_IpDTime 		: std_logic_vector(g_IPBUS_WIDTH-1 DOWNTO 0) := x"00000001";
+	signal s_RearmTime 	: std_logic_vector(g_IPBUS_WIDTH-1 DOWNTO 0) := x"10000000";
+	signal s_PulseDelay 	: std_logic_vector(g_IPBUS_WIDTH-1 DOWNTO 0) := (others=>'0');
+	signal s_MaxPulses	: std_logic;
+	signal s_pulse			: std_logic;
+	
+	constant c_N_CTRL : positive := 13;
+	constant c_N_STAT : positive := 13;
+	signal s_status_to_ipbus, s_sync_status_to_ipbus : ipb_reg_v(c_N_STAT-1 downto 0);
+	signal s_control_from_ipbus,s_sync_control_from_ipbus  : ipb_reg_v(c_N_CTRL-1 downto 0);
+
+BEGIN
+
+  -----------------------------------------------------------------------------
+  -- IPBus interface 
+  -----------------------------------------------------------------------------
+  ipbus_registers: entity work.ipbus_ctrlreg_v
+    generic map(
+      N_CTRL => c_N_CTRL,
+      N_STAT => c_N_STAT
+      )
+    port map(
+      clk => ipbus_clk_i,
+      reset=> '0',--ipbus_reset_i ,
+      ipbus_in=>  ipbus_i,
+      ipbus_out=> ipbus_o,
+      d=>  s_sync_status_to_ipbus,
+      q=>  s_control_from_ipbus,
+      stb=>  open
+      );
+
+  -- Synchronize registers from logic clock to ipbus.
+    sync_status: entity work.synchronizeRegisters
+    generic map (
+      g_NUM_REGISTERS => c_N_STAT )
+    port map (
+      clk_input_i => clk_i,
+      data_i      =>  s_status_to_ipbus,
+      data_o      => s_sync_status_to_ipbus,
+      clk_output_i => ipbus_clk_i);
+
+    -- Synchronize registers from logic clock to ipbus.
+    sync_ctrl: entity work.synchronizeRegisters
+    generic map (
+      g_NUM_REGISTERS => c_N_CTRL )
+    port map (
+      clk_input_i => ipbus_clk_i,
+      data_i      =>  s_control_from_ipbus,
+      data_o      => s_sync_control_from_ipbus,
+      clk_output_i => clk_i);
+		
+	-----------------------------------------------------------------------------
+	-- Logic not ready to use
+	-----------------------------------------------------------------------------
+		
+	--Map the control registers
+	s_handshakeEnabled <= s_sync_control_from_ipbus(0);
+	
+	s_status_to_ipbus(0) <= s_handshakeEnabled;
+
+	
+	-- No handshake registers
+	s_NMaxPulses <= s_sync_control_from_ipbus(5);
+	s_SuDTime <= s_sync_control_from_ipbus(6);
+	s_PulseLen <= s_sync_control_from_ipbus(7);
+	s_IpDTime <= s_sync_control_from_ipbus(8);
+	s_RearmTime <= s_sync_control_from_ipbus(9);
+	s_PulseDelay <= s_sync_control_from_ipbus(10);
+	s_Veto <= s_sync_control_from_ipbus(11)(0);
+	s_WU <= s_sync_control_from_ipbus(11)(1);
+	
+	s_status_to_ipbus(5) <= s_NMaxPulses;
+	s_status_to_ipbus(6) <= s_SuDTime;
+	s_status_to_ipbus(7) <= s_PulseLen;
+	s_status_to_ipbus(8) <= s_IpDTime;
+	s_status_to_ipbus(9) <= s_RearmTime;
+	s_status_to_ipbus(10) <= s_PulseDelay;
+	s_status_to_ipbus(11) <= x"0000000"& "00" & s_WU & s_Veto;
+	s_status_to_ipbus(12) <= x"0000000"& "000" & s_MaxPulses;
+	
+	-- TPx3 registers
+	TPx3_Start_T0sync <= s_sync_control_from_ipbus(1)(0);
+	TPx3_T0syncLen 	<= x"00000001" when s_sync_control_from_ipbus(2)<x"000000002" else
+								s_sync_control_from_ipbus(2);
+  
+	s_status_to_ipbus(1) <= x"0000000" & "000" & TPx3_Start_T0sync;
+	s_status_to_ipbus(2) <= TPx3_T0syncLen;
+  
+  
+	-----------------------------------------------------------------------------
+	-- Synchronization - Rewrite!!!
+	-----------------------------------------------------------------------------
+	p_trigger : process(Trigger_i, s_Trigger)
+	begin
+		if Trigger_i = '1' then
+			s_TrigAux <= '1';
+		elsif s_Trigger = '1' then
+			s_TrigAux <= '0';
+		end if;
+	end process p_trigger;
+	
+	p_sync: process (clk_i )
+	begin  -- process p_run_counter
+		if rising_edge(clk_i) then
+			s_Trigger <= s_TrigAux;
+			
+			s_Busy_d1 <= Busy_i;
+			s_Busy_d2 <= s_Busy_d1;
+			s_Busy_d3 <= s_Busy_d2;
+			s_Busy <= s_Busy_d2;
+		end if;
+  end process p_sync;
+	
+	-----------------------------------------------------------------------------
+	-- I/O
+	-----------------------------------------------------------------------------
+	Trigger_o <= 	s_Trigger when s_handshakeEnabled(1 downto 0) = "00"  and s_Busy = '0' else
+						s_pulse when s_handshakeEnabled(1 downto 0) = "01" else							-- No handshake
+						s_Shutter when s_handshakeEnabled(1 downto 0) = "10" else						-- TPx3 handshake
+						'0';
+	rst_or_clk_o <= 	s_T0sync when s_handshakeEnabled(1 downto 0) = "10" else
+							'0';
+	
+	AIDAhandshake_o <= not s_handshakeEnabled(3); 	-- s_handshakeEnabled = x"00001000" => EUDET handshake.
+																	-- All handshakes with s_handshakeEnabled(3)='0' are AIDA handshakes
+	
+	-- No Handshake (GPP)
+	No_handshake:  entity work.GPP
+	GENERIC MAP( 
+		g_IPBUS_WIDTH => g_IPBUS_WIDTH)
+	PORT MAP( 
+		clk_i       		=> clk_i,
+		Enable_i          => not (s_Busy or s_Veto),
+      Reset_i           => logic_reset_i,
+      RstPulsCnt_i     	=> '0',
+      Trigger_i         => s_Trigger,
+      NMaxPulses_i      => s_NMaxPulses,
+      SuDTime_i         => s_SuDTime,
+      PulsLen_i     		=> s_PulseLen,
+      IpDTime_i         => s_IpDTime,
+		RearmTime_i       => s_RearmTime,
+      Force_PullDown_i  => s_Busy or s_Veto,
+      WU_i              => s_WU,
+      PulseDelay_i      => s_PulseDelay,
+		event_number_o    => open,
+      MaxPulses_o       => s_MaxPulses,
+      Pulse_o           => s_pulse,
+      Pulse_d_o         => open);
+		
+	-- TPx3 Handshake
+	TPx3_logic: entity work.TPx3Logic
+   PORT MAP( 
+      clk_i					=> clk_i,
+		Start_T0sync_i		=> TPx3_Start_T0sync,
+		T0syncLen_i			=> TPx3_T0syncLen,
+      logic_reset_i     => logic_reset_i,
+      Busy_i				=> s_Busy,
+		Veto_i				=> s_Veto,
+		Shutter_o			=> s_Shutter,
+		T0sync_o 			=>	s_T0sync
+   );
+
+END ARCHITECTURE rtl;
+
diff --git a/legacy/TLU_v1e/hdl/i2c/i2c_master_bit_ctrl.vhd b/legacy/TLU_v1e/hdl/i2c/i2c_master_bit_ctrl.vhd
new file mode 100644
index 00000000..d0dc4e9a
--- /dev/null
+++ b/legacy/TLU_v1e/hdl/i2c/i2c_master_bit_ctrl.vhd
@@ -0,0 +1,492 @@
+----------------------------------------------------------------------
+-- >>>>>>>>>>>>>>>>>>>>>> COPYRIGHT NOTICE <<<<<<<<<<<<<<<<<<<<<<<<<<<
+----------------------------------------------------------------------
+--///////////////////////////////////////////////////////////////////
+--//                                                             ////
+--//  WISHBONE rev.B2 compliant I2C Master bit-controller        ////
+--//                                                             ////
+--//                                                             ////
+--//  Author: Richard Herveille                                  ////
+--//          richard@asics.ws                                   ////
+--//          www.asics.ws                                       ////
+--//                                                             ////
+--//  Downloaded from: http://www.opencores.org/projects/i2c/    ////
+--//                                                             ////
+--///////////////////////////////////////////////////////////////////
+--//                                                             ////
+--// Copyright (C) 2001 Richard Herveille                        ////
+--//                    richard@asics.ws                         ////
+--//                                                             ////
+--// This source file may be used and distributed without        ////
+--// restriction provided that this copyright statement is not   ////
+--// removed from the file and that any derivative work contains ////
+--// the original copyright notice and the associated disclaimer.////
+--//                                                             ////
+--//     THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY     ////
+--// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED   ////
+--// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS   ////
+--// FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL THE AUTHOR      ////
+--// OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,         ////
+--// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES    ////
+--// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE   ////
+--// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR        ////
+--// BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF  ////
+--// LIABILITY, WHETHER IN  CONTRACT, STRICT LIABILITY, OR TORT  ////
+--// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT  ////
+--// OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE         ////
+--// POSSIBILITY OF SUCH DAMAGE.                                 ////
+--//                                                             ////
+--///////////////////////////////////////////////////////////////////
+-- --------------------------------------------------------------------              
+-- >>>>>>>>>>>>>>>>>>>>>>>>> COPYRIGHT NOTICE <<<<<<<<<<<<<<<<<<<<<<<<<              
+-- --------------------------------------------------------------------              
+-- Copyright (c) 2008 - 2010 by Lattice Semiconductor Corporation                    
+-- --------------------------------------------------------------------                            
+--                                                                                   
+-- Disclaimer:                                                                       
+--                                                                                   
+-- This VHDL or Verilog source code is intended as a design reference                
+-- which illustrates how these types of functions can be implemented.                
+-- It is the user's responsibility to verify their design for                        
+-- consistency and functionality through the use of formal                           
+-- verification methods. Lattice Semiconductor provides no warranty                  
+-- regarding the use or functionality of this code.                                  
+--                                                                                   
+-- --------------------------------------------------------------------              
+--                                                                                   
+-- Lattice Semiconductor Corporation                                                 
+-- 5555 NE Moore Court                                                               
+-- Hillsboro, OR 97214                                                               
+-- U.S.A                                                                             
+--                                                                                   
+-- TEL: 1-800-Lattice (USA and Canada)                                               
+-- 503-268-8001 (other locations)                                                    
+--                                                                                   
+-- web: http://www.latticesemi.com/                                                  
+-- email: techsupport@latticesemi.com                                                
+--                                                                                   
+-- --------------------------------------------------------------------              
+-- Code Revision History :                                                           
+-- --------------------------------------------------------------------              
+-- Ver: | Author |Mod. Date |Changes Made:                                           
+-- V1.0 |K.P.    | 7/09     | Initial ver for VHDL                                       
+-- 			    | converted from LSC ref design RD1046                   
+-- --------------------------------------------------------------------              
+
+
+--/////////////////////////////////////
+--// Bit controller section
+--/////////////////////////////////////
+--//
+--// Translate simple commands into SCL/SDA transitions
+--// Each command has 5 states, A/B/C/D/idle
+--//
+--// start:	SCL	~~~~~~~~~~\____
+--//	SDA	~~~~~~~~\______
+--//		 x | A | B | C | D | i
+--//
+--// repstart	SCL	____/~~~~\___
+--//	SDA	__/~~~\______
+--//		 x | A | B | C | D | i
+--//
+--// stop	SCL	____/~~~~~~~~
+--//	SDA	==\____/~~~~~
+--//		 x | A | B | C | D | i
+--//
+--//- write	SCL	____/~~~~\____
+--//	SDA	==X=========X=
+--//		 x | A | B | C | D | i
+--//
+--//- read	SCL	____/~~~~\____
+--//	SDA	XXXX=====XXXX
+--//		 x | A | B | C | D | i
+--//
+--
+--// Timing:     Normal mode      Fast mode
+--///////////////////////////////////////////////////////////////////////
+--// Fscl        100KHz           400KHz
+--// Th_scl      4.0us            0.6us   High period of SCL
+--// Tl_scl      4.7us            1.3us   Low period of SCL
+--// Tsu:sta     4.7us            0.6us   setup time for a repeated start condition
+--// Tsu:sto     4.0us            0.6us   setup time for a stop conditon
+--// Tbuf        4.7us            1.3us   Bus free time between a stop and start condition
+--//
+--
+-- --------------------------------------------------------------------
+
+library ieee;
+use ieee.std_logic_1164.all;
+use ieee.std_logic_arith.all;
+use ieee.std_logic_unsigned.all;
+
+entity i2c_master_bit_ctrl is
+  port (
+        clk      : in  std_logic;
+        rst      : in  std_logic;
+        nReset   : in  std_logic;
+        clk_cnt  : in  std_logic_vector(15 downto 0);	-- clock prescale value
+        ena      : in  std_logic;						-- core enable signal
+        cmd      : in  std_logic_vector(3 downto 0);
+        cmd_ack  : out std_logic;						-- command complete acknowledge
+        busy     : out std_logic;						-- i2c bus busy
+        al       : out std_logic;						-- i2c bus arbitration lost
+        din      : in  std_logic;
+        dout     : out std_logic;
+        scl_i    : in  std_logic;						-- i2c clock line input
+        scl_o    : out std_logic;						-- i2c clock line output
+        scl_oen  : out std_logic;						-- i2c clock line output enable (active low)
+        sda_i    : in  std_logic;						-- i2c data line input
+        sda_o    : out std_logic;						-- i2c data line output
+        sda_oen  : out std_logic						-- i2c data line output enable (active low)
+        );
+        
+ 
+end;
+
+architecture arch of i2c_master_bit_ctrl is
+
+--attribute UGROUP:string;                                   
+--attribute UGROUP of arch : label is "bit_group"; 
+
+
+signal sSCL, sSDA : std_logic;	-- synchronized SCL and SDA inputs
+signal dscl_oen : std_logic;	-- delayed scl_oen
+signal sda_chk : std_logic;		-- check SDA output (Multi-master arbitration)
+signal clk_en : std_logic;		-- clock generation signals
+signal slave_wait : std_logic;
+
+-- bus status controller signals
+signal dSCL,dSDA : std_logic;
+signal sta_condition : std_logic;
+signal sto_condition : std_logic;
+signal cmd_stop : std_logic;
+
+signal cnt : std_logic_vector(15 downto 0);	-- clock divider counter
+
+signal scl_oen_int : std_logic;
+signal sda_oen_int : std_logic;
+signal busy_int : std_logic;
+signal al_int : std_logic;
+
+-- state machine variable
+signal c_state : std_logic_vector(16 downto 0);
+
+constant idle 		: std_logic_vector(16 downto 0) := "00000000000000000";
+constant start_a 	: std_logic_vector(16 downto 0) := "00000000000000001";
+constant start_b 	: std_logic_vector(16 downto 0) := "00000000000000010";
+constant start_c 	: std_logic_vector(16 downto 0) := "00000000000000100";
+constant start_d 	: std_logic_vector(16 downto 0) := "00000000000001000";
+constant start_e 	: std_logic_vector(16 downto 0) := "00000000000010000";
+constant stop_a 	: std_logic_vector(16 downto 0) := "00000000000100000";
+constant stop_b	 	: std_logic_vector(16 downto 0) := "00000000001000000";
+constant stop_c	 	: std_logic_vector(16 downto 0) := "00000000010000000";
+constant stop_d 	: std_logic_vector(16 downto 0) := "00000000100000000";
+constant rd_a	 	: std_logic_vector(16 downto 0) := "00000001000000000";
+constant rd_b 		: std_logic_vector(16 downto 0) := "00000010000000000";
+constant rd_c 		: std_logic_vector(16 downto 0) := "00000100000000000";
+constant rd_d 		: std_logic_vector(16 downto 0) := "00001000000000000";
+constant wr_a 		: std_logic_vector(16 downto 0) := "00010000000000000";
+constant wr_b 		: std_logic_vector(16 downto 0) := "00100000000000000";
+constant wr_c 		: std_logic_vector(16 downto 0) := "01000000000000000";
+constant wr_d 		: std_logic_vector(16 downto 0) := "10000000000000000";
+
+constant I2C_CMD_NOP	: std_logic_vector(3 downto 0) := "0000";
+constant I2C_CMD_START	: std_logic_vector(3 downto 0) := "0001";
+constant I2C_CMD_STOP	: std_logic_vector(3 downto 0) := "0010";
+constant I2C_CMD_WRITE	: std_logic_vector(3 downto 0) := "0100";
+constant I2C_CMD_READ	: std_logic_vector(3 downto 0) := "1000";
+
+begin
+
+scl_oen <= scl_oen_int;
+sda_oen <= sda_oen_int;
+
+-- whenever the slave is not ready it can delay the cycle by pulling SCL low
+-- delay scl_oen
+process(clk)
+begin
+	if rising_edge(clk) then
+		dscl_oen <= scl_oen_int;
+	end if;
+end process;
+
+slave_wait <= '1' when ((dscl_oen = '1') AND (sSCL = '0')) else '0';
+
+-- generate clk enable signal
+process(clk,nReset)
+begin
+	if (nReset = '0') then
+		cnt <= (others => '0');
+		clk_en <= '1';
+	elsif rising_edge(clk) then
+		if (rst = '1') then
+			cnt <= (others => '0');
+			clk_en <= '1';
+		elsif ((cnt = "0000000000000000") OR (ena = '0')) then
+			cnt <= clk_cnt;
+			clk_en <= '1';
+		elsif (slave_wait = '1') then
+			cnt <= cnt;
+			clk_en <= '0';
+		else
+			cnt <= cnt - '1';
+			clk_en <= '0';
+		end if;
+	end if;
+end process;
+
+-- synchronize SCL and SDA inputs
+-- reduce metastability risc
+process(clk,nReset)
+begin
+	if (nReset = '0') then
+		sSCL <= '1';
+		sSDA <= '1';
+		dSCL <= '1';
+		dSDA <= '1';
+	elsif rising_edge(clk) then
+		if (rst = '1') then
+			sSCL <= '1';
+			sSDA <= '1';
+			dSCL <= '1';
+			dSDA <= '1';
+		else
+			dSCL <= sSCL;
+			dSDA <= sSDA;
+                        -- Don't need to treat 'H' if separate I and O
+			-- if ((scl_i = '1') OR (scl_i = 'H')) then
+                        if (scl_i = '1')  then
+				sSCL <= '1';
+			else
+				sSCL <= '0';
+			end if;
+			-- if ((sda_i = '1') OR (sda_i = 'H')) then
+                        if (sda_i = '1')  then
+				sSDA <= '1';
+			else
+				sSDA <= '0';
+			end if;
+		end if;
+	end if;
+end process;
+
+-- detect start condition => detect falling edge on SDA while SCL is high
+-- detect stop condition => detect rising edge on SDA while SCL is high
+process(clk,nReset)
+begin
+	if (nReset = '0') then
+		sta_condition <= '0';
+		sto_condition <= '0';
+	elsif rising_edge(clk) then
+		if (rst = '1') then
+			sta_condition <= '0';
+			sto_condition <= '0';
+		else
+			sta_condition <= NOT(sSDA) AND dSDA AND sSCL;
+			sto_condition <= sSDA AND NOT(dSDA) AND sSCL;
+		end if;
+	end if;
+end process;
+
+-- generate i2c bus busy signal
+process(clk,nReset)
+begin
+	if (nReset = '0') then
+		busy_int <= '0';
+	elsif rising_edge(clk) then
+		if (rst = '1') then
+			busy_int <= '0';
+		else
+			busy_int <= (sta_condition OR busy_int) AND NOT(sto_condition);
+		end if;
+	end if;
+end process;
+
+busy <= busy_int;
+
+-- generate arbitration lost signal
+-- aribitration lost when:
+-- 1) master drives SDA high, but the i2c bus is low
+-- 2) stop detected while not requested
+process(clk,nReset)
+begin
+	if (nReset = '0') then
+		cmd_stop <= '0';
+	elsif rising_edge(clk) then
+		if (rst = '1') then
+			cmd_stop <= '0';
+		elsif (clk_en = '1') then
+			if (cmd = I2C_CMD_STOP) then
+				cmd_stop <= '1';
+			else
+				cmd_stop <= '0';
+			end if;
+		end if;
+	end if;
+end process;
+
+process(clk,nReset)
+begin
+	if (nReset = '0') then
+		al_int <= '0';
+	elsif rising_edge(clk) then
+		if (rst = '1') then
+			al_int <= '0';
+		else
+			if (((sda_chk = '1') AND (sSDA = '0') AND (sda_oen_int = '1')) OR ((c_state /= idle) AND (sto_condition = '1') AND (cmd_stop = '0'))) then
+				al_int <= '1';
+			else
+				al_int <= '0';
+			end if;
+		end if;
+	end if;
+end process;
+
+al <= al_int;
+
+
+-- generate dout signal (store SDA on rising edge of SCL)
+process(clk)
+begin
+	if rising_edge(clk) then
+		if ((sSCL = '1') AND (dSCL = '0')) then
+			dout <= sSDA;
+		end if;
+	end if;
+end process;
+
+
+--generate state machine
+process(clk,nReset)
+begin
+	if (nReset = '0') then
+		c_state <= idle;
+		cmd_ack <= '0';
+		scl_oen_int <= '1';
+		sda_oen_int <= '1';
+		sda_chk <= '0';
+	elsif rising_edge(clk) then
+		if ((rst = '1') OR (al_int = '1')) then
+			c_state <= idle;
+			cmd_ack <= '0';
+			scl_oen_int <= '1';
+			sda_oen_int <= '1';
+			sda_chk <= '0';
+		else
+			cmd_ack <= '0';	--default no command acknowledge + assert cmd_ack only 1clk cycle
+			if (clk_en = '1') then
+				case (c_state) is
+					when idle =>
+							case (cmd) is
+								when I2C_CMD_START	=> c_state <= start_a;
+								when I2C_CMD_STOP	=> c_state <= stop_a;
+								when I2C_CMD_WRITE	=> c_state <= wr_a;
+								when I2C_CMD_READ	=> c_state <= rd_a;
+								when others			=> c_state <= idle;
+							end case;
+
+							scl_oen_int <= scl_oen_int;  -- keep SCL in same state
+							sda_oen_int <= sda_oen_int;  -- keep SDA in same state
+							sda_chk <= '0';              -- don't check SDA output
+					when start_a =>          -- start
+							c_state <= start_b;
+							scl_oen_int <= scl_oen_int;  -- keep SCL in same state
+							sda_oen_int <= '1';          -- set SDA high
+							sda_chk <= '0';              -- don't check SDA output
+					when start_b =>
+							c_state <= start_c;
+							scl_oen_int <= '1';          -- set SCL high
+							sda_oen_int <= '1';          -- keep SDA high
+							sda_chk <= '0';              -- don't check SDA output
+					when start_c =>
+							c_state <= start_d;
+							scl_oen_int <= '1';          -- keep SCL high
+							sda_oen_int <= '0';          -- set SDA low
+							sda_chk <= '0';              -- don't check SDA output
+					when start_d =>
+							c_state <= start_e;
+							scl_oen_int <= '1';          -- keep SCL high
+							sda_oen_int <= '0';          -- keep SDA low
+							sda_chk <= '0';              -- don't check SDA output
+					when start_e =>
+							c_state <= idle;
+							cmd_ack <= '1';
+							scl_oen_int <= '0';          -- set SCL low
+							sda_oen_int <= '0';          -- keep SDA low
+							sda_chk <= '0';              -- don't check SDA output
+					when stop_a =>          -- stop
+							c_state <= stop_b;
+							scl_oen_int <= '0';          -- keep SCL low
+							sda_oen_int <= '0';          -- set SDA low
+							sda_chk <= '0';              -- don't check SDA output
+					when stop_b =>
+							c_state <= stop_c;
+							scl_oen_int <= '1';          -- set SCL high
+							sda_oen_int <= '0';          -- keep SDA low
+							sda_chk <= '0';              -- don't check SDA output
+					when stop_c =>
+							c_state <= stop_d;
+							scl_oen_int <= '1';          -- keep SCL high
+							sda_oen_int <= '0';          -- keep SDA low
+							sda_chk <= '0';              -- don't check SDA output
+					when stop_d =>
+							c_state <= idle;
+							cmd_ack <= '1';
+							scl_oen_int <= '1';          -- keep SCL high
+							sda_oen_int <= '1';          -- set SDA high
+							sda_chk <= '0';              -- don't check SDA output
+					when rd_a =>          -- read
+							c_state <= rd_b;
+							scl_oen_int <= '0';          -- keep SCL low
+							sda_oen_int <= '1';          -- tri-state SDA
+							sda_chk <= '0';              -- don't check SDA output
+					when rd_b =>
+							c_state <= rd_c;
+							scl_oen_int <= '1';          -- set SCL high
+							sda_oen_int <= '1';          -- keep SDA tri-stated
+							sda_chk <= '0';              -- don't check SDA output
+					when rd_c =>
+							c_state <= rd_d;
+							scl_oen_int <= '1';          -- keep SCL high
+							sda_oen_int <= '1';          -- keep SDA tri-stated
+							sda_chk <= '0';              -- don't check SDA output
+					when rd_d =>
+							c_state <= idle;
+							cmd_ack <= '1';
+							scl_oen_int <= '0';          -- set SCL low
+							sda_oen_int <= '1';          -- keep SDA tri-stated
+							sda_chk <= '0';              -- don't check SDA output
+					when wr_a =>          -- write
+							c_state <= wr_b;
+							scl_oen_int <= '0';          -- keep SCL low
+							sda_oen_int <= din;          -- set SDA
+							sda_chk <= '0';              -- don't check SDA output (SCL low)
+					when wr_b =>
+							c_state <= wr_c;
+							scl_oen_int <= '1';          -- set SCL high
+							sda_oen_int <= din;          -- keep SDA
+							sda_chk <= '1';              -- check SDA output
+					when wr_c =>
+							c_state <= wr_d;
+							scl_oen_int <= '1';          -- keep SCL high
+							sda_oen_int <= din;
+							sda_chk <= '1';              -- check SDA output
+					when wr_d =>
+							c_state <= idle;
+							cmd_ack <= '1';
+							scl_oen_int <= '0';          -- set SCL low
+							sda_oen_int <= din;
+							sda_chk <= '0';              -- don't check SDA output (SCL low)
+					when others => NULL;
+				end case;
+			end if;
+		end if;
+	end if;
+end process;
+
+
+-- assign scl and sda output (always gnd)
+scl_o <= '0';
+sda_o <= '0';
+
+end arch;
diff --git a/legacy/TLU_v1e/hdl/i2c/i2c_master_byte_ctrl.vhd b/legacy/TLU_v1e/hdl/i2c/i2c_master_byte_ctrl.vhd
new file mode 100644
index 00000000..f5219574
--- /dev/null
+++ b/legacy/TLU_v1e/hdl/i2c/i2c_master_byte_ctrl.vhd
@@ -0,0 +1,286 @@
+----------------------------------------------------------------------
+-- >>>>>>>>>>>>>>>>>>>>>> COPYRIGHT NOTICE <<<<<<<<<<<<<<<<<<<<<<<<<<<
+----------------------------------------------------------------------
+--///////////////////////////////////////////////////////////////////
+--//                                                             ////
+--//  WISHBONE rev.B2 compliant I2C Master byte-controller        ////
+--//                                                             ////
+--//                                                             ////
+--//  Author: Richard Herveille                                  ////
+--//          richard@asics.ws                                   ////
+--//          www.asics.ws                                       ////
+--//                                                             ////
+--//  Downloaded from: http://www.opencores.org/projects/i2c/    ////
+--//                                                             ////
+--///////////////////////////////////////////////////////////////////
+--//                                                             ////
+--// Copyright (C) 2001 Richard Herveille                        ////
+--//                    richard@asics.ws                         ////
+--//                                                             ////
+--// This source file may be used and distributed without        ////
+--// restriction provided that this copyright statement is not   ////
+--// removed from the file and that any derivative work contains ////
+--// the original copyright notice and the associated disclaimer.////
+--//                                                             ////
+--//     THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY     ////
+--// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED   ////
+--// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS   ////
+--// FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL THE AUTHOR      ////
+--// OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,         ////
+--// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES    ////
+--// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE   ////
+--// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR        ////
+--// BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF  ////
+--// LIABILITY, WHETHER IN  CONTRACT, STRICT LIABILITY, OR TORT  ////
+--// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT  ////
+--// OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE         ////
+--// POSSIBILITY OF SUCH DAMAGE.                                 ////
+--//                                                             ////
+--///////////////////////////////////////////////////////////////////
+-----------------------------------------------------------------------
+-- Copyright (c) 2008 - 2010 by Lattice Semiconductor Corporation                    
+-- --------------------------------------------------------------------                        
+--                                                                                   
+-- Disclaimer:                                                                       
+--                                                                                   
+-- This VHDL or Verilog source code is intended as a design reference                
+-- which illustrates how these types of functions can be implemented.                
+-- It is the user's responsibility to verify their design for                        
+-- consistency and functionality through the use of formal                           
+-- verification methods. Lattice Semiconductor provides no warranty                  
+-- regarding the use or functionality of this code.                                  
+--                                                                                   
+-- --------------------------------------------------------------------              
+--                                                                                   
+-- Lattice Semiconductor Corporation                                                 
+-- 5555 NE Moore Court                                                               
+-- Hillsboro, OR 97214                                                               
+-- U.S.A                                                                             
+--                                                                                   
+-- TEL: 1-800-Lattice (USA and Canada)                                               
+-- 503-268-8001 (other locations)                                                    
+--                                                                                   
+-- web: http://www.latticesemi.com/                                                  
+-- email: techsupport@latticesemi.com                                                
+--                                                                                   
+-- --------------------------------------------------------------------              
+-- Code Revision History :                                                           
+-- --------------------------------------------------------------------              
+-- Ver: | Author |Mod. Date |Changes Made:                                           
+-- V1.0 |K.P.    | 7/09     | Initial ver for VHDL                                       
+-- 			    | converted from LSC ref design RD1046                   
+-- --------------------------------------------------------------------  
+
+
+library ieee;
+use ieee.std_logic_1164.all;
+use ieee.std_logic_arith.all;
+use ieee.std_logic_unsigned.all;
+
+entity i2c_master_byte_ctrl is
+  port (
+        clk      : in  std_logic;						-- master clock
+        rst      : in  std_logic;						-- synchronous active high reset
+        nReset   : in  std_logic;						-- asynchronous active low reset
+        clk_cnt  : in  std_logic_vector(15 downto 0);	-- 4x SCL
+		-- control inputs
+        start    : in  std_logic;
+        stop     : in  std_logic;
+        read     : in  std_logic;
+        write    : in  std_logic;
+        ack_in   : in  std_logic;
+        din      : in  std_logic_vector(7 downto 0);
+		-- status outputs
+        cmd_ack  : out std_logic;
+        ack_out  : out std_logic;						-- i2c clock line input
+        dout     : out std_logic_vector(7 downto 0);
+        i2c_al   : in  std_logic;
+		-- signals for bit_controller
+		core_cmd : out std_logic_vector(3 downto 0);
+		core_txd : out std_logic;
+		core_rxd : in  std_logic;
+		core_ack : in  std_logic
+        );
+end;
+
+architecture arch of i2c_master_byte_ctrl is
+
+constant I2C_CMD_NOP	: std_logic_vector(3 downto 0) := "0000";
+constant I2C_CMD_START	: std_logic_vector(3 downto 0) := "0001";
+constant I2C_CMD_STOP	: std_logic_vector(3 downto 0) := "0010";
+constant I2C_CMD_WRITE	: std_logic_vector(3 downto 0) := "0100";
+constant I2C_CMD_READ	: std_logic_vector(3 downto 0) := "1000";
+
+
+constant ST_IDLE	: std_logic_vector(4 downto 0) := "00000";
+constant ST_START	: std_logic_vector(4 downto 0) := "00001";
+constant ST_READ	: std_logic_vector(4 downto 0) := "00010";
+constant ST_WRITE	: std_logic_vector(4 downto 0) := "00100";
+constant ST_ACK		: std_logic_vector(4 downto 0) := "01000";
+constant ST_STOP	: std_logic_vector(4 downto 0) := "10000";
+
+signal c_state : std_logic_vector(4 downto 0);
+
+
+signal go : std_logic;
+signal dcnt : std_logic_vector(2 downto 0);
+signal cnt_done : std_logic;
+
+signal sr : std_logic_vector(7 downto 0); --8bit shift register
+signal shift, ld : std_logic;
+
+signal cmd_ack_int : std_logic;
+
+
+begin
+
+go <= '1' when (((read = '1') OR (write = '1') OR (stop = '1')) AND (cmd_ack_int = '0')) else '0';
+dout <= sr;
+
+-- generate shift register
+process(clk,nReset)
+begin
+	if (nReset = '0') then
+		sr <= (others => '0');
+	elsif rising_edge(clk) then
+		if (rst = '1') then
+			sr <= (others => '0');
+		elsif (ld = '1') then
+			sr <= din;
+		elsif (shift = '1') then
+			sr <= sr(6 downto 0) & core_rxd;
+		end if;
+	end if;
+end process;
+
+-- generate counter
+process(clk,nReset)
+begin
+	if (nReset = '0') then
+		dcnt <= (others => '0');
+	elsif rising_edge(clk) then
+		if (rst = '1') then
+			dcnt <= (others => '0');
+		elsif (ld = '1') then
+			dcnt <= "111";
+		elsif (shift = '1') then
+			dcnt <= dcnt - '1';
+		end if;
+	end if;
+end process;
+
+cnt_done <= '1' when (dcnt = "000") else '0';
+
+-- state machine
+process(clk,nReset)
+begin
+	if (nReset = '0') then
+		core_cmd <= I2C_CMD_NOP;
+		core_txd <= '0';
+		shift <= '0';
+		ld <= '0';
+		cmd_ack_int <= '0';
+		c_state <= ST_IDLE;
+		ack_out <= '0';
+	elsif rising_edge(clk) then
+		if ((rst = '1') OR (i2c_al = '1')) then
+			core_cmd <= I2C_CMD_NOP;
+			core_txd <= '0';
+			shift <= '0';
+			ld <= '0';
+			cmd_ack_int <= '0';
+			c_state <= ST_IDLE;
+			ack_out <= '0';
+		else
+			-- initially reset all signals
+			core_txd <= sr(7);
+			shift <= '0';
+			ld <= '0';
+			cmd_ack_int <= '0';
+
+			case (c_state) is
+				when ST_IDLE =>
+						if (go = '1') then
+							if (start = '1') then
+								c_state <= ST_START;
+								core_cmd <= I2C_CMD_START;
+							elsif (read = '1') then
+								c_state <= ST_READ;
+								core_cmd <= I2C_CMD_READ;
+							elsif (write = '1') then
+								c_state <= ST_WRITE;
+								core_cmd <= I2C_CMD_WRITE;
+							else
+								c_state <= ST_STOP;
+								core_cmd <= I2C_CMD_STOP;
+							end if;
+							ld <= '1';
+						end if;
+				when ST_START =>
+						if (core_ack = '1') then
+							if (read = '1') then
+								c_state <= ST_READ;
+								core_cmd <= I2C_CMD_READ;
+							else
+								c_state <= ST_WRITE;
+								core_cmd <= I2C_CMD_WRITE;
+							end if;
+							ld <= '1';
+						end if;
+				when ST_WRITE =>
+						if (core_ack = '1') then
+							if (cnt_done = '1') then
+								c_state <= ST_ACK;
+								core_cmd <= I2C_CMD_READ;
+							else
+								c_state <= ST_WRITE;		-- stay in same state
+								core_cmd <= I2C_CMD_WRITE;	-- write next bit
+								shift <= '1';
+							end if;
+						end if;
+				when ST_READ =>
+						if (core_ack = '1') then
+							if (cnt_done = '1') then
+								c_state <= ST_ACK;
+								core_cmd <= I2C_CMD_WRITE;
+							else
+								c_state <= ST_READ;			-- stay in same state
+								core_cmd <= I2C_CMD_READ;	-- read next bit
+								shift <= '1';
+							end if;
+							shift <= '1';
+							core_txd <= ack_in;
+						end if;
+				when ST_ACK =>
+						if (core_ack = '1') then
+							if (stop = '1') then
+								c_state <= ST_STOP;
+								core_cmd <= I2C_CMD_STOP;
+							else
+								c_state <= ST_IDLE;
+								core_cmd <= I2C_CMD_NOP;
+								-- generate command acknowledge signal
+								cmd_ack_int <= '1';
+							end if;
+							-- assign ack_out output to bit_controller_rxd (contains last received bit)
+							ack_out <= core_rxd;
+							core_txd <= '1';
+						else
+							core_txd <= ack_in;
+						end if;
+				when ST_STOP =>
+						if (core_ack = '1') then
+							c_state <= ST_IDLE;
+							core_cmd <= I2C_CMD_NOP;
+							-- generate command acknowledge signal
+							cmd_ack_int <= '1';
+						end if;
+				when others => NULL;
+			end case;
+		end if;
+	end if;
+end process;
+
+cmd_ack <= cmd_ack_int;
+
+end arch;
diff --git a/legacy/TLU_v1e/hdl/i2c/i2c_master_registers.vhd b/legacy/TLU_v1e/hdl/i2c/i2c_master_registers.vhd
new file mode 100644
index 00000000..620e226c
--- /dev/null
+++ b/legacy/TLU_v1e/hdl/i2c/i2c_master_registers.vhd
@@ -0,0 +1,196 @@
+----------------------------------------------------------------------
+-- >>>>>>>>>>>>>>>>>>>>>> COPYRIGHT NOTICE <<<<<<<<<<<<<<<<<<<<<<<<<<<
+----------------------------------------------------------------------
+--///////////////////////////////////////////////////////////////////
+--//                                                             ////
+--//  WISHBONE rev.B2 compliant I2C Master registers             ////
+--//                                                             ////
+--//                                                             ////
+--//  Author: Richard Herveille                                  ////
+--//          richard@asics.ws                                   ////
+--//          www.asics.ws                                       ////
+--//                                                             ////
+--//  Downloaded from: http://www.opencores.org/projects/i2c/    ////
+--//                                                             ////
+--///////////////////////////////////////////////////////////////////
+--//                                                             ////
+--// Copyright (C) 2001 Richard Herveille                        ////
+--//                    richard@asics.ws                         ////
+--//                                                             ////
+--// This source file may be used and distributed without        ////
+--// restriction provided that this copyright statement is not   ////
+--// removed from the file and that any derivative work contains ////
+--// the original copyright notice and the associated disclaimer.////
+--//                                                             ////
+--//     THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY     ////
+--// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED   ////
+--// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS   ////
+--// FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL THE AUTHOR      ////
+--// OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,         ////
+--// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES    ////
+--// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE   ////
+--// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR        ////
+--// BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF  ////
+--// LIABILITY, WHETHER IN  CONTRACT, STRICT LIABILITY, OR TORT  ////
+--// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT  ////
+--// OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE         ////
+--// POSSIBILITY OF SUCH DAMAGE.                                 ////
+--//                                                             ////
+--///////////////////////////////////////////////////////////////////
+-- --------------------------------------------------------------------              
+-- >>>>>>>>>>>>>>>>>>>>>>>>> COPYRIGHT NOTICE <<<<<<<<<<<<<<<<<<<<<<<<<              
+-- --------------------------------------------------------------------              
+-- Copyright (c) 2008 - 2010 by Lattice Semiconductor Corporation                    
+-- --------------------------------------------------------------------                            
+--                                                                                   
+-- Disclaimer:                                                                       
+--                                                                                   
+-- This VHDL or Verilog source code is intended as a design reference                
+-- which illustrates how these types of functions can be implemented.                
+-- It is the user's responsibility to verify their design for                        
+-- consistency and functionality through the use of formal                           
+-- verification methods. Lattice Semiconductor provides no warranty                  
+-- regarding the use or functionality of this code.                                  
+--                                                                                   
+-- --------------------------------------------------------------------              
+--                                                                                   
+-- Lattice Semiconductor Corporation                                                 
+-- 5555 NE Moore Court                                                               
+-- Hillsboro, OR 97214                                                               
+-- U.S.A                                                                             
+--                                                                                   
+-- TEL: 1-800-Lattice (USA and Canada)                                               
+-- 503-268-8001 (other locations)                                                    
+--                                                                                   
+-- web: http://www.latticesemi.com/                                                  
+-- email: techsupport@latticesemi.com                                                
+--                                                                                   
+-- --------------------------------------------------------------------              
+-- Code Revision History :                                                           
+-- --------------------------------------------------------------------              
+-- Ver: | Author |Mod. Date |Changes Made:                                           
+-- V1.0 |K.P.    | 7/09     | Initial ver for VHDL                                       
+-- 			    | converted from LSC ref design RD1046                   
+-- --------------------------------------------------------------------    
+-- --------------------------------------------------------------------
+library ieee;
+use ieee.std_logic_1164.all;
+use ieee.std_logic_arith.all;
+use ieee.std_logic_unsigned.all;
+
+entity i2c_master_registers is
+  port (
+        wb_clk_i : in  std_logic;
+        rst_i    : in  std_logic;
+        wb_rst_i : in  std_logic;
+        wb_dat_i : in  std_logic_vector(7 downto 0);
+        wb_adr_i : in  std_logic_vector(2 downto 0);
+        wb_wacc  : in  std_logic;
+        i2c_al   : in  std_logic;
+        i2c_busy : in  std_logic;
+        done     : in  std_logic;
+        irxack   : in  std_logic;
+        prer     : out std_logic_vector(15 downto 0);	-- clock prescale register
+        ctr      : out std_logic_vector(7 downto 0);	-- control register
+        txr      : out std_logic_vector(7 downto 0);	-- transmit register
+        cr       : out std_logic_vector(7 downto 0);	-- command register
+        sr       : out std_logic_vector(7 downto 0)		-- status register
+        );
+end;
+
+architecture arch of i2c_master_registers is
+
+
+signal ctr_int : std_logic_vector(7 downto 0);
+signal cr_int : std_logic_vector(7 downto 0);
+
+signal al : std_logic;			-- status register arbitration lost bit
+signal rxack : std_logic;		-- received aknowledge from slave
+signal tip : std_logic;			-- transfer in progress
+signal irq_flag : std_logic;	-- interrupt pending flag
+
+begin
+
+-- generate prescale regisres, control registers, and transmit register
+process(wb_clk_i,rst_i)
+begin
+	if (rst_i = '0') then
+		prer <= (others => '1');
+		ctr_int <= (others => '0');
+		txr <= (others => '0');
+	elsif rising_edge(wb_clk_i) then
+		if (wb_rst_i = '1') then
+			prer <= (others => '1');
+			ctr_int <= (others => '0');
+			txr <= (others => '0');
+		elsif (wb_wacc = '1') then
+			case (wb_adr_i) is
+				when "000" => prer(7 downto 0)	<= wb_dat_i;
+				when "001" => prer(15 downto 8)	<= wb_dat_i;
+				when "010" => ctr_int			<= wb_dat_i;
+				when "011" => txr				<= wb_dat_i;
+				when others => NULL;
+			end case;
+		end if;
+	end if;
+end process;
+
+ctr <= ctr_int;
+
+-- generate command register (special case)
+process(wb_clk_i,rst_i)
+begin
+	if (rst_i = '0') then
+		cr_int <= (others => '0');
+	elsif rising_edge(wb_clk_i) then
+		if (wb_rst_i = '1') then
+			cr_int <= (others => '0');
+		elsif (wb_wacc = '1') then
+			if ((ctr_int(7) = '1') AND (wb_adr_i = "100")) then
+				cr_int <= wb_dat_i;
+			end if;
+		else
+			if ((done = '1') OR (i2c_al = '1')) then
+				cr_int(7 downto 4) <= "0000";	-- clear command b
+			end if;							-- or when aribitr
+			cr_int(2 downto 1) <= "00";			-- reserved bits
+			cr_int(0) <= '0';					-- clear IRQ_ACK b
+		end if;
+	end if;
+end process;
+
+cr <= cr_int;
+
+-- generate status register block + interrupt request signal
+-- each output will be assigned to corresponding sr register locations on top level
+process(wb_clk_i,rst_i)
+begin
+	if (rst_i = '0') then
+		al 			<= '0';
+		rxack 		<= '0';
+		tip 		<= '0';
+		irq_flag	<= '0';
+	elsif rising_edge(wb_clk_i) then
+		if (wb_rst_i = '1') then
+			al 			<= '0';
+			rxack 		<= '0';
+			tip 		<= '0';
+			irq_flag	<= '0';
+		else
+			al			<= i2c_al OR (al AND NOT(cr_int(7)));
+			rxack		<= irxack;
+			tip			<= (cr_int(5) OR cr_int(4));
+			irq_flag	<= (done OR i2c_al OR irq_flag) AND NOT(cr_int(0)); -- interrupt request flag is always generated
+		end if;
+	end if;
+end process;
+
+sr(7)	 		<= rxack;
+sr(6)			<= i2c_busy;
+sr(5)			<= al;
+sr(4 downto 2)	<= "000"; -- reserved
+sr(1)			<= tip;
+sr(0)			<= irq_flag;
+
+
+end arch;
diff --git a/legacy/TLU_v1e/hdl/i2c/i2c_master_rtl.vhd b/legacy/TLU_v1e/hdl/i2c/i2c_master_rtl.vhd
new file mode 100644
index 00000000..6d0bb973
--- /dev/null
+++ b/legacy/TLU_v1e/hdl/i2c/i2c_master_rtl.vhd
@@ -0,0 +1,97 @@
+--=============================================================================
+--! @file i2c_master_rtl.vhd
+--=============================================================================
+--
+-------------------------------------------------------------------------------
+-- --
+-- University of Bristol, High Energy Physics Group.
+-- --
+------------------------------------------------------------------------------- --
+-- VHDL Architecture work.i2c_master.rtl
+--
+--! @brief Wraps the Wishbone I2C master in a wrapper where the IPBus signals\n
+--! are bundled together in a record\n
+--
+--! @author David Cussans , David.Cussans@bristol.ac.uk
+--
+--! @date 17:22:12 11/30/12
+--
+--! @version v0.1
+--
+--! @details
+--!
+--!
+--! <b>Dependencies:</b>\n
+--!
+--! <b>References:</b>\n
+--!
+--! <b>Modified by:</b>\n
+--! Author: 
+-------------------------------------------------------------------------------
+--! \n\n<b>Last changes:</b>\n
+-------------------------------------------------------------------------------
+--! @todo <next thing to do> \n
+--! <another thing to do> \n
+--
+--------------------------------------------------------------------------------
+-- 
+-- Created using using Mentor Graphics HDL Designer(TM) 2010.3 (Build 21)
+--
+LIBRARY ieee;
+USE ieee.std_logic_1164.all;
+USE ieee.numeric_std.all;
+
+USE work.ipbus.all;
+
+ENTITY i2c_master IS
+   PORT( 
+      i2c_scl_i     : IN     std_logic;
+      i2c_sda_i     : IN     std_logic;
+      ipbus_clk_i   : IN     std_logic;
+      ipbus_i       : IN     ipb_wbus;    -- Signals from IPBus core to slave
+      ipbus_reset_i : IN     std_logic;
+      i2c_scl_enb_o : OUT    std_logic;
+      i2c_sda_enb_o : OUT    std_logic;
+      ipbus_o       : OUT    ipb_rbus     -- signals from slave to IPBus core
+   );
+
+-- Declarations
+
+END ENTITY i2c_master ;
+
+--
+ARCHITECTURE rtl OF i2c_master IS
+  
+  --signal s_i2c_scl, s_i2c_scl_o, s_i2c_scl_enb, s_i2c_sda, s_i2c_sda_enb : std_logic ;
+  
+BEGIN
+  
+  --i2c_scl_b <= s_i2c_scl when (s_i2c_scl_enb = '0') else 'Z';
+  --i2c_sda_b <= s_i2c_sda when (s_i2c_sda_enb = '0') else 'Z';
+
+  i2c_interface: entity work.i2c_master_top port map(
+                wb_clk_i => ipbus_clk_i,
+                wb_rst_i => ipbus_reset_i,
+                arst_i => '1',
+                wb_adr_i => ipbus_i.ipb_addr(2 downto 0),
+                wb_dat_i => ipbus_i.ipb_wdata(7 downto 0),
+                wb_dat_o => ipbus_o.ipb_rdata(7 downto 0),
+                wb_we_i => ipbus_i.ipb_write,
+                wb_stb_i => ipbus_i.ipb_strobe,
+                wb_cyc_i => '1',
+                wb_ack_o => ipbus_o.ipb_ack,
+                wb_inta_o => open,
+                scl_pad_i => i2c_scl_i,
+                scl_pad_o => open,
+                scl_padoen_o => i2c_scl_enb_o,
+                sda_pad_i => i2c_sda_i,
+                sda_pad_o => open,
+                sda_padoen_o => i2c_sda_enb_o
+        );
+        
+  
+  ipbus_o.ipb_rdata(31 downto 8) <= ( others => '0');
+  ipbus_o.ipb_err <= '0'; -- never return an error.
+  
+END ARCHITECTURE rtl;
+
diff --git a/legacy/TLU_v1e/hdl/i2c/i2c_master_top.vhd b/legacy/TLU_v1e/hdl/i2c/i2c_master_top.vhd
new file mode 100644
index 00000000..a6f0aabb
--- /dev/null
+++ b/legacy/TLU_v1e/hdl/i2c/i2c_master_top.vhd
@@ -0,0 +1,344 @@
+----------------------------------------------------------------------
+-- >>>>>>>>>>>>>>>>>>>>>> COPYRIGHT NOTICE <<<<<<<<<<<<<<<<<<<<<<<<<<<
+----------------------------------------------------------------------
+--///////////////////////////////////////////////////////////////////
+--//                                                             ////
+--//  WISHBONE rev.B2 compliant I2C Master bit-controller        ////
+--//                                                             ////
+--//                                                             ////
+--//  Author: Richard Herveille                                  ////
+--//          richard@asics.ws                                   ////
+--//          www.asics.ws                                       ////
+--//                                                             ////
+--//  Downloaded from: http://www.opencores.org/projects/i2c/    ////
+--//                                                             ////
+--///////////////////////////////////////////////////////////////////
+--//                                                             ////
+--// Copyright (C) 2001 Richard Herveille                        ////
+--//                    richard@asics.ws                         ////
+--//                                                             ////
+--// This source file may be used and distributed without        ////
+--// restriction provided that this copyright statement is not   ////
+--// removed from the file and that any derivative work contains ////
+--// the original copyright notice and the associated disclaimer.////
+--//                                                             ////
+--//     THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY     ////
+--// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED   ////
+--// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS   ////
+--// FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL THE AUTHOR      ////
+--// OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,         ////
+--// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES    ////
+--// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE   ////
+--// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR        ////
+--// BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF  ////
+--// LIABILITY, WHETHER IN  CONTRACT, STRICT LIABILITY, OR TORT  ////
+--// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT  ////
+--// OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE         ////
+--// POSSIBILITY OF SUCH DAMAGE.                                 ////
+--//                                                             ////
+--///////////////////////////////////////////////////////////////////
+-- --------------------------------------------------------------------              
+-- >>>>>>>>>>>>>>>>>>>>>>>>> COPYRIGHT NOTICE <<<<<<<<<<<<<<<<<<<<<<<<<              
+-- --------------------------------------------------------------------              
+-- Copyright (c) 2008 - 2010 by Lattice Semiconductor Corporation                    
+-- --------------------------------------------------------------------                            
+--                                                                                   
+-- Disclaimer:                                                                       
+--                                                                                   
+-- This VHDL or Verilog source code is intended as a design reference                
+-- which illustrates how these types of functions can be implemented.                
+-- It is the user's responsibility to verify their design for                        
+-- consistency and functionality through the use of formal                           
+-- verification methods. Lattice Semiconductor provides no warranty                  
+-- regarding the use or functionality of this code.                                  
+--                                                                                   
+-- --------------------------------------------------------------------              
+--                                                                                   
+-- Lattice Semiconductor Corporation                                                 
+-- 5555 NE Moore Court                                                               
+-- Hillsboro, OR 97214                                                               
+-- U.S.A                                                                             
+--                                                                                   
+-- TEL: 1-800-Lattice (USA and Canada)                                               
+-- 503-268-8001 (other locations)                                                    
+--                                                                                   
+-- web: http://www.latticesemi.com/                                                  
+-- email: techsupport@latticesemi.com                                                
+--                                                                                   
+-- --------------------------------------------------------------------              
+-- Code Revision History :                                                           
+-- --------------------------------------------------------------------              
+-- Ver: | Author |Mod. Date |Changes Made:                                           
+-- V1.0 |K.P.    | 7/09     | Initial ver for VHDL                                       
+-- 			    | converted from LSC ref design RD1046                   
+-------------------------------------------------------------------------------
+-- Changes at University of bristol:
+-- V1.0A|D.G.C   | 5/11     | Changed name and ports to fit OC original
+-- --------------------------------------------------------------------    
+
+library ieee;
+use ieee.std_logic_1164.all;
+use ieee.std_logic_arith.all;
+use ieee.std_logic_unsigned.all;
+
+entity i2c_master_top is
+  generic (
+		ARST_LVL : integer := 0
+		);
+  port (
+        wb_clk_i : in  std_logic;
+        wb_rst_i : in  std_logic;
+        arst_i   : in  std_logic;
+        wb_adr_i : in  std_logic_vector(2 downto 0);
+        wb_dat_i : in  std_logic_vector(7 downto 0);
+        wb_dat_o : out std_logic_vector(7 downto 0);
+        wb_we_i  : in  std_logic;
+        wb_stb_i : in  std_logic;
+        wb_cyc_i : in  std_logic;
+        wb_ack_o : out std_logic;
+        wb_inta_o: out std_logic;
+        scl_pad_i: in std_logic;
+        scl_pad_o: out std_logic;
+        scl_padoen_o: out std_logic;
+        sda_pad_i: in std_logic;
+        sda_pad_o: out std_logic;
+        sda_padoen_o: out std_logic
+--        scl      : inout std_logic;
+--        sda      : inout std_logic
+        );
+end;
+
+architecture arch of i2c_master_top is
+
+component i2c_master_bit_ctrl
+  port (
+        clk      : in  std_logic;
+        rst      : in  std_logic;
+        nReset   : in  std_logic;
+        clk_cnt  : in  std_logic_vector(15 downto 0);	-- clock prescale value
+        ena      : in  std_logic;						-- core enable signal
+        cmd      : in  std_logic_vector(3 downto 0);
+        cmd_ack  : out std_logic;						-- command complete acknowledge
+        busy     : out std_logic;						-- i2c bus busy
+        al       : out std_logic;						-- i2c bus arbitration lost
+        din      : in  std_logic;
+        dout     : out std_logic;
+        scl_i    : in  std_logic;						-- i2c clock line input
+        scl_o    : out std_logic;						-- i2c clock line output
+        scl_oen  : out std_logic;						-- i2c clock line output enable (active low)
+        sda_i    : in  std_logic;						-- i2c data line input
+        sda_o    : out std_logic;						-- i2c data line output
+        sda_oen  : out std_logic						-- i2c data line output enable (active low)
+        );
+end component;
+
+component i2c_master_byte_ctrl
+  port (
+        clk      : in  std_logic;						-- master clock
+        rst      : in  std_logic;						-- synchronous active high reset
+        nReset   : in  std_logic;						-- asynchronous active low reset
+        clk_cnt  : in  std_logic_vector(15 downto 0);	-- 4x SCL
+		-- control inputs
+        start    : in  std_logic;
+        stop     : in  std_logic;
+        read     : in  std_logic;
+        write    : in  std_logic;
+        ack_in   : in  std_logic;
+        din      : in  std_logic_vector(7 downto 0);
+		-- status outputs
+        cmd_ack  : out std_logic;
+        ack_out  : out std_logic;						-- i2c clock line input
+        dout     : out std_logic_vector(7 downto 0);
+        i2c_al   : in  std_logic;
+		-- signals for bit_controller
+		core_cmd : out std_logic_vector(3 downto 0);
+		core_txd : out std_logic;
+		core_rxd : in  std_logic;
+		core_ack : in  std_logic
+        );
+end component;
+
+component i2c_master_registers
+  port (
+        wb_clk_i : in  std_logic;
+        rst_i    : in  std_logic;
+        wb_rst_i : in  std_logic;
+        wb_dat_i : in  std_logic_vector(7 downto 0);
+        wb_adr_i : in  std_logic_vector(2 downto 0);
+        wb_wacc  : in  std_logic;
+        i2c_al   : in  std_logic;
+        i2c_busy : in  std_logic;
+        done     : in  std_logic;
+        irxack   : in  std_logic;
+        prer     : out std_logic_vector(15 downto 0);	-- clock prescale register
+        ctr      : out std_logic_vector(7 downto 0);	-- control register
+        txr      : out std_logic_vector(7 downto 0);	-- transmit register
+        cr       : out std_logic_vector(7 downto 0);	-- command register
+        sr       : out std_logic_vector(7 downto 0)		-- status register
+        );
+end component;
+
+
+signal prer : std_logic_vector(15 downto 0);
+signal ctr : std_logic_vector(7 downto 0);
+signal txr : std_logic_vector(7 downto 0);
+signal rxr : std_logic_vector(7 downto 0);
+signal cr : std_logic_vector(7 downto 0);
+signal sr : std_logic_vector(7 downto 0);
+
+signal done : std_logic;
+signal core_en : std_logic;
+signal ien : std_logic;
+signal irxack : std_logic;
+signal irq_flag : std_logic;
+signal i2c_busy : std_logic;
+signal i2c_al : std_logic;
+
+signal core_cmd : std_logic_vector(3 downto 0);
+signal core_txd : std_logic;
+signal core_ack, core_rxd : std_logic;
+
+-- Don't need these signals, since passing them through
+-- component interface
+--signal scl_pad_i : std_logic;
+--signal scl_pad_o : std_logic;
+--signal scl_padoen_o : std_logic;
+--
+--signal sda_pad_i : std_logic;
+--signal sda_pad_o : std_logic;
+--signal sda_padoen_o : std_logic;
+
+signal rst_i : std_logic;
+
+signal sta : std_logic;
+signal sto : std_logic;
+signal rd : std_logic;
+signal wr : std_logic;
+signal ack : std_logic;
+signal iack : std_logic;
+
+signal wb_ack_o_int : std_logic;
+
+signal wb_wacc : std_logic;
+signal acki : std_logic;
+
+begin
+
+  -- Don't need to copy these signal - passing through
+  -- component interface
+--scl_pad_i <= scl;
+--sda_pad_i <= sda;
+
+rst_i <= arst_i when (ARST_LVL = 0) else NOT(arst_i);
+
+wb_wacc <= wb_cyc_i AND wb_stb_i AND wb_we_i;
+
+sta <= cr(7);
+sto <= cr(6);
+rd <= cr(5);
+wr <= cr(4);
+ack <= cr(3);
+acki <= cr(0);
+
+core_en <= ctr(7);
+ien <= ctr(6);
+
+process(wb_clk_i)
+begin
+	if rising_edge(wb_clk_i) then
+		wb_ack_o_int <= wb_cyc_i AND wb_stb_i AND NOT(wb_ack_o_int);
+	end if;
+end process;
+
+wb_ack_o <= wb_ack_o_int;
+
+process(wb_clk_i)
+begin
+	if rising_edge(wb_clk_i) then
+		case (wb_adr_i) is
+			when "000" => wb_dat_o <= prer(7 downto 0);
+			when "001" => wb_dat_o <= prer(15 downto 8);
+			when "010" => wb_dat_o <= ctr;
+			when "011" => wb_dat_o <= rxr;
+			when "100" => wb_dat_o <= sr;
+			when "101" => wb_dat_o <= txr;
+			when "110" => wb_dat_o <= cr;
+			when "111" => wb_dat_o <= "00000000";
+			when others => NULL;
+		end case;
+	end if;
+end process;
+
+process(wb_clk_i,rst_i)
+begin
+	if (rst_i = '0') then
+		wb_inta_o <= '0';
+	elsif rising_edge(wb_clk_i) then
+		wb_inta_o <= sr(0) AND ien;
+	end if;
+end process;
+
+
+
+byte_controller: i2c_master_byte_ctrl port map(
+	clk 		=> wb_clk_i,
+	rst			=> wb_rst_i,
+	nReset		=> rst_i,
+	clk_cnt		=> prer,
+	start		=> sta,
+	stop		=> sto,
+	read		=> rd,
+	write		=> wr,
+	ack_in		=> ack,
+	din			=> txr,
+	cmd_ack		=> done,
+	ack_out		=> irxack,
+	dout		=> rxr,
+	i2c_al		=> i2c_al,
+	core_cmd	=> core_cmd,
+	core_ack	=> core_ack,
+	core_txd	=> core_txd,
+	core_rxd	=> core_rxd);
+
+bit_controller: i2c_master_bit_ctrl port map(
+	clk			=> wb_clk_i,
+	rst			=> wb_rst_i,
+	nReset		=> rst_i,
+	ena			=> core_en,
+	clk_cnt		=> prer,
+	cmd			=> core_cmd,
+	cmd_ack		=> core_ack,
+	busy		=> i2c_busy,
+	al			=> i2c_al,
+	din			=> core_txd,
+	dout		=> core_rxd,
+	scl_i		=> scl_pad_i,
+	scl_o		=> scl_pad_o,
+	scl_oen		=> scl_padoen_o,
+	sda_i		=> sda_pad_i,
+	sda_o		=> sda_pad_o,
+	sda_oen		=> sda_padoen_o);
+
+registers: i2c_master_registers port map(
+	wb_clk_i	=> wb_clk_i,
+	rst_i		=> rst_i,
+	wb_rst_i	=> wb_rst_i,
+	wb_dat_i	=> wb_dat_i,
+	wb_wacc		=> wb_wacc,
+	wb_adr_i	=> wb_adr_i,
+	i2c_al		=> i2c_al,
+	i2c_busy	=> i2c_busy,
+	done		=> done,
+	irxack		=> irxack,
+	prer		=> prer,
+	ctr			=> ctr,
+	txr			=> txr,
+	cr			=> cr,
+	sr			=> sr);
+
+
+-- edited from Lattice original to pass uni-directional signals
+--scl <= scl_pad_o when (scl_padoen_o = '0') else 'Z';
+--sda <= sda_pad_o when (sda_padoen_o = '0') else 'Z';
+
+end arch;
diff --git a/legacy/TLU_v1e/hdl/ipbus_addr_decode.vhd b/legacy/TLU_v1e/hdl/ipbus_addr_decode.vhd
new file mode 100644
index 00000000..dc630e87
--- /dev/null
+++ b/legacy/TLU_v1e/hdl/ipbus_addr_decode.vhd
@@ -0,0 +1,50 @@
+-- Address decode logic for ipbus fabric
+--
+-- This file has been AUTOGENERATED from the address table - do not hand edit
+--
+-- We assume the synthesis tool is clever enough to recognise exclusive conditions
+-- in the if statement.
+--
+-- Dave Newbold, February 2011
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.all;
+use ieee.numeric_std.all;
+use work.ipbus.all;
+
+package ipbus_addr_decode is
+
+  function ipbus_addr_sel(signal addr : in std_logic_vector(31 downto 0)) return integer;
+
+end ipbus_addr_decode;
+
+package body ipbus_addr_decode is
+
+  function ipbus_addr_sel(signal addr : in std_logic_vector(31 downto 0)) return integer is
+    variable sel : integer;
+  begin
+		if    std_match(addr, "-----------------------0001-----") then
+			sel := 0; -- DUTInterfaces / base 00000020 / mask 0000001f
+		elsif std_match(addr, "-----------------------0010-----") then
+			sel := 1; -- triggerInputs / base 00000040 / mask 0000001f
+		elsif std_match(addr, "-----------------------0011-----") then
+			sel := 2; -- triggerLogic / base 00000060 / mask 0000001f
+		elsif std_match(addr, "-----------------------0100-----") then
+			sel := 3; -- eventBuffer / base 00000080 / mask 0000001f
+		elsif std_match(addr, "-----------------------0101-----") then
+			sel := 4; -- logic_clocks / base 000000a0 / mask 0000001f
+		elsif std_match(addr, "-----------------------0110-----") then
+			sel := 5; -- i2c_master / base 000000c0 / mask 00000007
+		elsif std_match(addr, "-----------------------1010-----") then
+                        sel := 6; -- Event_Formatter / base 00000140 / mask 0000001f
+                elsif std_match(addr, "-----------------------1011-----") then
+                        sel := 7; -- TPix3_iface   / base 00000160 / mask 0000001f
+		elsif std_match(addr, "-----------------------0000-----") then
+			sel := 8; -- version / base 00000000 / mask 00000000
+		else
+			sel := 99;
+		end if;
+		return sel;
+	end ipbus_addr_sel;
+ 
+end ipbus_addr_decode;
diff --git a/legacy/TLU_v1e/hdl/ipbus_decode_ipbus_example.vhd b/legacy/TLU_v1e/hdl/ipbus_decode_ipbus_example.vhd
new file mode 100644
index 00000000..a315ed03
--- /dev/null
+++ b/legacy/TLU_v1e/hdl/ipbus_decode_ipbus_example.vhd
@@ -0,0 +1,69 @@
+-- Address decode logic for ipbus fabric
+-- 
+-- 
+-- We assume the synthesis tool is clever enough to recognise exclusive conditions
+-- in the if statement.
+-- 
+-- Dave Newbold, February 2011
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.all;
+use ieee.numeric_std.all;
+
+package ipbus_decode_ipbus_example is
+
+  constant IPBUS_SEL_WIDTH: positive := 5; -- Should be enough for now?
+  subtype ipbus_sel_t is std_logic_vector(IPBUS_SEL_WIDTH - 1 downto 0);
+  function ipbus_sel_ipbus_example(addr : in std_logic_vector(31 downto 0)) return ipbus_sel_t;
+
+-- START automatically  generated VHDL the Fri Oct  7 12:10:31 2016 
+  constant N_SLV_CTRL_REG: integer := 0; --for tests
+  constant N_SLV_REG: integer := 1; -- for tests
+  constant N_SLV_I2C_0: integer := 2; --I2C core for the TLU
+  constant N_SLV_DUT: integer :=3;
+  constant N_SLV_SHUT: integer :=4;
+  constant N_SLV_EVBUF: integer :=5;
+  constant N_SLV_EVFMT: integer :=6;
+  constant N_SLV_TRGIN: integer :=7;
+  constant N_SLV_TRGLGC: integer :=8;
+  constant N_SLV_LGCCLK: integer :=9;
+    
+  constant N_SLAVES: integer := 10; --Total number of slaves
+-- END automatically generated VHDL
+  --constant N_I2C_CORES: integer := 3; --How many I2C cores
+    
+end ipbus_decode_ipbus_example;
+
+package body ipbus_decode_ipbus_example is
+
+  function ipbus_sel_ipbus_example(addr : in std_logic_vector(31 downto 0)) return ipbus_sel_t is
+    variable sel: ipbus_sel_t;
+  begin
+
+-- START automatically  generated VHDL the Fri Oct  7 12:10:31 2016 
+    if    std_match(addr, "-----------------000----------0-") then
+      sel := ipbus_sel_t(to_unsigned(N_SLV_CTRL_REG, IPBUS_SEL_WIDTH)); -- ctrl_reg / base 0x00000000 / mask 0x00003002
+    elsif std_match(addr, "-----------------000----------1-") then
+      sel := ipbus_sel_t(to_unsigned(N_SLV_REG, IPBUS_SEL_WIDTH)); -- reg / base 0x00000002 / mask 0x00003002
+    --elsif std_match(addr, "-----------------001------------") then
+      --sel := ipbus_sel_t(to_unsigned(N_SLV_RAM, IPBUS_SEL_WIDTH)); -- ram / base 0x00001000 / mask 0x00003000
+    --elsif std_match(addr, "-----------------010----------0-") then
+     -- sel := ipbus_sel_t(to_unsigned(N_SLV_PRAM, IPBUS_SEL_WIDTH)); -- pram / base 0x00002000 / mask 0x00003002
+    elsif std_match(addr, "-----------------011------------") then
+      sel := ipbus_sel_t(to_unsigned(N_SLV_I2C_0, IPBUS_SEL_WIDTH)); -- i2c / base 0x00003000 / mask 0x00003002
+    elsif std_match(addr, "-----------------100------------") then
+      sel := ipbus_sel_t(to_unsigned(N_SLV_DUT, IPBUS_SEL_WIDTH)); -- i2c / base 0x00004000 / mask 0x00003002
+    elsif std_match(addr, "-----------------101------------") then
+      sel := ipbus_sel_t(to_unsigned(N_SLV_TRGIN, IPBUS_SEL_WIDTH)); -- i2c / base 0x00005000 / mask 0x00003002
+-- END automatically generated VHDL
+
+    else
+        sel := ipbus_sel_t(to_unsigned(N_SLAVES, IPBUS_SEL_WIDTH));
+    end if;
+
+    return sel;
+
+  end function ipbus_sel_ipbus_example;
+
+end ipbus_decode_ipbus_example;
+
diff --git a/legacy/TLU_v1e/hdl/ipbus_decode_tlu.vhd b/legacy/TLU_v1e/hdl/ipbus_decode_tlu.vhd
new file mode 100644
index 00000000..114da401
--- /dev/null
+++ b/legacy/TLU_v1e/hdl/ipbus_decode_tlu.vhd
@@ -0,0 +1,73 @@
+-- Address decode logic for ipbus fabric
+-- 
+-- 
+-- 
+-- Paolo Baesso, February 2017
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.all;
+use ieee.numeric_std.all;
+
+package ipbus_decode_tlu is
+
+  constant IPBUS_SEL_WIDTH: positive := 5; -- Should be enough for now?
+  subtype ipbus_sel_t is std_logic_vector(IPBUS_SEL_WIDTH - 1 downto 0);
+  function ipbus_sel_ipbus_example(addr : in std_logic_vector(31 downto 0)) return ipbus_sel_t;
+
+-- START automatically  generated VHDL the Fri Oct  7 12:10:31 2016 
+  constant N_SLV_CTRL_REG: integer := 0; --for tests
+  constant N_SLV_REG: integer := 1; -- for tests
+  constant N_SLV_I2C_0: integer := 2; --I2C core for the TLU
+  constant N_SLV_DUT: integer :=3;
+  constant N_SLV_SHUT: integer :=4;
+  constant N_SLV_EVBUF: integer :=5;
+  constant N_SLV_EVFMT: integer :=6;
+  constant N_SLV_TRGIN: integer :=7;
+  constant N_SLV_TRGLGC: integer :=8;
+  constant N_SLV_LGCCLK: integer :=9;
+    
+  constant N_SLAVES: integer := 10; --Total number of IPBus slaves
+-- END automatically generated VHDL
+  --constant N_I2C_CORES: integer := 3; --How many I2C cores
+    
+end ipbus_decode_tlu;
+
+package body ipbus_decode_tlu is
+
+  function ipbus_sel_ipbus_example(addr : in std_logic_vector(31 downto 0)) return ipbus_sel_t is
+    variable sel: ipbus_sel_t;
+  begin
+
+-- START automatically  generated VHDL the Fri Oct  7 12:10:31 2016 
+    if    std_match(addr, "----------------0000----------0-") then
+        sel := ipbus_sel_t(to_unsigned(N_SLV_CTRL_REG, IPBUS_SEL_WIDTH)); -- ctrl_reg / base 0x00000000 / mask 0x00003002
+    elsif std_match(addr, "----------------0000----------1-") then
+        sel := ipbus_sel_t(to_unsigned(N_SLV_REG, IPBUS_SEL_WIDTH)); -- reg / base 0x00000002 / mask 0x00003002
+    elsif std_match(addr, "----------------0001------------") then
+        sel := ipbus_sel_t(to_unsigned(N_SLV_DUT, IPBUS_SEL_WIDTH)); -- ram / base 0x00001000 / mask 0x00003000
+    elsif std_match(addr, "----------------0010----------0-") then
+        sel := ipbus_sel_t(to_unsigned(N_SLV_SHUT, IPBUS_SEL_WIDTH)); -- shutter / base 0x00002000 / mask 0x00003002
+    elsif std_match(addr, "----------------0011------------") then
+        sel := ipbus_sel_t(to_unsigned(N_SLV_I2C_0, IPBUS_SEL_WIDTH)); -- i2c / base 0x00003000 / mask 0x00003002
+    elsif std_match(addr, "----------------0100------------") then
+        sel := ipbus_sel_t(to_unsigned(N_SLV_EVBUF, IPBUS_SEL_WIDTH)); -- event buffer / base 0x00004000 / mask 0x00003002
+    elsif std_match(addr, "----------------0101------------") then
+        sel := ipbus_sel_t(to_unsigned(N_SLV_EVFMT, IPBUS_SEL_WIDTH)); -- event formatter / base 0x00005000 / mask 0x00003002
+    elsif std_match(addr, "----------------0110------------") then
+        sel := ipbus_sel_t(to_unsigned(N_SLV_TRGIN, IPBUS_SEL_WIDTH)); -- trigger inputs / base 0x00006000 / mask 0x00003002
+    elsif std_match(addr, "----------------0111------------") then
+        sel := ipbus_sel_t(to_unsigned(N_SLV_TRGLGC, IPBUS_SEL_WIDTH)); -- trigger logic / base 0x00007000 / mask 0x00003002
+    elsif std_match(addr, "----------------1000------------") then
+        sel := ipbus_sel_t(to_unsigned(N_SLV_LGCCLK, IPBUS_SEL_WIDTH)); -- logic clocks / base 0x00008000 / mask 0x00003002
+-- END automatically generated VHDL
+ 
+    else
+        sel := ipbus_sel_t(to_unsigned(N_SLAVES, IPBUS_SEL_WIDTH));
+    end if;
+
+    return sel;
+
+  end function ipbus_sel_ipbus_example;
+
+end ipbus_decode_tlu;
+
diff --git a/legacy/TLU_v1e/hdl/ipbus_example.vhd b/legacy/TLU_v1e/hdl/ipbus_example.vhd
new file mode 100644
index 00000000..5cc5f12c
--- /dev/null
+++ b/legacy/TLU_v1e/hdl/ipbus_example.vhd
@@ -0,0 +1,174 @@
+-- ipbus_example
+--
+-- selection of different IPBus slaves without actual function,
+-- just for performance evaluation of the IPbus/uhal system
+--
+-- Kristian Harder, March 2014
+-- based on code by Dave Newbold, February 2011
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+use work.ipbus.all;
+use work.ipbus_reg_types.all;
+use work.ipbus_decode_ipbus_example.all;
+
+entity ipbus_example is
+	port(
+		ipb_clk: in std_logic;
+		ipb_rst: in std_logic;
+		ipb_in: in ipb_wbus;
+		ipb_out: out ipb_rbus;
+		nuke: out std_logic;
+		soft_rst: out std_logic;
+		--i2c_scl_b: INOUT  std_logic;
+        --i2c_sda_b: INOUT  std_logic;
+        
+        --i2c_sda_i: IN std_logic;
+        --i2c_scl_i: IN std_logic;
+        --i2c_scl_enb_o: OUT std_logic;
+        --i2c_sda_enb_o: OUT std_logic;
+                
+        i2c_sda_i: IN std_logic_vector(N_I2C_CORES - 1 downto 0);
+        i2c_scl_i: IN std_logic_vector(N_I2C_CORES - 1 downto 0);
+        i2c_scl_enb_o: OUT std_logic_vector(N_I2C_CORES - 1 downto 0);
+        i2c_sda_enb_o: OUT std_logic_vector(N_I2C_CORES - 1 downto 0);
+        userled: out std_logic
+	);
+
+end ipbus_example;
+
+architecture rtl of ipbus_example is
+
+	signal ipbw: ipb_wbus_array(N_SLAVES - 1 downto 0);
+	signal ipbr: ipb_rbus_array(N_SLAVES - 1 downto 0);
+	signal ctrl, stat: ipb_reg_v(0 downto 0);
+    --SIGNAL s_i2c_scl_enb         : std_logic;
+    --SIGNAL s_i2c_sda_enb         : std_logic;
+           
+    -->P
+       COMPONENT i2c_master
+    PORT (
+       i2c_scl_i     : IN     std_logic;
+       i2c_sda_i     : IN     std_logic;
+       ipbus_clk_i   : IN     std_logic;
+       ipbus_i       : IN     ipb_wbus;
+       ipbus_reset_i : IN     std_logic;
+       i2c_scl_enb_o : OUT    std_logic;
+       i2c_sda_enb_o : OUT    std_logic;
+       ipbus_o       : OUT    ipb_rbus
+    );
+    END COMPONENT i2c_master;
+    FOR ALL : i2c_master USE ENTITY work.i2c_master;--<P
+begin
+
+-- ipbus address decode
+    --i2c_scl_b <= '0' when (s_i2c_scl_enb = '0') else 'Z';
+    --i2c_sda_b <= '0' when (s_i2c_sda_enb = '0') else 'Z';
+		
+	fabric: entity work.ipbus_fabric_sel
+    generic map(
+    	NSLV => N_SLAVES,
+    	SEL_WIDTH => IPBUS_SEL_WIDTH)
+    port map(
+      ipb_in => ipb_in,
+      ipb_out => ipb_out,
+      sel => ipbus_sel_ipbus_example(ipb_in.ipb_addr),
+      ipb_to_slaves => ipbw,
+      ipb_from_slaves => ipbr
+    );
+
+-- Slave 0: id / rst reg
+
+	slave0: entity work.ipbus_ctrlreg_v
+		port map(
+			clk => ipb_clk,
+			reset => ipb_rst,
+			ipbus_in => ipbw(N_SLV_CTRL_REG),
+			ipbus_out => ipbr(N_SLV_CTRL_REG),
+			d => stat,
+			q => ctrl
+		);
+		
+		stat(0) <= X"abcdfedc";
+		soft_rst <= ctrl(0)(0);
+		nuke <= ctrl(0)(1);
+
+-- Slave 1: register
+
+	slave1: entity work.ipbus_reg_v
+		port map(
+			clk => ipb_clk,
+			reset => ipb_rst,
+			ipbus_in => ipbw(N_SLV_REG),
+			ipbus_out => ipbr(N_SLV_REG),
+			q => open
+		);
+
+-- Slave 2: 1kword RAM
+
+	slave4: entity work.ipbus_ram
+		generic map(ADDR_WIDTH => 10)
+		port map(
+			clk => ipb_clk,
+			reset => ipb_rst,
+			ipbus_in => ipbw(N_SLV_RAM),
+			ipbus_out => ipbr(N_SLV_RAM)
+		);
+	
+-- Slave 3: peephole RAM
+
+	slave5: entity work.ipbus_peephole_ram
+		generic map(ADDR_WIDTH => 10)
+		port map(
+			clk => ipb_clk,
+			reset => ipb_rst,
+			ipbus_in => ipbw(N_SLV_PRAM),
+			ipbus_out => ipbr(N_SLV_PRAM)
+		);
+--    slave6 : i2c_master
+--    PORT MAP (
+--         i2c_scl_i     => i2c_scl_b,
+--         i2c_sda_i     => i2c_sda_b,
+--         ipbus_clk_i   => ipb_clk,
+--         ipbus_i       => ipbw(N_SLV_I2C),
+--         ipbus_reset_i => ipb_rst,
+--         i2c_scl_enb_o => s_i2c_scl_enb,
+--         i2c_sda_enb_o => s_i2c_sda_enb,
+--         ipbus_o       => ipbr(N_SLV_I2C)
+--    );
+
+    -- Instantiate a I2C core for the EEPROM
+    slave6 : i2c_master
+    PORT MAP (
+         i2c_scl_i     => i2c_scl_i(0),
+         i2c_sda_i     => i2c_sda_i(0),
+         ipbus_clk_i   => ipb_clk,
+         ipbus_i       => ipbw(N_SLV_I2C_0),
+         ipbus_reset_i => ipb_rst,
+         i2c_scl_enb_o => i2c_scl_enb_o(0),
+         i2c_sda_enb_o => i2c_sda_enb_o(0),
+         ipbus_o       => ipbr(N_SLV_I2C_0)
+    );
+    slave7 : i2c_master
+    PORT MAP (
+         i2c_scl_i     => i2c_scl_i(1),
+         i2c_sda_i     => i2c_sda_i(1),
+         ipbus_clk_i   => ipb_clk,
+         ipbus_i       => ipbw(N_SLV_I2C_1),
+         ipbus_reset_i => ipb_rst,
+         i2c_scl_enb_o => i2c_scl_enb_o(1),
+         i2c_sda_enb_o => i2c_sda_enb_o(1),
+         ipbus_o       => ipbr(N_SLV_I2C_1)
+    );
+    slave8 : i2c_master
+    PORT MAP (
+         i2c_scl_i     => i2c_scl_i(2),
+         i2c_sda_i     => i2c_sda_i(2),
+         ipbus_clk_i   => ipb_clk,
+         ipbus_i       => ipbw(N_SLV_I2C_2),
+         ipbus_reset_i => ipb_rst,
+         i2c_scl_enb_o => i2c_scl_enb_o(2),
+         i2c_sda_enb_o => i2c_sda_enb_o(2),
+         ipbus_o       => ipbr(N_SLV_I2C_2)
+    );
+end rtl;
diff --git a/legacy/TLU_v1e/hdl/ipbus_fabric_sel.vhd b/legacy/TLU_v1e/hdl/ipbus_fabric_sel.vhd
new file mode 100644
index 00000000..86d2fa7a
--- /dev/null
+++ b/legacy/TLU_v1e/hdl/ipbus_fabric_sel.vhd
@@ -0,0 +1,61 @@
+-- The ipbus bus fabric, address select logic, data multiplexers
+--
+-- This version selects the addressed slave depending on the state
+-- of incoming control lines
+--
+-- Dave Newbold, February 2011
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+use ieee.numeric_std.all;
+use work.ipbus.ALL;
+
+entity ipbus_fabric_sel is
+  generic(
+    NSLV: positive;
+    STROBE_GAP: boolean := false;
+    SEL_WIDTH: positive
+   );
+  port(
+  	sel: in std_logic_vector(SEL_WIDTH - 1 downto 0);
+    ipb_in: in ipb_wbus;
+    ipb_out: out ipb_rbus;
+    ipb_to_slaves: out ipb_wbus_array(NSLV - 1 downto 0);
+    ipb_from_slaves: in ipb_rbus_array(NSLV - 1 downto 0) := (others => IPB_RBUS_NULL)
+   );
+
+end ipbus_fabric_sel;
+
+architecture rtl of ipbus_fabric_sel is
+
+	signal sel_i: integer range 0 to NSLV := 0;
+	signal ored_ack, ored_err: std_logic_vector(NSLV downto 0);
+	signal qstrobe: std_logic;
+
+begin
+
+	sel_i <= to_integer(unsigned(sel));
+
+	ored_ack(NSLV) <= '0';
+	ored_err(NSLV) <= '0';
+	
+	qstrobe <= ipb_in.ipb_strobe when STROBE_GAP = false else
+	 ipb_in.ipb_strobe and not (ored_ack(0) or ored_err(0));
+
+	busgen: for i in NSLV-1 downto 0 generate
+	begin
+
+		ipb_to_slaves(i).ipb_addr <= ipb_in.ipb_addr;
+		ipb_to_slaves(i).ipb_wdata <= ipb_in.ipb_wdata;
+		ipb_to_slaves(i).ipb_strobe <= qstrobe when sel_i = i else '0';
+		ipb_to_slaves(i).ipb_write <= ipb_in.ipb_write;
+		ored_ack(i) <= ored_ack(i+1) or ipb_from_slaves(i).ipb_ack;
+		ored_err(i) <= ored_err(i+1) or ipb_from_slaves(i).ipb_err;		
+
+	end generate;
+
+  ipb_out.ipb_rdata <= ipb_from_slaves(sel_i).ipb_rdata when sel_i /= NSLV else (others => '0');
+  ipb_out.ipb_ack <= ored_ack(0);
+  ipb_out.ipb_err <= ored_err(0);
+  
+end rtl;
diff --git a/legacy/TLU_v1e/hdl/ipbus_slaves.vhd b/legacy/TLU_v1e/hdl/ipbus_slaves.vhd
new file mode 100644
index 00000000..e0ee08ff
--- /dev/null
+++ b/legacy/TLU_v1e/hdl/ipbus_slaves.vhd
@@ -0,0 +1,170 @@
+-- ipbus_example
+--
+-- selection of different IPBus slaves without actual function,
+-- just for performance evaluation of the IPbus/uhal system
+--
+-- Kristian Harder, March 2014
+-- based on code by Dave Newbold, February 2011
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+use work.ipbus.all;
+use work.ipbus_reg_types.all;
+use work.ipbus_decode_ipbus_example.all;
+
+entity ipbus_slaves is
+	port(
+		ipb_clk: in std_logic;
+		ipb_rst: in std_logic;
+		ipb_in: in ipb_wbus;
+		ipb_out: out ipb_rbus;
+		nuke: out std_logic;
+		soft_rst: out std_logic;
+		--i2c_scl_b: INOUT  std_logic;
+        --i2c_sda_b: INOUT  std_logic;
+        
+        --i2c_sda_i: IN std_logic;
+        --i2c_scl_i: IN std_logic;
+        --i2c_scl_enb_o: OUT std_logic;
+        --i2c_sda_enb_o: OUT std_logic;
+                
+        i2c_sda_i: IN std_logic_vector(N_I2C_CORES - 1 downto 0);
+        i2c_scl_i: IN std_logic_vector(N_I2C_CORES - 1 downto 0);
+        i2c_scl_enb_o: OUT std_logic_vector(N_I2C_CORES - 1 downto 0);
+        i2c_sda_enb_o: OUT std_logic_vector(N_I2C_CORES - 1 downto 0);
+        userled: out std_logic
+	);
+
+end ipbus_slaves;
+
+architecture rtl of ipbus_slaves is
+
+	signal ipbw: ipb_wbus_array(N_SLAVES - 1 downto 0);
+	signal ipbr: ipb_rbus_array(N_SLAVES - 1 downto 0);
+	signal ctrl, stat: ipb_reg_v(0 downto 0);
+    --SIGNAL s_i2c_scl_enb         : std_logic;
+    --SIGNAL s_i2c_sda_enb         : std_logic;
+           
+    -->P
+    COMPONENT i2c_master
+    PORT (
+       i2c_scl_i     : IN     std_logic;
+       i2c_sda_i     : IN     std_logic;
+       ipbus_clk_i   : IN     std_logic;
+       ipbus_i       : IN     ipb_wbus;
+       ipbus_reset_i : IN     std_logic;
+       i2c_scl_enb_o : OUT    std_logic;
+       i2c_sda_enb_o : OUT    std_logic;
+       ipbus_o       : OUT    ipb_rbus
+    );
+    END COMPONENT i2c_master;
+    FOR ALL : i2c_master USE ENTITY work.i2c_master;--<P
+begin
+
+-- ipbus address decode
+    --i2c_scl_b <= '0' when (s_i2c_scl_enb = '0') else 'Z';
+    --i2c_sda_b <= '0' when (s_i2c_sda_enb = '0') else 'Z';
+		
+	fabric: entity work.ipbus_fabric_sel
+    generic map(
+    	NSLV => N_SLAVES,
+    	SEL_WIDTH => IPBUS_SEL_WIDTH)
+    port map(
+      ipb_in => ipb_in,
+      ipb_out => ipb_out,
+      sel => ipbus_sel_ipbus_example(ipb_in.ipb_addr),
+      ipb_to_slaves => ipbw,
+      ipb_from_slaves => ipbr
+    );
+
+-- Slave 0: id / rst reg
+
+	slave0: entity work.ipbus_ctrlreg_v
+		port map(
+			clk => ipb_clk,
+			reset => ipb_rst,
+			ipbus_in => ipbw(N_SLV_CTRL_REG),
+			ipbus_out => ipbr(N_SLV_CTRL_REG),
+			d => stat,
+			q => ctrl
+		);
+		stat(0) <= X"abcdfedc";
+		soft_rst <= ctrl(0)(0);
+		nuke <= ctrl(0)(1);
+
+-- Slave 1: register
+	slave1: entity work.ipbus_reg_v
+		port map(
+			clk => ipb_clk,
+			reset => ipb_rst,
+			ipbus_in => ipbw(N_SLV_REG),
+			ipbus_out => ipbr(N_SLV_REG),
+			q => open
+		);
+
+-- Slave 2: 1kword RAM
+--	slave4: entity work.ipbus_ram
+--		generic map(ADDR_WIDTH => 10)
+--		port map(
+--			clk => ipb_clk,
+--			reset => ipb_rst,
+--			ipbus_in => ipbw(N_SLV_RAM),
+--			ipbus_out => ipbr(N_SLV_RAM)
+--		);
+	
+-- Slave 3: peephole RAM
+--	slave5: entity work.ipbus_peephole_ram
+--		generic map(ADDR_WIDTH => 10)
+--		port map(
+--			clk => ipb_clk,
+--			reset => ipb_rst,
+--			ipbus_in => ipbw(N_SLV_PRAM),
+--			ipbus_out => ipbr(N_SLV_PRAM)
+--		);
+--    slave6 : i2c_master
+--    PORT MAP (
+--         i2c_scl_i     => i2c_scl_b,
+--         i2c_sda_i     => i2c_sda_b,
+--         ipbus_clk_i   => ipb_clk,
+--         ipbus_i       => ipbw(N_SLV_I2C),
+--         ipbus_reset_i => ipb_rst,
+--         i2c_scl_enb_o => s_i2c_scl_enb,
+--         i2c_sda_enb_o => s_i2c_sda_enb,
+--         ipbus_o       => ipbr(N_SLV_I2C)
+--    );
+
+    -- Instantiate a I2C core for the EEPROM
+    slave6 : i2c_master
+    PORT MAP (
+         i2c_scl_i     => i2c_scl_i(0),
+         i2c_sda_i     => i2c_sda_i(0),
+         ipbus_clk_i   => ipb_clk,
+         ipbus_i       => ipbw(N_SLV_I2C_0),
+         ipbus_reset_i => ipb_rst,
+         i2c_scl_enb_o => i2c_scl_enb_o(0),
+         i2c_sda_enb_o => i2c_sda_enb_o(0),
+         ipbus_o       => ipbr(N_SLV_I2C_0)
+    );
+    slave7 : i2c_master
+    PORT MAP (
+         i2c_scl_i     => i2c_scl_i(1),
+         i2c_sda_i     => i2c_sda_i(1),
+         ipbus_clk_i   => ipb_clk,
+         ipbus_i       => ipbw(N_SLV_I2C_1),
+         ipbus_reset_i => ipb_rst,
+         i2c_scl_enb_o => i2c_scl_enb_o(1),
+         i2c_sda_enb_o => i2c_sda_enb_o(1),
+         ipbus_o       => ipbr(N_SLV_I2C_1)
+    );
+    slave8 : i2c_master
+    PORT MAP (
+         i2c_scl_i     => i2c_scl_i(2),
+         i2c_sda_i     => i2c_sda_i(2),
+         ipbus_clk_i   => ipb_clk,
+         ipbus_i       => ipbw(N_SLV_I2C_2),
+         ipbus_reset_i => ipb_rst,
+         i2c_scl_enb_o => i2c_scl_enb_o(2),
+         i2c_sda_enb_o => i2c_sda_enb_o(2),
+         ipbus_o       => ipbr(N_SLV_I2C_2)
+    );
+end rtl;
diff --git a/legacy/TLU_v1e/hdl/ipbus_ver.vhd b/legacy/TLU_v1e/hdl/ipbus_ver.vhd
new file mode 100644
index 00000000..068f126f
--- /dev/null
+++ b/legacy/TLU_v1e/hdl/ipbus_ver.vhd
@@ -0,0 +1,46 @@
+--=============================================================================
+--! @file  ipbus_ver.vhd
+--=============================================================================
+
+-- Version register, returns a fixed value
+--
+-- To be replaced by a more coherent versioning mechanism later
+--
+-- Dave Newbold, August 2011
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+use work.ipbus.all;
+
+--! @brief IPBus fixed register returning Firmware version number
+entity ipbus_ver is
+	port(
+		ipbus_in: in ipb_wbus;
+		ipbus_out: out ipb_rbus
+	);
+	
+end ipbus_ver;
+
+architecture rtl of ipbus_ver is
+
+begin
+
+  ipbus_out.ipb_rdata <= X"a622" & X"1008"; -- Lower 16b are ipbus firmware build ID (temporary arrangement).
+  ipbus_out.ipb_ack <= ipbus_in.ipb_strobe;
+  ipbus_out.ipb_err <= '0';
+
+end rtl;
+
+-- Build log
+--
+-- build 0x1000 : 22/08/11 : Starting build ID
+-- build 0x1001 : 29/08/11 : Version for SPI testing
+-- build 0x1002 : 27/09/11 : Bug fixes, new transactor code; v1.3 candidate
+-- build 0x1003 : buggy
+-- build 0x1004 : 18/10/11 : New mini-t top level, bug fixes, 1.3 codebase
+-- build 0x1005 : 20/10/11 : ipbus address config testing in mini-t
+-- build 0x1006 : 26/10/11 : trying with jumbo frames
+-- build 0x1007 : 27/10/11 : new slaves / address map + rhino frames
+-- build 0x1008 : 31/10/11 : rhino frames + multibus demo
+
+
diff --git a/legacy/TLU_v1e/hdl/led_stretcher.vhd b/legacy/TLU_v1e/hdl/led_stretcher.vhd
new file mode 100644
index 00000000..c8af6c68
--- /dev/null
+++ b/legacy/TLU_v1e/hdl/led_stretcher.vhd
@@ -0,0 +1,74 @@
+-- stretcher
+--
+-- Stretches a single clock pulse so it's visible on an LED
+--
+-- Dave Newbold, January 2013
+--
+-- $Id$
+
+library ieee;
+use ieee.std_logic_1164.all;
+use ieee.numeric_std.all;
+
+entity led_stretcher is
+	generic(
+		WIDTH: positive := 1
+	);
+	port(
+		clk: in std_logic; -- Assumed to be 125MHz ipbus clock
+		d: in std_logic_vector(WIDTH - 1 downto 0); -- Input (edge detected)
+		q: out std_logic_vector(WIDTH - 1 downto 0) -- LED output, ~250ms pulse
+	);
+
+end led_stretcher;
+
+architecture rtl of led_stretcher is
+
+	signal d17, d17_d: std_logic;
+	
+begin
+	
+	clkdiv: entity work.ipbus_clock_div
+		port map(
+			clk => clk,
+			d17 => d17
+		);
+
+	process(clk)
+	begin
+		if rising_edge(clk) then
+			d17_d <= d17;
+		end if;
+	end process;
+	
+	lgen: for i in WIDTH - 1 downto 0 generate
+	
+		signal s, sd, e, e_d, sl: std_logic;
+		signal scnt: unsigned(6 downto 0);
+	
+	begin
+	
+		process(clk)
+		begin
+			if rising_edge(clk) then
+				s <= d(i); -- Possible clock domain crossing from slower clock (sync not important)
+				sd <= s;
+				e <= (e or (s and not sd)) and not e_d;
+				if d17 = '1' and d17_d = '0' then
+					e_d <= e;
+					if e = '1' then
+						scnt <= "0000001";
+					elsif sl = '0' then
+						scnt <= scnt + 1;
+					end if;					
+				end if;
+			end if;
+		end process;
+
+		sl <= '1' when scnt = "0000000" else '0';
+		
+		q(i) <= not sl;
+		
+	end generate;
+	
+end rtl;
diff --git a/legacy/TLU_v1e/hdl/logic_clocks_rtl.vhd b/legacy/TLU_v1e/hdl/logic_clocks_rtl.vhd
new file mode 100644
index 00000000..631007a5
--- /dev/null
+++ b/legacy/TLU_v1e/hdl/logic_clocks_rtl.vhd
@@ -0,0 +1,344 @@
+--=============================================================================
+--! @file logic_clocks_rtl.vhd
+--=============================================================================
+--
+-------------------------------------------------------------------------------
+-- --
+-- University of Bristol, High Energy Physics Group.
+-- --
+------------------------------------------------------------------------------- --
+-- VHDL Architecture fmc_mTLU_lib.logic_clocks.rtl
+--
+--------------------------------------------------------------------------------
+-- 
+-- Created using using Mentor Graphics HDL Designer(TM) 2010.3 (Build 21)
+--
+-- Based on output of Xilinx Coregen and Alvro Dosil TLU code.
+------------------------------------------------------------------------------
+-- "Output    Output      Phase     Duty      Pk-to-Pk        Phase"
+-- "Clock    Freq (MHz) (degrees) Cycle (%) Jitter (ps)  Error (ps)"
+------------------------------------------------------------------------------
+-- CLK_OUT1___640.000______0.000______50.0______175.916____213.982
+-- CLK_OUT2___160.000______0.000______50.0______223.480____213.982
+-- CLK_OUT3____40.000______0.000______50.0______306.416____213.982
+--
+------------------------------------------------------------------------------
+-- "Input Clock   Freq (MHz)    Input Jitter (UI)"
+------------------------------------------------------------------------------
+-- __primary__________40.000____________0.010
+
+LIBRARY ieee;
+USE ieee.std_logic_1164.all;
+USE ieee.numeric_std.all;
+
+USE work.ipbus.all;
+
+library unisim;
+use unisim.vcomponents.all;
+
+--! @brief Generates 160MHz , 640MHz clocks from an incoming 40MHz clock.
+--! Can switch between clock generated from on-board Xtal ( clk_logic_xtal ) and external clock.
+--! Can also output clock to external clock pins.
+--!
+--! @author David Cussans , David.Cussans@bristol.ac.uk
+--
+--! @date 14:20:26 11/14/12
+--
+--! @version v0.1
+--
+--! @details
+--! \br <b> IPBus Address map:</b>
+--! \br (decode 2 bits)
+--! \li 0x00000000 - control/status register:
+--! \li             bit-0 - PLL locked ( 1 = locked )
+--! \li              bit-1 - buff-PLL locked ( 1 = locked )
+--! \li             bit-2 - use xtal for logic ( 1 = xtal , 0= external)
+--! \li             bit-3 - clock connector is an input ( 1=input , 0 = output)
+--! \li 0x00000001 - reset logic. Write to bit-zero to send reset.
+--!
+--!
+ENTITY logic_clocks IS
+    GENERIC( 
+        g_USE_EXTERNAL_CLK : integer := 1
+    );
+    PORT( 
+        ipbus_clk_i           : IN     std_logic;
+        ipbus_i               : IN     ipb_wbus;
+        ipbus_reset_i         : IN     std_logic;
+        Reset_i               : IN     std_logic;
+        clk_logic_xtal_i      : IN     std_logic;   --! 40MHz clock derived from onboard xtal
+        clk_8x_logic_o       : OUT    std_logic;   --! 640MHz clock
+        clk_4x_logic_o        : OUT    std_logic;   --! 160MHz clock
+        ipbus_o               : OUT    ipb_rbus;
+        strobe_8x_logic_o    : OUT    std_logic;   --! strobes once every 4 cycles of clk_16x
+        strobe_4x_logic_o     : OUT    std_logic;   --! one pulse every 4 cycles of clk_4x
+        DUT_clk_o             : OUT    std_logic;   --! 40MHz to DUTs
+        logic_clocks_locked_o : OUT    std_logic;   --! Goes high if clocks locked.
+        logic_reset_o         : OUT    std_logic    --! Goes high to reset counters etc. Sync with clk_4x_logic
+    );
+
+-- Declarations
+END ENTITY logic_clocks ;
+
+--
+ARCHITECTURE rtl OF logic_clocks IS
+    signal s_clk40 , s_clk40_internal : std_logic;
+    signal s_clk160 ,s_clk160_internal : std_logic;
+    signal ryanclock : std_logic;
+    signal s_clk320 , s_clk320_internal : std_logic;
+    signal s_clk40_out : std_logic;       -- Clock generated by DDR register to feed out of chip.
+    signal s_clk_is_xtal, s_clk_is_ext_buf : std_logic := '0'; -- default to
+                                                             -- input from ext
+    --  signal s_logic_clk_rst : std_logic := '0';
+    signal s_locked_pll, s_locked_bufpll : std_logic;
+    
+    signal s_clk : std_logic;
+    signal s_DUT_Clk, s_DUT_Clk_o, s_DUT_ClkG : std_logic;
+    signal s_extclk, s_extclkG : std_logic;
+    -- signal s_clk_d1 , s_strobe_4x_p1 , s_strobe_4x_logic  : std_logic;
+    signal s_clkfbout_buf , s_clkfbout : std_logic;
+    
+    signal s_strobe_generator  : std_logic_vector(3 downto 0) := "1000";  -- ! Store state of ring buffer to generate strobe
+    signal s_logic_clk_generator : std_logic_vector(3 downto 0) := "1100";  --! Stores state of 40MHz "clock"
+    --signal s_strobe_generator  : std_logic_vector(15 downto 0) := "1111000000000000";  -- ! Store state of ring buffer to generate strobe
+    --signal s_logic_clk_generator : std_logic_vector(15 downto 0) := "1111111100000000";  --! Stores state of 40MHz "clock"
+    signal s_strobe160 :std_logic_vector(15 downto 0) := "1000000000000000"; -- 160 strobe ring
+    signal s_strobe_fb : std_logic := '0';
+    
+    signal s_logic_reset_ipb, s_logic_reset_ipb_d1 : std_logic := '0';  
+                                        -- ! Reset signal in IPBus clock domain
+    signal s_logic_reset , s_logic_reset_d1 , s_logic_reset_d2 , s_logic_reset_d3 , s_logic_reset_d4 : std_logic := '0';  
+                                        -- ! reset signal clocked onto logic-clock domain.
+    attribute SHREG_EXTRACT: string;
+    attribute SHREG_EXTRACT of s_logic_reset_d1: signal is "no"; -- Synchroniser not to be optimised into shre
+    attribute SHREG_EXTRACT of s_logic_reset_d2: signal is "no"; -- Synchroniser not to be optimised into shreg
+    attribute SHREG_EXTRACT of s_logic_reset_d3: signal is "no"; -- Synchroniser not to be optimised into shreg
+    attribute SHREG_EXTRACT of s_logic_reset_d4: signal is "no"; -- Synchroniser not to be optimised into shreg
+    signal s_ipbus_ack : std_logic := '0';
+    signal s_reset_pll : std_logic := '0';
+    
+    
+    -- ! Global Reset signal
+    signal  s_extclk_internal  : std_logic := '0';
+    signal s_clock_status_ipb : std_logic_vector( ipbus_o.ipb_rdata'range );   --! Hold status of clocks
+  
+BEGIN
+    -----------------------------------------------------------------------------
+    -- IPBus write
+    -----------------------------------------------------------------------------
+    ipbus_write: process (ipbus_clk_i)
+    begin  -- process ipb_clk_i
+    if rising_edge(ipbus_clk_i) then
+        s_logic_reset_ipb <= '0';
+        if (ipbus_i.ipb_strobe = '1' and ipbus_i.ipb_write = '1') then
+            case ipbus_i.ipb_addr(1 downto 0) is
+            when "00" =>
+             s_clk_is_xtal <= ipbus_i.ipb_wdata(2) ; -- select clock source
+             
+            when "01" =>
+             s_logic_reset_ipb <= ipbus_i.ipb_wdata(0) ; -- write to reset
+            when others => null;
+            end case;
+       end if;
+
+        -- register reset signal to aid timing.
+        s_logic_reset_ipb_d1 <= s_logic_reset_ipb;
+        s_ipbus_ack <= ipbus_i.ipb_strobe and not s_ipbus_ack;
+        -- register the clock status signals onto IPBus domain.
+        --s_clock_status_ipb <=  x"0000000" & '0' & s_clk_is_xtal & s_locked_bufpll & s_locked_pll;
+        s_clock_status_ipb <=  x"0000000" & '0' & '0' & '0' & s_locked_pll; -- The only useful bit is not the PLL lock status. 
+    end if;
+    end process ipbus_write;
+
+    ipbus_o.ipb_ack <= s_ipbus_ack;
+    ipbus_o.ipb_err <= '0';
+
+    -----------------------------------------------------------------------------
+    -- IPBUS read
+    -----------------------------------------------------------------------------
+    with ipbus_i.ipb_addr(1 downto 0) select
+    ipbus_o.ipb_rdata <=
+        s_clock_status_ipb  when "00",
+        (others => '1')      when others;
+
+
+    -----------------------------------------------------------------------------
+    -- Generate reset signal on logic-clock domain
+    -- This relies on the IPBus clock being much slower than the 4x logic clock.
+    -----------------------------------------------------------------------------
+    p_reset: process (s_clk160_internal)
+    begin  -- process p_reset
+    if rising_edge(s_clk160_internal) then
+        s_logic_reset_d1 <= s_logic_reset_ipb_d1;
+        s_logic_reset_d2 <= s_logic_reset_d1;
+        s_logic_reset_d3 <= s_logic_reset_d2;
+        s_logic_reset_d4 <= s_logic_reset_d2 and ( not s_logic_reset_d3); 
+        s_logic_reset <= s_logic_reset_d4;
+    end if;
+    end process p_reset;
+    
+    logic_reset_o <= s_logic_reset;
+    logic_clocks_locked_o <= s_locked_bufpll and s_locked_pll;
+
+
+    -- Use Generate, since can't figure out how BUFGMUX works    
+    --  gen_extclk_input: if ( g_USE_EXTERNAL_CLK = 1) generate
+    --    s_DUT_Clk <= s_extclkG; -- Hard wire for now.    
+    --  end generate gen_extclk_input;
+    --  gen_intclk_input: if ( g_USE_EXTERNAL_CLK = 0) generate
+    s_DUT_Clk <= clk_logic_xtal_i; 
+    --  end generate gen_intclk_input;  
+  
+
+  
+    --! Clocking primitive
+    -------------------------------------
+    --! Instantiation of the PLL primitive
+    pll_base_inst : PLL_BASE
+    generic map
+       (BANDWIDTH            => "OPTIMIZED",
+        --CLK_FEEDBACK         => "CLKOUT0", --"CLKFBOUT",
+        CLK_FEEDBACK         => "CLKFBOUT",
+        COMPENSATION         => "SYSTEM_SYNCHRONOUS",
+        DIVCLK_DIVIDE        => 1,
+        CLKFBOUT_MULT        => 16,
+        CLKFBOUT_PHASE       => 0.000,
+        CLKOUT0_DIVIDE       => 2, -- 1-->2 move from 640 to 320
+        CLKOUT0_PHASE        => 0.000,
+        CLKOUT0_DUTY_CYCLE   => 0.500,
+        CLKOUT1_DIVIDE       => 4, -- 4-->8 move from 160 to 80
+        CLKOUT1_PHASE        => 0.000,
+        CLKOUT1_DUTY_CYCLE   => 0.500,
+        CLKOUT2_DIVIDE       => 16, -- 16--> 32 move from 40 to 20
+        CLKOUT2_PHASE        => 0.000,
+        CLKOUT2_DUTY_CYCLE   => 0.500,
+        CLKIN_PERIOD         => 25.000,
+        REF_JITTER           => 0.010)
+    port map(
+        -- Output clocks
+        CLKFBOUT            => s_clkfbout,
+        CLKOUT0             => s_clk320,
+        CLKOUT1             => s_clk160,
+        CLKOUT2             => s_clk40,
+        CLKOUT3             => open,
+        CLKOUT4             => open,
+        CLKOUT5             => open,
+        -- Status and control signals
+        LOCKED              => s_locked_pll,
+        --    RST                 => s_logic_clk_rst,
+        RST                 => s_reset_pll,
+        -- Input clock control
+        --    CLKFBIN             => s_clkfbout_buf,
+        CLKFBIN             => s_clkfbout,
+        CLKIN               => s_DUT_clk);
+        --      CLKIN               => clk_logic_xtal_i);
+
+    s_reset_pll <= Reset_i or s_logic_reset; 
+
+-----------------------------------------------
+--BUFPLL not supported by 7 Series. We need to replace it with BUFIO+BUFR 
+  -- Buffer the 16x clock and generate the ISERDES strobe signal
+--   BUFPLL_inst : BUFPLL
+--   generic map (
+--      DIVIDE => 4)
+--   port map (
+--      IOCLK  => s_clk640_internal,          -- 1-bit output: Output I/O clock
+--      LOCK   => s_locked_bufpll,            -- 1-bit output: Synchronized LOCK output
+--      SERDESSTROBE => strobe_16x_logic_O,   -- 1-bit output: Output SERDES strobe (connect to ISERDES2/OSERDES2)
+--      GCLK   => s_clk160_internal,          -- 1-bit input: BUFG clock input
+--      LOCKED => s_locked_pll,               -- 1-bit input: LOCKED input from PLL
+--      PLLIN  => s_clk640                    -- 1-bit input: Clock input from PLL
+--   );
+
+    BUFG_inst: BUFG
+    port map (
+        I => s_clk320,
+        O => s_clk320_internal    
+    );
+    
+--    BUFR_inst: BUFR
+--    generic map (
+--        BUFR_DIVIDE => "4"
+--    )
+--    port map (
+--        I   => s_clk160_internal,
+--        CE  => '1',
+--        CLR => '0',
+--        O   => ryanclock
+--    );
+    
+--    BUFG_inst2: BUFG
+--    port map (
+--        I => ryanclock,
+--        O => strobe_16x_logic_O    -- Not sure this is actually a strobe... Check
+--    );
+-----------------------------------------------
+
+	clk_8x_logic_o <= s_clk320_internal;
+	DUT_clk_o <= s_DUT_clk;
+
+
+  
+  -- Generate a strobe signal every 4 clocks. 
+  -- Can't use a clock signal as a combinatorial signal. Hence the baroque
+  -- method of generating a strobe. Add a mechanism to restart if the '1' gets
+  -- lost ....
+    
+    ------------------
+    generate_4x_strobe: process (s_clk160_internal)-- , s_clk40_out)
+    begin  -- process generate_4x_strobe
+    if rising_edge(s_clk160_internal) then
+        if s_logic_reset = '1' then
+            s_strobe_generator <= "1000";
+            s_logic_clk_generator <= "1100";
+            --s_strobe160 <= "1000000000000000";
+        elsif (s_locked_pll ='1') then
+            s_strobe_generator <= s_strobe_generator(2 downto 0) & s_strobe_generator(3); -- <- bit shift left      
+            s_logic_clk_generator <= s_logic_clk_generator(2 downto 0) & s_logic_clk_generator(3); -- <- bit shift left 
+            --s_strobe160 <= s_strobe160(14 downto 0) & s_strobe160(15);
+        end if;
+    end if;
+    end process generate_4x_strobe;
+    strobe_4x_logic_o <=  s_strobe_generator(3); -- Every 4 clocks this gets to 1 for one pulse
+    s_clk40_out <= s_logic_clk_generator(3); -- Every 4 clocks this gets to 1 for two pulses (so half F of the original clock? But then it is a clk80 not clk40.) Not used it seems.
+    ---------------
+    
+    generate_8x_strobe: process (s_clk320_internal)
+    begin
+    if rising_edge(s_clk320_internal) then
+        if s_logic_reset = '1' then
+            s_strobe160 <= "1000000000000000"; 
+            --s_strobe_generator <= "1111000000000000";--
+            --s_logic_clk_generator <= "1111111100000000";--
+        elsif (s_locked_pll ='1') then
+            s_strobe160 <= s_strobe160(14 downto 0) & s_strobe160(15);
+            --s_strobe_generator <= s_strobe_generator(14 downto 0) & s_strobe_generator(15); --       
+            --s_logic_clk_generator <= s_logic_clk_generator(14 downto 0) & s_logic_clk_generator(15); -- <- bit shift left
+        end if;
+    end if;
+    end process generate_8x_strobe;
+    strobe_8x_logic_O <= s_strobe160(15);
+    --strobe_4x_logic_o <=  s_strobe_generator(15); -- 
+    --s_clk40_out <= s_logic_clk_generator(15); -- 
+        
+
+  -- buffer 160MHz (4x) clock
+  --------------------------------------
+    clk160_o_buf : BUFG
+    port map(
+        O   => s_clk160_internal,
+        I   => s_clk160);
+    
+    clk_4x_logic_o <= s_clk160_internal;
+ 
+--   -- buffer 40MHz (1x) clock
+--  --------------------------------------
+--  clk40_o_buf : BUFG
+--  port map(
+--    O   => s_clk40_internal,
+--    I   => s_clk40);
+
+--  clk_logic_o <= s_clk40_out;
+
+END ARCHITECTURE rtl;
+
diff --git a/legacy/TLU_v1e/hdl/pulseClockDomainCrossing_rtl.vhd b/legacy/TLU_v1e/hdl/pulseClockDomainCrossing_rtl.vhd
new file mode 100644
index 00000000..663cac3b
--- /dev/null
+++ b/legacy/TLU_v1e/hdl/pulseClockDomainCrossing_rtl.vhd
@@ -0,0 +1,100 @@
+--=============================================================================
+--! @file pulseClockDomainCrossing_rtl.vhd
+--=============================================================================
+--
+-------------------------------------------------------------------------------
+-- --
+-- University of Bristol, High Energy Physics Group.
+-- --
+------------------------------------------------------------------------------- --
+-- VHDL Architecture worklib.pulseClockDomainCrossing.rtl
+--
+--! @brief Takes a pulse synchronized with one clock and produces a
+--! pulse synchronized to another clock.
+--
+--! @author David Cussans , David.Cussans@bristol.ac.uk
+--
+--! @date September/2012
+--
+--! @version v0.1
+--
+--! @details A "ring" of D-type flip-flops is used to transfer a strobe
+--! from the input clock domain to the output clock domain and then back again.
+--! The time taken to transit from input to output is approximately
+--! two clock cycles of clock_output_i .
+--! After an additional two cycles of clk_input_i another pulse can be sent
+--!
+--!
+--! <b>Dependencies:</b>\n
+--!
+--! <b>References:</b>\n
+--!
+--! <b>Modified by:</b>\n
+--! Author: 
+-------------------------------------------------------------------------------
+--! \n\n<b>Last changes:</b>\n
+-------------------------------------------------------------------------------
+--! @todo <next thing to do> \n
+--! <another thing to do> \n
+--
+--------------------------------------------------------------------------------
+
+library ieee;
+use ieee.std_logic_1164.all;
+
+entity pulseClockDomainCrossing is
+  port (
+    clk_input_i : in std_logic;         --! clock for input
+    pulse_i     : in std_logic;         --! input pulse. Active high
+    clk_output_i: in std_logic;         --! clock for output
+    pulse_o     : out std_logic         --! Single cycle pulse synchronized to clock_output_i
+    );
+
+end pulseClockDomainCrossing;
+
+architecture rtl of pulseClockDomainCrossing is
+
+  signal s_pulse_out , s_pulse_out_d1 , s_pulse_out_d2 , s_pulse_out_d3 , s_pulse_out_d4 , s_pulse_back_d1 , s_pulse_back_d2: std_logic := '0';
+  
+begin  -- rtl
+
+  -- purpose: registers and flip-flop on clk_input_i
+  p_input_clock_logic: process (clk_input_i)
+  begin  
+    if rising_edge(clk_input_i) then
+
+      -- Register signals coming from output clock domain back to the
+      -- input clock domain
+      s_pulse_back_d1 <= s_pulse_out_d2;
+      s_pulse_back_d2 <= s_pulse_back_d1;
+
+      -- JK flip-flop
+      if (s_pulse_back_d2 = '1')  then
+        s_pulse_out <= '0';
+      elsif (pulse_i = '1')  then
+        s_pulse_out <= '1';
+      end if;
+
+    end if;
+  end process p_input_clock_logic;
+
+  -- purpose: registers and flip-flop on clk_output_o
+  p_output_clock_logic: process (clk_output_i)
+  begin  
+    if rising_edge(clk_output_i) then
+
+      -- Register signal on input clock domain onto output clock domain
+      s_pulse_out_d1 <= s_pulse_out;
+      s_pulse_out_d2 <= s_pulse_out_d1;
+
+      s_pulse_out_d3 <= s_pulse_out_d2;
+      s_pulse_out_d4 <= s_pulse_out_d3;
+
+      -- Generate single clock-cycle pulse on pulse_o
+      pulse_o <= s_pulse_out_d3 and ( not s_pulse_out_d4 );
+
+    end if;
+  end process p_output_clock_logic;
+
+
+end rtl;
diff --git a/legacy/TLU_v1e/hdl/registerCounter_rtl.vhd b/legacy/TLU_v1e/hdl/registerCounter_rtl.vhd
new file mode 100644
index 00000000..de5587cd
--- /dev/null
+++ b/legacy/TLU_v1e/hdl/registerCounter_rtl.vhd
@@ -0,0 +1,113 @@
+--=============================================================================
+--! @file registerCounter_rtl.vhd
+--=============================================================================
+--
+-------------------------------------------------------------------------------
+-- --
+-- University of Bristol, High Energy Physics Group.
+-- --
+------------------------------------------------------------------------------- --
+-- VHDL Architecture worklib.registerCounter.rtl
+--
+--! @brief Regularly transfers the input to the output.\n
+--! One clock for input , one clock for output\n
+--! Can't just put entire bus through a couple of register stages,\n
+--! Since this will just swap meta-stability issues for race issues.
+--
+--! @author David Cussans , David.Cussans@bristol.ac.uk
+--
+--! @date 24/Nov/12
+--
+--! @version v0.1
+--
+--! @details A six stage "ring oscillator" is used to generate two strobes.
+--! One reads data into a register. The other registers the data to the output
+--! Three stages are clocked on clk_write_i , three stages are clocked on clk_read_i
+--! We could use gray-scale and put through registers, but this method
+--! should work well enough at the expense of latency.\n
+--! \n
+--! The time taken for an edge to travel round the complete loop is
+--! 2 cycles of clk_read_i and 2 cycles of clk_write_i plus two intervals
+--! that depend on the relative phase of clk_read_i and clk_write_i
+--!
+--!
+--!
+--! <b>Dependencies:</b>\n
+--!
+--! <b>References:</b>\n
+--!
+--! <b>Modified by:</b>\n
+--! Author:
+--! David Cussans, 26/2/14 - Added registers to output to aid timing closure.
+-------------------------------------------------------------------------------
+--! \n\n<b>Last changes:</b>\n
+-------------------------------------------------------------------------------
+--! @todo <next thing to do> \n
+--! <another thing to do> \n
+--
+--------------------------------------------------------------------------------
+
+library ieee;
+use ieee.std_logic_1164.all;
+
+entity registerCounter is
+  
+  generic (
+    g_DATA_WIDTH : positive := 15);     -- ! Width of counter
+
+  port (
+    clk_input_i : in std_logic;         -- ! clock for input
+    data_i      : in std_logic_vector(g_DATA_WIDTH-1 downto 0);  -- ! data to transfer to output
+    data_o     : out std_logic_vector(g_DATA_WIDTH-1 downto 0);  -- ! Data now in clk_read_i domain
+    clk_output_i  : in std_logic);        -- ! clock for output
+
+end registerCounter;
+
+architecture rtl of registerCounter is
+  signal s_ring_d0 , s_ring_d1 , s_ring_d2 , s_ring_d3 , s_ring_d4, s_ring_d5: std_logic := '0';  -- stages in "ring oscillator" used to generate strobes
+  signal s_registered_data : std_logic_vector(data_i'range) := ( others => '0');  -- ! Register to store data between clock domains
+
+  signal s_read_strobe , s_write_strobe : std_logic := '0';  -- ! Strobes high to register data from input and to output
+  
+begin  -- rtl
+
+  -- purpose: part of "ring oscillator" transfering strobe between clock domains
+  -- type   : combinational
+  -- inputs : clk_read_i
+  -- outputs: 
+  p_gen_capture_strobe: process (clk_input_i)
+  begin  -- process p_gen_capture_strobe
+    if rising_edge(clk_input_i) then
+      s_ring_d0 <= not s_ring_d5;
+      s_ring_d1 <= s_ring_d0;
+      s_ring_d2 <= s_ring_d1;
+
+      if s_read_strobe = '1' then
+        s_registered_data <= data_i;
+      end if;
+    end if;    
+  end process p_gen_capture_strobe;
+
+  s_read_strobe <= s_ring_d1 xor s_ring_d2;  --! Generate a strobe with
+                                                --width one clk_read_i
+  
+  -- purpose: part of "ring oscillator" transfering strobe between clock domains
+  -- type   : combinational
+  -- inputs : clk_output_i
+  -- outputs: 
+  p_gen_output_strobe: process (clk_output_i)
+  begin  -- process p_gen_output_strobe
+    if rising_edge(clk_output_i) then
+      s_ring_d3 <= s_ring_d2;
+      s_ring_d4 <= s_ring_d3;
+      s_ring_d5 <= s_ring_d4;
+
+      if s_write_strobe = '1' then
+        data_o <= s_registered_data;
+      end if;
+    end if;    
+  end process p_gen_output_strobe;
+
+  s_write_strobe <= s_ring_d4 xor s_ring_d5;  --! Generate a strobe
+                                                  --
+end rtl;
diff --git a/legacy/TLU_v1e/hdl/serdes_1_to_n_SDR.vhd b/legacy/TLU_v1e/hdl/serdes_1_to_n_SDR.vhd
new file mode 100644
index 00000000..a0a119e3
--- /dev/null
+++ b/legacy/TLU_v1e/hdl/serdes_1_to_n_SDR.vhd
@@ -0,0 +1,235 @@
+------------------------------------------------------------------------------/
+-- Copyright (c) 2009 Xilinx, Inc.
+-- This design is confidential and proprietary of Xilinx, All Rights Reserved.
+------------------------------------------------------------------------------/
+--   ____  ____
+--  /   /\/   /
+-- /___/  \  /   Vendor: Xilinx
+-- \   \   \/    Version: 1.0
+--  \   \        Filename: top_nto1_ddr_diff_rx.vhd
+--  /   /        Date Last Modified:  November 5 2009
+-- /___/   /\    Date Created: June 1 2009
+-- \   \  /  \
+--  \___\/\___\
+-- 
+--Device:   Spartan 6
+--Purpose:    Example differential input receiver for DDR clock and data using 2 x BUFIO2
+--    Serdes factor and number of data lines are set by constants in the code
+--Reference:
+--    
+--Revision History:
+--    Rev 1.0 - First created (nicks)
+--
+------------------------------------------------------------------------------/
+--
+--  Disclaimer: 
+--
+--    This disclaimer is not a license and does not grant any rights to the materials 
+--              distributed herewith. Except as otherwise provided in a valid license issued to you 
+--              by Xilinx, and to the maximum extent permitted by applicable law: 
+--              (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND WITH ALL FAULTS, 
+--              AND XILINX HEREBY DISCLAIMS ALL WARRANTIES AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, 
+--              INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-INFRINGEMENT, OR 
+--              FITNESS FOR ANY PARTICULAR PURPOSE; and (2) Xilinx shall not be liable (whether in contract 
+--              or tort, including negligence, or under any other theory of liability) for any loss or damage 
+--              of any kind or nature related to, arising under or in connection with these materials, 
+--              including for any direct, or any indirect, special, incidental, or consequential loss 
+--              or damage (including loss of data, profits, goodwill, or any type of loss or damage suffered 
+--              as a result of any action brought by a third party) even if such damage or loss was 
+--              reasonably foreseeable or Xilinx had been advised of the possibility of the same.
+--
+--  Critical Applications:
+--
+--    Xilinx products are not designed or intended to be fail-safe, or for use in any application 
+--    requiring fail-safe performance, such as life-support or safety devices or systems, 
+--    Class III medical devices, nuclear facilities, applications related to the deployment of airbags,
+--    or any other applications that could lead to death, personal injury, or severe property or 
+--    environmental damage (individually and collectively, "Critical Applications"). Customer assumes 
+--    the sole risk and liability of any use of Xilinx products in Critical Applications, subject only 
+--    to applicable laws and signalulations governing limitations on product liability.
+--
+--  THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS PART OF THIS FILE AT ALL TIMES.
+--
+------------------------------------------------------------------------------
+-------------------------------------------------------
+--! @file
+--! @brief Serdes 1 to n SDR
+--! @author Alvaro Dosil
+-------------------------------------------------------
+
+library IEEE;
+use IEEE.std_logic_1164.all;
+use IEEE.std_logic_unsigned.all ;
+
+library unisim ;
+use unisim.vcomponents.all ;
+
+entity serdes_1_to_n_SDR is 
+generic ( g_S : integer := 4);       --! Parameter to set the serdes factor 1..8
+port( clk_i  : in std_logic;         --! Fast clock to sample data (640MHz)
+      hclk_i   : in std_logic;       --! A quarter frequency clock (160MHz)
+      reset_i  : in std_logic;       --! reset signal
+      Data_i   : in std_logic;       --! 1-Bit Input data
+      strobe_i : in std_logic;       --! Iserdes strobe_i
+      Data_o   : out std_logic_vector(2*g_S-1 downto 0)  --! data output
+		);
+    
+end serdes_1_to_n_SDR;
+
+
+architecture Behavioral of serdes_1_to_n_SDR is
+
+signal s_Data_i_d_m  : std_logic;     -- Data_i delayed master
+signal s_Data_i_d_2m : std_logic;     -- Data_i delayed master second signal
+signal s_Data_i_d_s  : std_logic;     -- Data_i delayed slave
+signal s_Data_i_d_2s : std_logic;     -- Data_i delayed slave second signal
+signal s_Data_o      : std_logic_vector(2*g_S-1 downto 0);
+
+--signal s_clk_b       : std_logic;
+--signal s_ISERDES_STROBE : std_logic;
+
+begin
+	
+---- Generate the ISERDES strobe signal
+--
+--   BUFPLL_inst : BUFPLL
+--   generic map (
+--      DIVIDE => 4)
+--   port map (
+--      IOCLK => s_clk_b,                -- 1-bit output: Output I/O clock
+--      LOCK => open,                     -- 1-bit output: Synchronized LOCK output
+--      SERDESSTROBE => s_ISERDES_STROBE, -- 1-bit output: Output SERDES strobe (connect to ISERDES2/OSERDES2)
+--      GCLK => hclk_i,                     -- 1-bit input: BUFG clock input
+--      LOCKED => locked_pll_i,                  -- 1-bit input: LOCKED input from PLL
+--      PLLIN => clk_i                -- 1-bit input: Clock input from PLL
+--   );
+	
+
+  IODELAY2_M : IODELAY2
+  generic map (
+    COUNTER_WRAPAROUND => "WRAPAROUND",     -- "STAY_AT_LIMIT" or "WRAPAROUND" 
+    DATA_RATE          => "SDR",            -- "SDR" or "DDR" 
+    DELAY_SRC          => "IDATAIN",        -- "IO", "ODATAIN" or "IDATAIN" 
+    IDELAY_MODE        => "NORMAL",         -- "NORMAL" or "PCI" 
+    IDELAY_TYPE        => "FIXED",          -- "FIXED", "DEFAULT", "VARIABLE_FROM_ZERO", "VARIABLE_FROM_HALF_MAX" 
+                              --  or "DIFF_PHASE_DETECTOR" 
+    IDELAY_VALUE     => 0,                -- Amount of taps for fixed input delay (0-255)
+    IDELAY2_VALUE    => 0,                -- Delay value when IDELAY_MODE="PCI" (0-255)
+    ODELAY_VALUE     => 0,                -- Amount of taps fixed output delay (0-255)
+    SERDES_MODE      => "NONE"            -- "NONE", "MASTER" or "SLAVE" 
+--    SIM_TAPDELAY_VALUE=> 43                -- Per tap delay used for simulation in ps
+   )
+  port map (
+    BUSY     => open,          -- 1-bit output: Busy output after CAL
+    DATAOUT  => s_Data_i_d_m,     -- 1-bit output: Delayed data output to ISERDES/input register
+    DATAOUT2 => s_Data_i_d_2m,    -- 1-bit output: Delayed data output to general FPGA fabric
+    DOUT     => open,          -- 1-bit output: Delayed data output
+    TOUT     => open,          -- 1-bit output: Delayed 3-state output
+    CAL      => '0',           -- 1-bit input: Initiate calibration input
+    CE       => '0',           -- 1-bit input: Enable INC input
+    CLK      => '0',           -- 1-bit input: Clock input
+    IDATAIN  => Data_i,        -- 1-bit input: Data input (connect to top-level port or I/O buffer)
+    INC      => '0',           -- 1-bit input: Increment / decrement input
+    IOCLK0   => '0',           -- 1-bit input: Input from the I/O clock network
+    IOCLK1   => '0',           -- 1-bit input: Input from the I/O clock network
+    ODATAIN  => '0',           -- 1-bit input: Output data input from output register or OSERDES2.
+    RST      => reset_i,         -- 1-bit input: reset_i to zero or 1/2 of total delay period
+    T        => '0'            -- 1-bit input: 3-state input signal
+   );
+
+
+  IODELAY2_S : IODELAY2
+  generic map (
+    COUNTER_WRAPAROUND => "WRAPAROUND",  -- "STAY_AT_LIMIT" or "WRAPAROUND" 
+    DATA_RATE          => "SDR",         -- "SDR" or "DDR" 
+    DELAY_SRC          => "IDATAIN",     -- "IO", "ODATAIN" or "IDATAIN" 
+    IDELAY_MODE        => "NORMAL",      -- "NORMAL" or "PCI" 
+    IDELAY_TYPE        => "FIXED",       -- "FIXED", "DEFAULT", "VARIABLE_FROM_ZERO", "VARIABLE_FROM_HALF_MAX" 
+                              --  or "DIFF_PHASE_DETECTOR" 
+    IDELAY_VALUE       => 10,--29,            -- Amount of taps for fixed input delay (0-255) 10->0.75nS, 11->0.825nS
+    IDELAY2_VALUE      => 0,             -- Delay value when IDELAY_MODE="PCI" (0-255)
+    ODELAY_VALUE       => 0,             -- Amount of taps fixed output delay (0-255)
+    SERDES_MODE        => "NONE"         -- "NONE", "MASTER" or "SLAVE" 
+    --SIM_TAPDELAY_VALUE => 43              -- Per tap delay used for simulation in ps
+   )
+  port map (
+    BUSY     => open,             -- 1-bit output: Busy output after CAL
+    DATAOUT  => s_Data_i_d_s,        -- 1-bit output: Delayed data output to ISERDES/input register
+    DATAOUT2 => s_Data_i_d_2s,       -- 1-bit output: Delayed data output to general FPGA fabric
+    DOUT     => open,             -- 1-bit output: Delayed data output
+    TOUT     => open,             -- 1-bit output: Delayed 3-state output
+    CAL      => '0',              -- 1-bit input: Initiate calibration input
+    CE       => '0',              -- 1-bit input: Enable INC input
+    CLK      => '0',              -- 1-bit input: Clock input
+    IDATAIN  => Data_i,           -- 1-bit input: Data input (connect to top-level port or I/O buffer)
+    INC      => '0',              -- 1-bit input: Increment / decrement input
+    IOCLK0   => '0',              -- 1-bit input: Input from the I/O clock network
+    IOCLK1   => '0',              -- 1-bit input: Input from the I/O clock network
+    ODATAIN  => '0',              -- 1-bit input: Output data input from output register or OSERDES2.
+    RST      => reset_i,            -- 1-bit input: reset_i to zero or 1/2 of total delay period
+    T        => '0'               -- 1-bit input: 3-state input signal
+   );
+
+
+  ISERDES2_M : ISERDES2
+  generic map (
+    BITSLIP_ENABLE => FALSE,         -- Enable Bitslip Functionality (TRUE/FALSE)
+    DATA_RATE      => "SDR",         -- Data-rate ("SDR" or "DDR")
+    DATA_WIDTH     => g_S,             -- Parallel data width selection (2-8)
+    INTERFACE_TYPE => "NETWORKING_PIPELINED", -- "NETWORKING", "NETWORKING_PIPELINED" or "RETIMED" 
+    SERDES_MODE    => "NONE"         -- "NONE", "MASTER" or "SLAVE" 
+   )
+  port map (
+    -- Q1 - Q4: 1-bit (each) output Registered outputs to FPGA logic
+    Q1     => s_Data_o(1),
+    Q2     => s_Data_o(3),
+    Q3     => s_Data_o(5),
+    Q4     => s_Data_o(7), 
+    --SHIFTOUT => SHIFTOUTsig,       -- 1-bit output Cascade output signal for master/slave I/O
+    VALID   => open,                 -- 1-bit output Output status of the phase detector
+    BITSLIP => '0',                  -- 1-bit input Bitslip enable input
+    CE0     => '1',                  -- 1-bit input Clock enable input
+	 CLK0    => clk_i,                -- 1-bit input I/O clock network input
+    CLK1    => '0',                  -- 1-bit input Secondary I/O clock network input
+    CLKDIV  => hclk_i,               -- 1-bit input FPGA logic domain clock input
+    D       => s_Data_i_d_m,         -- 1-bit input Input data
+    IOCE    => strobe_i,             -- 1-bit input Data strobe_i input
+    RST     => reset_i,              -- 1-bit input Asynchronous reset_i input
+    SHIFTIN => '0'                   -- 1-bit input Cascade input signal for master/slave I/O
+   );
+
+  ISERDES2_S : ISERDES2
+  generic map (
+    BITSLIP_ENABLE => FALSE,          -- Enable Bitslip Functionality (TRUE/FALSE)
+    DATA_RATE      => "SDR",       -- Data-rate ("SDR" or "DDR")
+    DATA_WIDTH     => g_S,             -- Parallel data width selection (2-8)
+    INTERFACE_TYPE => "NETWORKING_PIPELINED", -- "NETWORKING", "NETWORKING_PIPELINED" or "RETIMED" 
+    SERDES_MODE    => "NONE"          -- "NONE", "MASTER" or "SLAVE" 
+   )
+  port map (
+    -- Q1 - Q4: 1-bit (each) output Registered outputs to FPGA logic
+    Q1     => s_Data_o(0),
+    Q2     => s_Data_o(2),
+    Q3     => s_Data_o(4),
+    Q4     => s_Data_o(6),
+    --SHIFTOUT => SHIFTOUTsig,     -- 1-bit output Cascade output signal for master/slave I/O
+    VALID   => open,               -- 1-bit output Output status of the phase detector
+    BITSLIP => '0',                -- 1-bit input Bitslip enable input
+    CE0     => '1',                -- 1-bit input Clock enable input
+	 CLK0    => clk_i,              -- 1-bit input I/O clock network input
+    CLK1    => '0',                -- 1-bit input Secondary I/O clock network input
+    CLKDIV  => hclk_i,             -- 1-bit input FPGA logic domain clock input
+    D       => s_Data_i_d_s,       -- 1-bit input Input data
+    IOCE    => strobe_i,           -- 1-bit input Data strobe_i input
+    RST     => reset_i,            -- 1-bit input Asynchronous reset_i input
+    SHIFTIN => '0'                 -- 1-bit input Cascade input signal for master/slave I/O
+   );
+
+reg_out : process(hclk_i)
+begin
+  if rising_edge(hclk_i) then
+    Data_o <= s_Data_o;
+  end if;
+end process;
+
+end Behavioral;
diff --git a/legacy/TLU_v1e/hdl/single_pulse_rtl.vhd b/legacy/TLU_v1e/hdl/single_pulse_rtl.vhd
new file mode 100644
index 00000000..e5da6214
--- /dev/null
+++ b/legacy/TLU_v1e/hdl/single_pulse_rtl.vhd
@@ -0,0 +1,93 @@
+-------------------------------------------------------------------------------
+--! @file
+-------------------------------------------------------------------------------
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+
+-------------------------------------------------------------------------------
+--
+-- VHDL for producing a single clock low-high-low pulse on the rising edge
+-- of input signal (LEVEL)
+--
+-- David Cussans, Ocala, April 2005
+--
+-- LEVEL (input) - when LEVEL goes high, PULSE goes high for one clock cycle
+--               - on next rising edge of CLK
+-- CLK (input)   - rising edge active
+-- PULSE         - changes on rising edge of clk
+--
+--! @brief gives a single cycle pulse ( high active) following the rising edge of LEVEL
+
+entity single_pulse is
+  generic (
+    g_PRE_REGISTER  : boolean := false;  -- --! Set true to put a register before rising edge detect
+    g_POST_REGISTER : boolean := false);  -- --! Set tru to put a register after rising edge detect
+  port (
+    level : in  std_logic; --! When LEVEL goes high, PULSE goes high for one clock cycle
+    clk : in  std_logic; --! rising edge active
+    pulse : out  std_logic              --! Pulses high for one cycle
+    );
+end entity single_pulse;
+
+architecture rtl of single_pulse is
+
+  signal pre_level, pre_pulse , x, v : std_logic;
+  
+begin  -- architecture rtl
+
+  -----------------------------------------------
+  -- Optional register on input
+  -----------------------------------------------
+  gen_pre_ff: if g_PRE_REGISTER=true generate
+    ffpre: process (clk , level) is
+    begin  -- process ff1
+      if rising_edge(clk) then
+        pre_level <= level;
+      end if;
+    end process ffpre;
+  end generate gen_pre_ff;
+
+  gen_no_pre_ff: if g_PRE_REGISTER=false generate
+    pre_level <= level;
+  end generate gen_no_pre_ff;
+
+  -----------------------------------------------
+  -- Register signal
+  -----------------------------------------------  
+  ff1: process (clk , level) is
+  begin  -- process ff1
+    if rising_edge(clk) then
+      x <= pre_level;
+    end if;
+  end process ff1;
+
+  -----------------------------------------------
+  -- Edge detection logic
+  -----------------------------------------------  
+  ff2: process (clk , x) is
+  begin  -- process ff2
+    if rising_edge(clk) then
+      v <= not x;
+    end if;
+  end process ff2;                           
+                           
+  pre_pulse <= ( x and v );
+
+
+  -----------------------------------------------
+  -- Optional register on output
+  -----------------------------------------------
+  gen_post_ff: if g_POST_REGISTER=true generate
+    ffpost: process (clk , level) is
+    begin  -- process ff1
+      if rising_edge(clk) then
+        pulse <= pre_pulse;
+      end if;
+    end process ffpost;
+  end generate gen_post_ff;
+
+  gen_no_post_ff: if g_POST_REGISTER=false generate
+    pulse <= pre_pulse;
+  end generate gen_no_post_ff;
+  
+end architecture rtl;
diff --git a/legacy/TLU_v1e/hdl/stretchPulse_rtl.vhd b/legacy/TLU_v1e/hdl/stretchPulse_rtl.vhd
new file mode 100644
index 00000000..957a4c6d
--- /dev/null
+++ b/legacy/TLU_v1e/hdl/stretchPulse_rtl.vhd
@@ -0,0 +1,92 @@
+--=============================================================================
+--! @file stretchPulse_rtl.vhd
+--=============================================================================
+--
+-------------------------------------------------------------------------------
+-- --
+-- University of Bristol, High Energy Physics Group.
+-- --
+------------------------------------------------------------------------------- --
+-- VHDL Architecture fmc_mTLU_lib.triggerLogic.rtl
+--
+--! @brief Takes a pulse on input, stretches it and delays it.
+--
+-------------------------------------------------------------------------------
+
+LIBRARY ieee;
+USE ieee.std_logic_1164.all;
+USE ieee.numeric_std.all;
+
+--! Definition of trigger time
+USE work.fmcTLU.all;                    
+
+entity stretchPulse is
+  
+  generic (
+    g_PARAM_WIDTH : positive := 5);  --! number of bits in parameters (width,  delay)
+
+  port (
+    clk_i        : in  std_logic;       --! Active high
+    pulse_i      : in  std_logic;       --! Active high
+    pulse_o      : out std_logic;       --! delayed and stretched
+    triggerTime_i : in t_triggerTime;   --! 5-bit time
+    triggerTime_o : out t_triggerTime;  --! Delayed by same amount as pulse
+    
+    pulseWidth_i : in  std_logic_vector(g_PARAM_WIDTH-1 downto 0);  --! Minimum pulse width ( in clock cycles )
+    pulseDelay_i : in  std_logic_vector(g_PARAM_WIDTH-1 downto 0) --! Delay is pulseDelay_i +1 clock cycles
+    );      
+
+end entity stretchPulse;
+
+-- For now just delay the pulse.
+architecture rtl of stretchPulse is
+
+  signal s_delaySR : std_logic_vector( (2**g_PARAM_WIDTH) -1 downto 0) := ( others => '0' );  -- --! Shift register to generate delay
+  signal s_stretchSR : std_logic_vector( (2**g_PARAM_WIDTH) -1 downto 0) := ( others => '0' );  -- --! Shift register to generate stretch
+  signal s_delayedPulse : std_logic := '0';  -- delayed pulse before stretch
+
+  signal s_triggerTimeSR : t_triggerTimeArray ( (2**g_PARAM_WIDTH)-1 downto 0) := ( others => ( others => '0'));  -- array of trigger times
+  signal s_triggerTime_d1 : t_triggerTime := ( others => '0');  -- shim out by one more clock cycle...
+  signal s_stretchedTriggerTime : t_triggerTime := ( others => '0');  -- shim out by one more clock cycle...
+  
+begin  -- architecture rtl
+
+  
+  --! Delay pulse
+  p_delayPulse: process (clk_i , pulse_i) is
+  begin  -- process p_delayPulse
+    if rising_edge(clk_i) then
+      s_delaySR <= s_delaySR( (s_delaySR'left -1) downto 0 ) & pulse_i;
+      s_delayedPulse <= s_delaySR( to_integer(unsigned(pulseDelay_i)) );
+
+      -- delay the trigger time to match trigger delay
+      s_triggerTimeSR <=  s_triggerTimeSR( (s_triggerTimeSR'left -1)  downto 0 ) & triggerTime_i;
+      s_triggerTime_d1 <=  s_triggerTimeSR( to_integer(unsigned(pulseDelay_i)) ); 
+--      triggerTime_o <= s_triggerTime_d1 ;
+      
+    end if;
+  end process p_delayPulse;
+
+  --! Stretch pulse. the output pulse is always at least as long as the input pulse
+  p_stretchPulse: process (clk_i , pulse_i) is
+  begin  -- process p_stretchPulse
+    if rising_edge(clk_i) then
+      if s_delayedPulse = '1' then
+        s_stretchSR <= ( others => '1' ) ;
+        pulse_o <= s_delayedPulse ;
+      else
+        s_stretchSR <= s_stretchSR( (s_stretchSR'left -1) downto 0 ) & '0';
+        pulse_o <= s_stretchSR( to_integer(unsigned(pulseWidth_i)) );
+      end if;
+
+      if s_stretchSR( to_integer(unsigned(pulseWidth_i)) ) = '0' then
+        --s_stretchedTriggerTime <= s_triggerTimeSR( to_integer(unsigned(pulseDelay_i)) );
+        triggerTime_o <= s_triggerTime_d1;
+      end if;
+      --triggerTime_o <= s_stretchedTriggerTime ;
+      
+    end if;
+  end process p_stretchPulse;
+
+end architecture rtl;
+
diff --git a/legacy/TLU_v1e/hdl/sychronizedIPBusCtrlRegV_rtl.vhd b/legacy/TLU_v1e/hdl/sychronizedIPBusCtrlRegV_rtl.vhd
new file mode 100644
index 00000000..1e1d7512
--- /dev/null
+++ b/legacy/TLU_v1e/hdl/sychronizedIPBusCtrlRegV_rtl.vhd
@@ -0,0 +1,83 @@
+--=============================================================================
+--! @file 
+--=============================================================================
+--
+-------------------------------------------------------------------------------
+-- --
+-- University of Bristol, High Energy Physics Group.
+-- --
+------------------------------------------------------------------------------- --
+LIBRARY ieee;
+USE ieee.std_logic_1164.all;
+
+USE work.ipbus.all;
+use work.ipbus_reg_types.all;
+
+--! @brief IPBus registers synchronzied onto logic clock
+--!
+--! @details Uses DMN ipbus_ctrlreg_v - originally tried to use
+--! ipbus_ctrlreg_sync, but had poor results and added own synchronzier.
+
+entity synchronizedIPBusCtrlRegV_rtl is
+	generic(
+		N_CTRL: positive := 1;
+		N_STAT: positive := 1
+	);
+	port(
+		ipbus_clk_i: in std_logic;
+		ipbus_reset_i: in std_logic;
+		ipbus_i: in ipb_wbus;
+		ipbus_o: out ipb_rbus;
+                logic_clk_i: in std_logic;
+		status_to_ipbus_i: in ipb_reg_v(N_STAT - 1 downto 0); --! Synchronized to logic_clk_i       
+		sync_control_from_ipbus_o: out ipb_reg_v(N_CTRL - 1 downto 0); --! Synchronized to logic_clk_i
+		stb_o: out std_logic_vector(N_CTRL - 1 downto 0) --! high when change made to a control register. Broken ( needs to be retimed )
+	);
+	
+end synchronizedIPBusCtrlRegV_rtl;
+
+
+architecture rtl of synchronizedIPBusCtrlRegV_rtl is
+
+  signal s_sync_status_to_ipbus : ipb_reg_v(c_N_STAT-1 downto 0);
+  signal s_control_from_ipbus   : ipb_reg_v(c_N_CTRL-1 downto 0);
+ 
+begin  -- architecture rtl
+
+  
+  ipbus_registers: entity work.ipbus_ctrlreg_v
+    generic map(
+      N_CTRL => c_N_CTRL,
+      N_STAT => c_N_STAT
+      )
+    port map(
+      clk => ipbus_clk_i,
+      reset=> ipbus_reset_i ,
+      ipbus_in=>  ipbus_i,
+      ipbus_out=> ipbus_o,
+      d=>  s_sync_status_to_ipbus,
+      q=>  s_control_from_ipbus,
+      stb=>  stb_o
+      );
+
+  -- Synchronize registers from logic clock to ipbus.
+    sync_status: entity work.synchronizeRegisters
+    generic map (
+      g_NUM_REGISTERS => c_N_STAT )
+    port map (
+      clk_input_i => clk_4x_logic_i,
+      data_i      =>  status_to_ipbus_i,
+      data_o      => s_sync_status_to_ipbus,
+      clk_output_i => ipbus_clk_i);
+
+    -- Synchronize registers from logic clock to ipbus.
+    sync_ctrl: entity work.synchronizeRegisters
+    generic map (
+      g_NUM_REGISTERS => c_N_CTRL )
+    port map (
+      clk_input_i => ipbus_clk_i,
+      data_i      =>  s_control_from_ipbus,
+      data_o      => sync_control_from_ipbus_o,
+      clk_output_i => clk_4x_logic_i);
+
+end architecture rtl;
diff --git a/legacy/TLU_v1e/hdl/sync_reg.vhd b/legacy/TLU_v1e/hdl/sync_reg.vhd
new file mode 100644
index 00000000..e88eb54b
--- /dev/null
+++ b/legacy/TLU_v1e/hdl/sync_reg.vhd
@@ -0,0 +1,50 @@
+----------------------------------------------------------------------------------
+-- Company: Universidade de Santiago de Compostela
+-- Engineer: Alvaro Dosil
+-- 
+-- Create Date:    15/08/2012 
+-- Module Name:    Conf_Regs - Behavioral 
+-- Revision 1.00 - File Created
+-- Additional Comments: 
+----------------------------------------------------------------------------------
+-------------------------------------------------------
+--! @file
+--! @brief Synchronization module 32b
+--! @author Alvaro Dosil
+-------------------------------------------------------
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+
+
+entity sync_reg is
+  generic(g_Data_width : positive := 32);
+  port(
+    clk_i : in std_logic;  --! synchronous clock
+    Async_i : in std_logic_vector(g_Data_width-1 downto 0); --! Asynchronous input data
+	 Sync_o : out std_logic_vector(g_Data_width-1 downto 0)); --! Synchronous output data
+  
+end sync_reg;
+
+--! @brief
+--! @details Synchronize words (n bits)of data 
+
+architecture Behavioral of sync_reg is
+
+signal s_async_i : std_logic_vector(g_Data_width-1 downto 0);
+signal s_sync_o : std_logic_vector(g_Data_width-1 downto 0);
+begin
+  
+loop0: for i in 0 to g_Data_width-1 generate
+  begin
+  reg: entity work.Reg_2clks
+    port map(
+	   clk_i => clk_i,
+		async_i => s_async_i(i),
+		sync_o => s_sync_o(i));
+  end generate;
+ 
+s_async_i <= Async_i; 
+Sync_o <= s_sync_o;
+
+end Behavioral;
+
diff --git a/legacy/TLU_v1e/hdl/synchronizeRegisters_fifo.vhd b/legacy/TLU_v1e/hdl/synchronizeRegisters_fifo.vhd
new file mode 100644
index 00000000..ebae77b4
--- /dev/null
+++ b/legacy/TLU_v1e/hdl/synchronizeRegisters_fifo.vhd
@@ -0,0 +1,110 @@
+--=============================================================================
+--! @file synchronizeRegisters_rtl.vhd
+--=============================================================================
+--
+-------------------------------------------------------------------------------
+-- --
+-- University of Bristol, High Energy Physics Group.
+-- --
+------------------------------------------------------------------------------- --
+-- VHDL Architecture worklib.synchronizeRegisters.rtl
+--
+--------------------------------------------------------------------------------
+
+library ieee;
+use ieee.std_logic_1164.all;
+
+use work.ipbus_reg_types.all;
+
+
+
+entity synchronizeRegisters_fifo is
+  
+  generic (
+    --g_DATA_WIDTH : positive := 15;
+    g_NUM_REGISTERS : positive := 1);     --! Number of registers to synchronize
+
+  port (
+    clk_input_i : in std_logic;         --! clock for input
+    data_i      : in ipb_reg_v(g_NUM_REGISTERS-1 downto 0);  --! array of registers to transfer to output
+    data_o     : out ipb_reg_v(g_NUM_REGISTERS-1 downto 0);  --! Data now in clk_output_i domain
+    clk_output_i  : in std_logic);        --! clock for output
+
+end synchronizeRegisters_fifo;
+
+architecture rtl of synchronizeRegisters_fifo is
+  signal s_ring_d0 , s_ring_d1 , s_ring_d2 , s_ring_d3 , s_ring_d4, s_ring_d5: std_logic := '0';  -- stages in "ring oscillator" used to generate strobes
+  signal s_registered_data : ipb_reg_v(data_i'range) := ( others => ( others => '0'));  --! Register to store data between clock domains
+
+  signal s_read_strobe , s_write_strobe : std_logic := '0';  --! Strobes high to register data from input and to output
+  
+  COMPONENT sync_fifo
+    PORT (
+      rst : IN STD_LOGIC;
+      wr_clk : IN STD_LOGIC;
+      rd_clk : IN STD_LOGIC;
+      din : IN STD_LOGIC_VECTOR(31 DOWNTO 0);
+      wr_en : IN STD_LOGIC;
+      rd_en : IN STD_LOGIC;
+      dout : OUT STD_LOGIC_VECTOR(31 DOWNTO 0);
+      full : OUT STD_LOGIC;
+      empty : OUT STD_LOGIC
+    );
+  END COMPONENT;
+  
+begin  -- rtl
+
+  --! purpose: part of "ring oscillator" transfering strobe between clock domains
+  -- type   : combinational
+  -- inputs : clk_read_i
+  -- outputs: 
+  gen_syncReg: for v_reg in 0 to g_NUM_REGISTERS-1 generate
+      mySynchReg : sync_fifo
+        PORT MAP (
+          rst => '0',
+          wr_clk => clk_input_i,
+          rd_clk => clk_output_i,
+          din => data_i(v_reg),
+          wr_en => '1',
+          rd_en => '1',
+          dout => data_o(v_reg),
+          full => open,
+          empty => open
+        );
+  end generate gen_syncReg;
+  
+--  p_gen_capture_strobe: process (clk_input_i)
+--  begin  -- process p_gen_capture_strobe
+--    if rising_edge(clk_input_i) then
+--      s_ring_d0 <= not s_ring_d5;
+--      s_ring_d1 <= s_ring_d0;
+--      s_ring_d2 <= s_ring_d1;
+
+--      if s_read_strobe = '1' then
+--        s_registered_data <= data_i;
+--      end if;
+--    end if;    
+--  end process p_gen_capture_strobe;
+
+--  s_read_strobe <= s_ring_d1 xor s_ring_d2; --! Generate a strobe (with width one clk_read_i) that captures data at input
+  
+--  --! purpose: part of "ring oscillator" transfering strobe between clock domains
+--  -- type   : combinational
+--  -- inputs : clk_output_i
+--  -- outputs: 
+--  p_gen_output_strobe: process (clk_output_i)
+--  begin  -- process p_gen_output_strobe
+--    if rising_edge(clk_output_i) then
+--      s_ring_d3 <= s_ring_d2;
+--      s_ring_d4 <= s_ring_d3;
+--      s_ring_d5 <= s_ring_d4;
+
+--      if s_write_strobe = '1' then
+--        data_o <= s_registered_data;
+--      end if;
+--    end if;    
+--  end process p_gen_output_strobe;
+
+--  s_write_strobe <= s_ring_d4 xor s_ring_d5; --! Generate the strobe that causes data to be written to output
+
+end rtl;
diff --git a/legacy/TLU_v1e/hdl/synchronizeRegisters_rtl.vhd b/legacy/TLU_v1e/hdl/synchronizeRegisters_rtl.vhd
new file mode 100644
index 00000000..bb7d59a7
--- /dev/null
+++ b/legacy/TLU_v1e/hdl/synchronizeRegisters_rtl.vhd
@@ -0,0 +1,103 @@
+--=============================================================================
+--! @file synchronizeRegisters_rtl.vhd
+--=============================================================================
+--
+-------------------------------------------------------------------------------
+-- --
+-- University of Bristol, High Energy Physics Group.
+-- --
+------------------------------------------------------------------------------- --
+-- VHDL Architecture worklib.synchronizeRegisters.rtl
+--
+--------------------------------------------------------------------------------
+
+library ieee;
+use ieee.std_logic_1164.all;
+
+use work.ipbus_reg_types.all;
+
+--! @brief Regularly transfers the input to the output.
+--! One clock for input , one clock for output
+--! Can't just put entire bus through a couple of register stages,
+--! Since this will just swap meta-stability issues for race issues.
+--!
+--! @author David Cussans , David.Cussans@bristol.ac.uk
+--!
+--! @date 24/Nov/12
+--!
+--! @version v0.1
+--!
+--! @details A six stage "ring oscillator" is used to generate two strobes.
+--! One reads data into a register. The other registers the data to the output
+--! Three stages are clocked on clk_write_i , three stages are clocked on clk_read_i
+--! The time taken for an edge to travel round the complete loop is
+--! 2 cycles of clk_read_i and 2 cycles of clk_write_i plus two intervals
+--! that depend on the relative phase of clk_read_i and clk_write_i
+--!
+--! Based on registerCounters
+--!
+--! <b>Modified by:</b>\n
+--! Author:
+--! David Cussans, 26/2/14 - Added registers to output to aid timing closure.
+
+entity synchronizeRegisters is
+  
+  generic (
+    --g_DATA_WIDTH : positive := 15;
+    g_NUM_REGISTERS : positive := 1);     --! Number of registers to synchronize
+
+  port (
+    clk_input_i : in std_logic;         --! clock for input
+    data_i      : in ipb_reg_v(g_NUM_REGISTERS-1 downto 0);  --! array of registers to transfer to output
+    data_o     : out ipb_reg_v(g_NUM_REGISTERS-1 downto 0);  --! Data now in clk_output_i domain
+    clk_output_i  : in std_logic);        --! clock for output
+
+end synchronizeRegisters;
+
+architecture rtl of synchronizeRegisters is
+  signal s_ring_d0 , s_ring_d1 , s_ring_d2 , s_ring_d3 , s_ring_d4, s_ring_d5: std_logic := '0';  -- stages in "ring oscillator" used to generate strobes
+  signal s_registered_data : ipb_reg_v(data_i'range) := ( others => ( others => '0'));  --! Register to store data between clock domains
+
+  signal s_read_strobe , s_write_strobe : std_logic := '0';  --! Strobes high to register data from input and to output
+  
+begin  -- rtl
+
+  --! purpose: part of "ring oscillator" transfering strobe between clock domains
+  -- type   : combinational
+  -- inputs : clk_read_i
+  -- outputs: 
+  p_gen_capture_strobe: process (clk_input_i)
+  begin  -- process p_gen_capture_strobe
+    if rising_edge(clk_input_i) then
+      s_ring_d0 <= not s_ring_d5;
+      s_ring_d1 <= s_ring_d0;
+      s_ring_d2 <= s_ring_d1;
+
+      if s_read_strobe = '1' then
+        s_registered_data <= data_i;
+      end if;
+    end if;    
+  end process p_gen_capture_strobe;
+
+  s_read_strobe <= s_ring_d1 xor s_ring_d2; --! Generate a strobe (with width one clk_read_i) that captures data at input
+  
+  --! purpose: part of "ring oscillator" transfering strobe between clock domains
+  -- type   : combinational
+  -- inputs : clk_output_i
+  -- outputs: 
+  p_gen_output_strobe: process (clk_output_i)
+  begin  -- process p_gen_output_strobe
+    if rising_edge(clk_output_i) then
+      s_ring_d3 <= s_ring_d2;
+      s_ring_d4 <= s_ring_d3;
+      s_ring_d5 <= s_ring_d4;
+
+      if s_write_strobe = '1' then
+        data_o <= s_registered_data;
+      end if;
+    end if;    
+  end process p_gen_output_strobe;
+
+  s_write_strobe <= s_ring_d4 xor s_ring_d5; --! Generate the strobe that causes data to be written to output
+
+end rtl;
diff --git a/legacy/TLU_v1e/hdl/test_inToOut.vhd b/legacy/TLU_v1e/hdl/test_inToOut.vhd
new file mode 100644
index 00000000..91b60eec
--- /dev/null
+++ b/legacy/TLU_v1e/hdl/test_inToOut.vhd
@@ -0,0 +1,106 @@
+----------------------------------------------------------------------------------
+-- Company: 
+-- Engineer: 
+-- 
+-- Create Date: 09.02.2017 14:45:31
+-- Design Name: 
+-- Module Name: test_inToOut - Behavioral
+-- Project Name: 
+-- Target Devices: 
+-- Tool Versions: 
+-- Description: 
+-- 
+-- Dependencies: 
+-- 
+-- Revision:
+-- Revision 0.01 - File Created
+-- Additional Comments:
+-- 
+----------------------------------------------------------------------------------
+
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+
+-- Uncomment the following library declaration if using
+-- arithmetic functions with Signed or Unsigned values
+use IEEE.NUMERIC_STD.ALL;
+
+-- Uncomment the following library declaration if instantiating
+-- any Xilinx leaf cells in this code.
+library UNISIM;
+use UNISIM.VComponents.all;
+
+entity test_inToOut is
+    Generic(
+        DUT_TOGGLE : integer  :=1; --HDMI that toggles
+        DUT_OUT : integer := 2; --HDMI used as input
+        DUT_IN : integer := 0; --HDMI used as output
+        DUT_DULL : integer := 3 --HDMI not used
+    );
+    Port ( clk_in : in STD_LOGIC;
+           busy_in : in STD_LOGIC_VECTOR (3 downto 0);
+           control_in : in STD_LOGIC_VECTOR (3 downto 0);
+           trig_in : in STD_LOGIC_VECTOR (3 downto 0);
+           clkDut_in : in STD_LOGIC_VECTOR (3 downto 0);
+           spare_in : in STD_LOGIC_VECTOR (3 downto 0);
+           busy_out : out STD_LOGIC_VECTOR (3 downto 0);
+           control_out : out STD_LOGIC_VECTOR (3 downto 0);
+           trig_out : out STD_LOGIC_VECTOR (3 downto 0);
+           clkDut_out : out STD_LOGIC_VECTOR (3 downto 0);
+           spare_out : out STD_LOGIC_VECTOR (3 downto 0));
+end test_inToOut;
+
+architecture Behavioral of test_inToOut is
+
+    signal prescaler : unsigned(23 downto 0);
+    signal outcounter: unsigned(4 downto 0);
+    signal clk_slow_i : std_logic_vector(4 downto 0);
+    signal placeholder: std_logic_vector(4 downto 0);
+
+begin
+
+    gen_clk : process (clk_in)
+    begin  -- process gen_clk
+    if rising_edge(clk_in) then   -- rising clock edge
+      if prescaler = X"30D40" then     -- 200 000 in hex
+        prescaler   <= (others => '0');
+        --clk_slow_i   <= not clk_slow_i;
+        outcounter <= outcounter +1;
+        clk_slow_i(0) <= outcounter(0);
+        clk_slow_i(1) <= outcounter(1);
+        clk_slow_i(2) <= outcounter(2);
+        clk_slow_i(3) <= outcounter(3);
+        clk_slow_i(4) <= outcounter(4);
+      else
+        prescaler <= prescaler + "1";
+      end if;
+      clkDut_out(DUT_TOGGLE) <= clk_slow_i(0);
+      busy_out(DUT_TOGGLE) <= clk_slow_i(1);
+      control_out(DUT_TOGGLE) <= clk_slow_i(2);
+      trig_out(DUT_TOGGLE) <= clk_slow_i(3);
+      spare_out(DUT_TOGGLE) <= clk_slow_i(4);
+      
+      clkDut_out(DUT_TOGGLE) <= clk_slow_i(0);
+      busy_out(DUT_TOGGLE) <= clk_slow_i(1);
+      control_out(DUT_TOGGLE) <= clk_slow_i(2);
+      trig_out(DUT_TOGGLE) <= clk_slow_i(3);
+      spare_out(DUT_TOGGLE) <= clk_slow_i(4);
+  
+      clkDut_out(DUT_OUT) <= clkDut_in(DUT_IN);
+      busy_out(DUT_OUT) <= busy_in(DUT_IN);
+      control_out(DUT_OUT) <= control_in(DUT_IN);
+      trig_out(DUT_OUT) <= trig_in(DUT_IN);
+      spare_out(DUT_OUT) <= spare_in(DUT_IN);
+      
+      clkDut_out(DUT_DULL) <= '0';
+      busy_out(DUT_DULL) <= '0';
+      control_out(DUT_DULL) <= '0';
+      trig_out(DUT_DULL) <= '0';
+      spare_out(DUT_DULL) <= '0';
+    end if;
+    end process gen_clk;
+    
+
+
+end Behavioral;
diff --git a/legacy/TLU_v1e/hdl/test_inputToOutput.vhd b/legacy/TLU_v1e/hdl/test_inputToOutput.vhd
new file mode 100644
index 00000000..b8cbb1d9
--- /dev/null
+++ b/legacy/TLU_v1e/hdl/test_inputToOutput.vhd
@@ -0,0 +1,53 @@
+----------------------------------------------------------------------------------
+-- Company: 
+-- Engineer: 
+-- 
+-- Create Date: 09.02.2017 12:54:36
+-- Design Name: 
+-- Module Name: test_inputToOutput - Behavioral
+-- Project Name: 
+-- Target Devices: 
+-- Tool Versions: 
+-- Description: 
+-- 
+-- Dependencies: 
+-- 
+-- Revision:
+-- Revision 0.01 - File Created
+-- Additional Comments:
+-- 
+----------------------------------------------------------------------------------
+
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+
+-- Uncomment the following library declaration if using
+-- arithmetic functions with Signed or Unsigned values
+--use IEEE.NUMERIC_STD.ALL;
+
+-- Uncomment the following library declaration if instantiating
+-- any Xilinx leaf cells in this code.
+library UNISIM;
+use UNISIM.VComponents.all;
+
+entity test_inputToOutput is
+    Port ( clk_i : in STD_LOGIC;
+           test_i : in STD_LOGIC_VECTOR (3 downto 0);
+           test_o : out STD_LOGIC_VECTOR (3 downto 0));
+end test_inputToOutput;
+
+architecture Behavioral of test_inputToOutput is
+    signal synch_lines : std_logic_vector(3 downto 0);
+begin
+    synch_io : process (clk_i)
+    begin
+        if rising_edge(clk_i) then
+            synch_lines <= test_i;
+            test_o(1) <= synch_lines(0);
+            test_o(3) <= synch_lines(2);
+            test_o(0) <= '0';
+            test_o(2) <= '1';
+        end if;
+    end process synch_io;
+end Behavioral;
diff --git a/legacy/TLU_v1e/hdl/test_toggleLines.vhd b/legacy/TLU_v1e/hdl/test_toggleLines.vhd
new file mode 100644
index 00000000..ed585cdb
--- /dev/null
+++ b/legacy/TLU_v1e/hdl/test_toggleLines.vhd
@@ -0,0 +1,70 @@
+----------------------------------------------------------------------------------
+-- Company: 
+-- Engineer: 
+-- 
+-- Create Date: 06.02.2017 10:09:26
+-- Design Name: 
+-- Module Name: test_toggleLines - Behavioral
+-- Project Name: 
+-- Target Devices: 
+-- Tool Versions: 
+-- Description: 
+-- 
+-- Dependencies: 
+-- 
+-- Revision:
+-- Revision 0.01 - File Created
+-- Additional Comments:
+-- 
+----------------------------------------------------------------------------------
+
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+
+-- Uncomment the following library declaration if using
+-- arithmetic functions with Signed or Unsigned values
+use IEEE.NUMERIC_STD.ALL;
+
+-- Uncomment the following library declaration if instantiating
+-- any Xilinx leaf cells in this code.
+--library UNISIM;
+--use UNISIM.VComponents.all;
+
+entity test_toggleLines is
+    Port (
+        clk_in : in STD_LOGIC;
+        toggle_o : out std_logic_vector(3 downto 0)
+        );
+end test_toggleLines;
+
+architecture Behavioral of test_toggleLines is
+
+    signal prescaler : unsigned(23 downto 0);
+    signal outcounter: unsigned(3 downto 0);
+    signal clk_slow_i : std_logic_vector(3 downto 0);
+    
+begin
+
+  gen_clk : process (clk_in)
+  begin  -- process gen_clk
+    if rising_edge(clk_in) then   -- rising clock edge
+      if prescaler = X"30D40" then     -- 200 000 in hex
+        prescaler   <= (others => '0');
+        --clk_slow_i   <= not clk_slow_i;
+        outcounter <= outcounter +1;
+        clk_slow_i(0) <= outcounter(0);
+        clk_slow_i(1) <= outcounter(1);
+        clk_slow_i(2) <= outcounter(2);
+        clk_slow_i(3) <= outcounter(3);
+      else
+        prescaler <= prescaler + "1";
+      end if;
+    end if;
+  end process gen_clk;
+
+  toggle_o <= clk_slow_i;
+
+
+
+end Behavioral;
diff --git a/legacy/TLU_v1e/hdl/testbench_clocks.vhd b/legacy/TLU_v1e/hdl/testbench_clocks.vhd
new file mode 100644
index 00000000..052b220c
--- /dev/null
+++ b/legacy/TLU_v1e/hdl/testbench_clocks.vhd
@@ -0,0 +1,43 @@
+----------------------------------------------------------------------------------
+-- Company: 
+-- Engineer: 
+-- 
+-- Create Date: 17.02.2017 11:26:56
+-- Design Name: 
+-- Module Name: testbench_clocks - Behavioral
+-- Project Name: 
+-- Target Devices: 
+-- Tool Versions: 
+-- Description: 
+-- 
+-- Dependencies: 
+-- 
+-- Revision:
+-- Revision 0.01 - File Created
+-- Additional Comments:
+-- 
+----------------------------------------------------------------------------------
+
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+
+-- Uncomment the following library declaration if using
+-- arithmetic functions with Signed or Unsigned values
+--use IEEE.NUMERIC_STD.ALL;
+
+-- Uncomment the following library declaration if instantiating
+-- any Xilinx leaf cells in this code.
+--library UNISIM;
+--use UNISIM.VComponents.all;
+
+entity testbench_clocks is
+--  Port ( );
+end testbench_clocks;
+
+architecture Behavioral of testbench_clocks is
+
+begin
+
+
+end Behavioral;
diff --git a/legacy/TLU_v1e/hdl/testbench_myclocks.vhd b/legacy/TLU_v1e/hdl/testbench_myclocks.vhd
new file mode 100644
index 00000000..c17c7db5
--- /dev/null
+++ b/legacy/TLU_v1e/hdl/testbench_myclocks.vhd
@@ -0,0 +1,99 @@
+----------------------------------------------------------------------------------
+-- Company: 
+-- Engineer: 
+-- 
+-- Create Date: 17.02.2017 11:31:53
+-- Design Name: 
+-- Module Name: testbench_myclocks - Behavioral
+-- Project Name: 
+-- Target Devices: 
+-- Tool Versions: 
+-- Description: 
+-- 
+-- Dependencies: 
+-- 
+-- Revision:
+-- Revision 0.01 - File Created
+-- Additional Comments:
+-- 
+----------------------------------------------------------------------------------
+
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+use work.ipbus.all;
+-- Uncomment the following library declaration if using
+-- arithmetic functions with Signed or Unsigned values
+--use IEEE.NUMERIC_STD.ALL;
+
+-- Uncomment the following library declaration if instantiating
+-- any Xilinx leaf cells in this code.
+--library UNISIM;
+--use UNISIM.VComponents.all;
+
+
+
+entity testbench_myclocks is
+end testbench_myclocks;
+
+architecture Behavioral of testbench_myclocks is
+
+ COMPONENT logic_clocks
+    GENERIC (
+        g_USE_EXTERNAL_CLK : integer := 1
+    );
+    PORT (
+        ipbus_clk_i           : IN     std_logic ;
+        ipbus_i               : IN     ipb_wbus ;
+        ipbus_reset_i         : IN     std_logic ;
+        Reset_i               : IN     std_logic ;
+        clk_logic_xtal_i      : IN     std_logic ; -- ! 40MHz clock from onboard xtal
+        clk_8x_logic_o       : OUT    std_logic ; -- 640MHz clock
+        clk_4x_logic_o        : OUT    std_logic ; -- 160MHz clock
+        ipbus_o               : OUT    ipb_rbus ;
+        strobe_8x_logic_o    : OUT    std_logic ; -- strobes once every 4 cycles of clk_16x
+        strobe_4x_logic_o     : OUT    std_logic ; -- one pulse every 4 cycles of clk_4x
+        --extclk_p_b            : INOUT  std_logic ; -- either external clock in, or a clock being driven out
+        --extclk_n_b            : INOUT  std_logic ;
+        DUT_clk_o             : OUT    std_logic ;
+        logic_clocks_locked_o : OUT    std_logic ;
+        logic_reset_o         : OUT    std_logic   -- Goes high TO reset counters etc. Sync with clk_4x_logic
+    );
+    END COMPONENT logic_clocks;
+    FOR ALL : logic_clocks USE ENTITY work.logic_clocks;
+    SIGNAL sysclk_40         : std_logic := '0';
+    SIGNAL clk_8x_logic         : std_logic := '0';
+    SIGNAL clk_4x_logic         : std_logic := '0';
+    SIGNAL strobe_8x_logic         : std_logic := '0';
+    SIGNAL strobe_4x_logic         : std_logic := '0';
+    SIGNAL logic_reset         : std_logic := '0';
+    signal ipbus_i_const             : ipb_wbus;
+
+
+begin
+    
+      ipbus_i_const.ipb_strobe <= '0';
+      ipbus_i_const.ipb_write <= '0';
+      ipbus_i_const.ipb_wdata <= (others => '0');
+    
+        I3_Clocks : logic_clocks
+    GENERIC MAP (
+        g_USE_EXTERNAL_CLK => 0
+    )
+    PORT MAP (
+        ipbus_clk_i           => '0',
+        ipbus_i               => ipbus_i_const,
+        ipbus_reset_i         => '0',
+        Reset_i               => '0',
+        clk_logic_xtal_i      => sysclk_40, -- Not sure this is correct
+        clk_8x_logic_o       => clk_8x_logic,
+        clk_4x_logic_o        => clk_4x_logic,
+        ipbus_o               => open,
+        strobe_8x_logic_o    => strobe_8x_logic,
+        strobe_4x_logic_o     => strobe_4x_logic,
+        DUT_clk_o             => open,
+        logic_clocks_locked_o => open,
+        logic_reset_o         => logic_reset
+    );  
+
+end Behavioral;
diff --git a/legacy/TLU_v1e/hdl/top_enclustra_ax3_pm3.vhd b/legacy/TLU_v1e/hdl/top_enclustra_ax3_pm3.vhd
new file mode 100644
index 00000000..589be2f2
--- /dev/null
+++ b/legacy/TLU_v1e/hdl/top_enclustra_ax3_pm3.vhd
@@ -0,0 +1,173 @@
+-- Top-level design for ipbus demo
+--
+-- This version is for Enclustra AX3 module, using the RGMII PHY on the PM3 baseboard
+--
+-- You must edit this file to set the IP and MAC addresses
+--
+-- Dave Newbold, 4/10/16--
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.ALL;
+--Library UNISIM;
+--use UNISIM.vcomponents.all;
+
+use work.ipbus.ALL;
+
+entity top is
+    generic(
+    g_NUM_DUTS  : positive := 3;
+    g_NUM_TRIG_INPUTS   :positive := 4;
+    g_NUM_EXT_SLAVES    :positive :=8;
+    g_EVENT_DATA_WIDTH  :positive := 64;
+    g_IPBUS_WIDTH   :positive := 32;
+    g_NUM_EDGE_INPUTS   :positive := 4;
+    g_SPILL_COUNTER_WIDTH   :positive := 12;
+    g_BUILD_SIMULATED_MAC   :integer := 0
+    );
+    port(
+        sysclk: in std_logic;
+        leds: out std_logic_vector(3 downto 0); -- status LEDs
+        dip_sw: in std_logic_vector(3 downto 0); -- switches
+        rgmii_txd: out std_logic_vector(3 downto 0);
+        rgmii_tx_ctl: out std_logic;
+        rgmii_txc: out std_logic;
+        rgmii_rxd: in std_logic_vector(3 downto 0);
+        rgmii_rx_ctl: in std_logic;
+        rgmii_rxc: in std_logic;
+        i2c_scl_b: inout std_logic_vector(2 downto 0);
+        i2c_sda_b: inout std_logic_vector(2 downto 0);
+        phy_rstn: out std_logic; --default example ends here
+        busy_n_i: in std_logic_vector(g_NUM_DUTS-1 downto 0);
+        busy_p_i: in std_logic_vector(g_NUM_DUTS-1 downto 0);
+        cfd_discr_n_i: in std_logic_vector(g_NUM_TRIG_INPUTS-1 downto 0);
+        cfd_discr_p_i: in std_logic_vector(g_NUM_TRIG_INPUTS-1 downto 0);
+        threshold_discr_n_i: in std_logic_vector(g_NUM_TRIG_INPUTS-1 downto 0);
+        threshold_discr_p_i: in std_logic_vector(g_NUM_TRIG_INPUTS-1 downto 0);
+        gpio_hdr: out std_logic_vector(3 downto 0);
+        reset_or_clk_n_o: out std_logic_vector(g_NUM_DUTS-1 downto 0);
+        reset_or_clk_p_o: out std_logic_vector(g_NUM_DUTS-1 downto 0);
+        shutter_to_dut_n_o: out std_logic_vector(g_NUM_DUTS-1 downto 1);
+        shutter_to_dut_p_o: out std_logic_vector(g_NUM_DUTS-1 downto 1)
+        );
+
+end top;
+
+architecture rtl of top is
+
+	signal clk_ipb, rst_ipb, nuke, soft_rst, phy_rst_e, userled: std_logic;
+	signal mac_addr: std_logic_vector(47 downto 0);
+	signal ip_addr: std_logic_vector(31 downto 0);
+	signal ipb_out: ipb_wbus;
+	signal ipb_in: ipb_rbus;
+	signal inf_leds: std_logic_vector(1 downto 0);
+	SIGNAL s_i2c_scl_enb         : std_logic_vector(2 downto 0);
+    SIGNAL s_i2c_sda_enb         : std_logic_vector(2 downto 0);
+	--signal s_i2c_sda_i : std_logic;
+	--signal s_i2c_scl_i : std_logic;
+	
+begin
+    
+--led_iic_test <= iic_test;
+
+--Implicit instantiation of output tristate buffers.
+    i2c_scl_b(0) <= '0' when (s_i2c_scl_enb(0) = '0') else 'Z';
+    i2c_sda_b(0) <= '0' when (s_i2c_sda_enb(0) = '0') else 'Z';
+    i2c_scl_b(1) <= '0' when (s_i2c_scl_enb(1) = '0') else 'Z';
+    i2c_sda_b(1) <= '0' when (s_i2c_sda_enb(1) = '0') else 'Z';
+    i2c_scl_b(2) <= '0' when (s_i2c_scl_enb(2) = '0') else 'Z';
+    i2c_sda_b(2) <= '0' when (s_i2c_sda_enb(2) = '0') else 'Z';
+-- Infrastructure
+
+
+
+
+	infra: entity work.enclustra_ax3_pm3_infra
+		port map(
+			sysclk => sysclk,
+			clk_ipb_o => clk_ipb,
+			rst_ipb_o => rst_ipb,
+			rst_125_o => phy_rst_e,
+			nuke => nuke,
+			soft_rst => soft_rst,
+			leds => inf_leds,
+			rgmii_txd => rgmii_txd,
+			rgmii_tx_ctl => rgmii_tx_ctl,
+			rgmii_txc => rgmii_txc,
+			rgmii_rxd => rgmii_rxd,
+			rgmii_rx_ctl => rgmii_rx_ctl,
+			rgmii_rxc => rgmii_rxc,
+			mac_addr => mac_addr,
+			ip_addr => ip_addr,
+			ipb_in => ipb_in,
+			ipb_out => ipb_out
+		);
+		
+	leds <= not ('0' & userled & inf_leds);
+	phy_rstn <= not phy_rst_e;
+		
+--	mac_addr <= X"020ddba1151" & dip_sw; -- Careful here, arbitrary addresses do not always work
+--	ip_addr <= X"c0a8c81" & dip_sw; -- 192.168.200.16+n
+	mac_addr <= X"020ddba1151f"; -- Careful here, arbitrary addresses do not always work
+	ip_addr <= X"c0a8c81f"; -- 192.168.200.16+n
+
+-- ipbus slaves live in the entity below, and can expose top-level ports
+-- The ipbus fabric is instantiated within.
+
+--	slaves: entity work.ipbus_example
+--		port map(
+--			ipb_clk => clk_ipb,
+--			ipb_rst => rst_ipb,
+--			ipb_in => ipb_out,
+--			ipb_out => ipb_in,
+--			nuke => nuke,
+--			soft_rst => soft_rst,
+--			i2c_scl_b => i2c_scl_b,
+--            i2c_sda_b => i2c_sda_b,
+--			userled => userled
+--		);
+    --OBUFT: Single-ended 3-state Output Buffer
+--7 Series
+-- Xilinx HDL Libraries Guide, version 2012.2
+
+--OBUFT_inst_scl : IOBUF
+--generic map (
+--	DRIVE => 12,
+--	IOSTANDARD => "DEFAULT",
+--	SLEW => "SLOW")
+--port map (
+--    IO => i2c_scl_b, -- Buffer output (connect directly to top-level port)
+--    I => '0', -- Buffer input
+--    T => s_i2c_scl_enb, -- 3-state enable input
+--    O =>  s_i2c_scl_i
+--); -- End of OBUFT_inst instantiation
+
+--OBUFT_inst_sda : IOBUF
+--generic map (
+--	DRIVE => 12,
+--	IOSTANDARD => "DEFAULT",
+--	SLEW => "SLOW")
+--port map (
+--    IO => i2c_sda_b, -- Buffer output (connect directly to top-level port)
+--    I => '0', -- Buffer input
+--    T => s_i2c_sda_enb, -- 3-state enable input
+--    O =>  s_i2c_sda_i
+--); -- End of OBUFT_inst instantiation
+    
+    slaves: entity work.ipbus_example
+    port map(
+        ipb_clk => clk_ipb,
+        ipb_rst => rst_ipb,
+        ipb_in => ipb_out,
+        ipb_out => ipb_in,
+        nuke => nuke,
+        soft_rst => soft_rst,
+        --i2c_scl_i => s_i2c_scl_i,
+        --i2c_sda_i => s_i2c_sda_i,
+        i2c_sda_i => i2c_sda_b,
+        i2c_scl_i => i2c_scl_b,
+        i2c_scl_enb_o => s_i2c_scl_enb,
+        i2c_sda_enb_o => s_i2c_sda_enb,
+        userled => userled
+    );
+
+end rtl;
diff --git a/legacy/TLU_v1e/hdl/top_enclustra_tlu_v1e.vhd b/legacy/TLU_v1e/hdl/top_enclustra_tlu_v1e.vhd
new file mode 100644
index 00000000..4c270159
--- /dev/null
+++ b/legacy/TLU_v1e/hdl/top_enclustra_tlu_v1e.vhd
@@ -0,0 +1,758 @@
+-- Top-level design for TLU v1E
+--
+-- This version is for Enclustra AX3 module, using the RGMII PHY on the PM3 baseboard
+--
+-- You must edit this file to set the IP and MAC addresses
+--
+-- Dave Newbold, 4/10/16--
+
+library IEEE;
+library UNISIM;
+use IEEE.STD_LOGIC_1164.ALL;
+use ieee.numeric_std.all;
+use work.fmcTLU.all;
+use work.ipbus_decode_tlu.all;
+use work.ipbus.all;
+use work.ipbus_reg_types.all;
+use UNISIM.vcomponents.all;
+
+--Library UNISIM;
+--use UNISIM.vcomponents.all;
+
+use work.ipbus.ALL;
+
+entity top_tlu_v1e is
+    generic(
+    constant FW_VERSION : unsigned(31 downto 0):= X"1e000008"; -- Firmware revision. Remember to change this as needed.
+    g_NUM_DUTS  : positive := 4; -- <- was 3
+    g_NUM_TRIG_INPUTS   :positive := 6;-- <- was 4
+    g_NUM_EDGE_INPUTS   :positive := 6;--  <-- was 4
+    g_NUM_EXT_SLAVES    :positive :=8;--  <-- ??
+    g_EVENT_DATA_WIDTH  :positive := 64;--  <-- ??
+    g_IPBUS_WIDTH   :positive := 32;--  <-- was 32 
+    g_SPILL_COUNTER_WIDTH   :positive := 12;--  <-- ??
+    g_BUILD_SIMULATED_MAC   :integer := 0
+    );
+    port(
+    --Clock
+        --sysclk: in std_logic; --50 MHz clock input from FPGA
+        clk_enclustra: in std_logic; --Enclustra onboard oscillator 40 MHz. Used for the IPBus block
+        sysclk_50_o_p : out std_logic; --50 MHz clock output to FMC pins
+        sysclk_50_o_n : out std_logic; --50 MHz clock output to FMC pins
+        sysclk_40_i_p: in std_logic;
+        sysclk_40_i_n: in std_logic;
+    --Misc
+        leds: out std_logic_vector(3 downto 0); -- status LEDs
+        dip_sw: in std_logic_vector(3 downto 0); -- switches
+        gpio: out std_logic; -- gpio pin on J1 (eventually make it inout)
+    --RGMII interface signals
+        rgmii_txd: out std_logic_vector(3 downto 0);
+        rgmii_tx_ctl: out std_logic;
+        rgmii_txc: out std_logic;
+        rgmii_rxd: in std_logic_vector(3 downto 0);
+        rgmii_rx_ctl: in std_logic;
+        rgmii_rxc: in std_logic;
+        phy_rstn: out std_logic; 
+    --I2C bus
+        i2c_scl_b: inout std_logic;
+        i2c_sda_b: inout std_logic;
+        i2c_reset: out std_logic; --Reset line for the expander serial lines
+    --Clock generator controls
+        clk_gen_rst: out std_logic; --Reset line for the Si5345 clock generator (active low)
+        --clk_gen_lol: in std_logic; --LOL signal. Do not use for now as it is connected to CONT_FROM_FPGA<0>
+    --TLU signals for DUTs
+        busy_i: in std_logic_vector(g_NUM_DUTS-1 downto 0);-- Busy lines from DUTs (active high) (busy to FPGA)
+        busy_o: out std_logic_vector(g_NUM_DUTS-1 downto 0);-- Busy lines to DUTs (active high) (busy from FPGA)
+        cont_i: in std_logic_vector(g_NUM_DUTS-1 downto 0); --Control lines from DUTs
+        cont_o: out std_logic_vector(g_NUM_DUTS-1 downto 0); --Control lines to DUTs
+        spare_i: in std_logic_vector(g_NUM_DUTS-1 downto 0); --Spare lines from DUTs
+        spare_o: out std_logic_vector(g_NUM_DUTS-1 downto 0); --Spare lines to DUTs
+        triggers_i: in std_logic_vector(g_NUM_DUTS-1 downto 0); --Trigger lines from DUTs
+        triggers_o: out std_logic_vector(g_NUM_DUTS-1 downto 0); --Trigger lines to DUTs
+        dut_clk_i: in std_logic_vector(g_NUM_DUTS-1 downto 0); --Clock from DUTs
+        dut_clk_o: out std_logic_vector(g_NUM_DUTS-1 downto 0); --Clock to DUTs
+        
+        --reset_or_clk_n_o: out std_logic_vector(g_NUM_DUTS-1 downto 0); --T0 synchronization signal
+        --reset_or_clk_p_o: out std_logic_vector(g_NUM_DUTS-1 downto 0);
+        --shutter_to_dut_n_o: out std_logic_vector(g_NUM_DUTS-1 downto 0); --Shutter output
+        --shutter_to_dut_p_o: out std_logic_vector(g_NUM_DUTS-1 downto 0);
+                
+     --TLU trigger inputs   
+        threshold_discr_n_i: in std_logic_vector(g_NUM_TRIG_INPUTS-1 downto 0);
+        threshold_discr_p_i: in std_logic_vector(g_NUM_TRIG_INPUTS-1 downto 0)
+        --gpio_hdr: out std_logic_vector(3 downto 0);
+        --extclk_n_b: inout std_logic; --External clock in or clock output
+        --extclk_p_b: inout std_logic
+    );
+
+end top_tlu_v1e;
+
+architecture rtl of top_tlu_v1e is
+
+	signal clk_ipb, rst_ipb, nuke, soft_rst, phy_rst_e, clk_200, sysclk_40, clk_encl_buf, userled: std_logic;
+	signal mac_addr: std_logic_vector(47 downto 0);
+	signal ip_addr: std_logic_vector(31 downto 0);
+	signal ipb_out: ipb_wbus;
+	signal ipb_in: ipb_rbus;
+	signal inf_leds: std_logic_vector(1 downto 0);
+	signal s_i2c_scl_enb         : std_logic;
+    signal s_i2c_sda_enb         : std_logic;
+    signal encl_clock50: std_logic; -- This is a 50 MHz clock generated from the Enclustra onboard oscillator (rather than the clock input)
+    
+	--signal s_i2c_sda_i : std_logic;
+	--signal s_i2c_scl_i : std_logic;
+	------------------------------------------
+	-- Internal signal declarations
+    SIGNAL T0_o                  : std_logic;
+    SIGNAL buffer_full_o         : std_logic;                                             --! Goes high when event buffer almost full
+    SIGNAL clk_8x_logic         : std_logic;                                             -- 320MHz clock
+    SIGNAL clk_4x_logic          : std_logic;                                             --! normally 160MHz
+    SIGNAL clk_logic_xtal        : std_logic;                                             -- ! 40MHz clock from onboard xtal
+    SIGNAL data_strobe           : std_logic;                                             -- goes high when data ready to load into event buffer
+    SIGNAL dout                  : std_logic;
+    SIGNAL dout1                 : std_logic;
+    SIGNAL event_data            : std_logic_vector(g_EVENT_DATA_WIDTH-1 DOWNTO 0);
+    signal ipbww: ipb_wbus_array(N_SLAVES - 1 downto 0);
+    signal ipbrr: ipb_rbus_array(N_SLAVES - 1 downto 0);
+    SIGNAL logic_clocks_reset    : std_logic;                                             -- Goes high to reset counters etc. Sync with clk_4x_logic
+    SIGNAL logic_reset           : std_logic;
+    SIGNAL overall_trigger       : std_logic;                                             --! goes high to load trigger data
+    SIGNAL overall_veto          : std_logic;                                             --! Halts triggers when high
+    SIGNAL postVetoTrigger_times : t_triggerTimeArray(g_NUM_TRIG_INPUTS-1 DOWNTO 0);      -- ! trigger arrival time ( w.r.t. logic_strobe)
+    SIGNAL postVetotrigger       : std_logic_vector(g_NUM_TRIG_INPUTS-1 DOWNTO 0);        -- ! High when trigger from input connector active and enabled
+    --trigger_count_i   : IN     std_logic_vector (g_IPBUS_WIDTH-1 DOWNTO 0); --! Not used yet.
+    SIGNAL rst_fifo_o            : std_logic;                                             --! rst signal to first level fifos
+    SIGNAL s_edge_fall_times     : t_triggerTimeArray(g_NUM_EDGE_INPUTS-1 DOWNTO 0);      -- Array of edge times ( w.r.t. logic_strobe)
+    SIGNAL s_edge_falling        : std_logic_vector(g_NUM_EDGE_INPUTS-1 DOWNTO 0);        -- ! High when falling edge
+    SIGNAL s_edge_rise_times     : t_triggerTimeArray(g_NUM_EDGE_INPUTS-1 DOWNTO 0);      -- Array of edge times ( w.r.t. logic_strobe)
+    SIGNAL s_edge_rising         : std_logic_vector(g_NUM_EDGE_INPUTS-1 DOWNTO 0);        -- ! High when rising edge
+    --SIGNAL s_i2c_scl_enb         : std_logic;
+    --SIGNAL s_i2c_sda_enb         : std_logic;
+    SIGNAL s_shutter             : std_logic;                                             --! shutter signal from TimePix, retimed onto local clock
+    SIGNAL s_triggerLogic_reset  : std_logic;
+    SIGNAL shutter_cnt_i         : std_logic_vector(g_SPILL_COUNTER_WIDTH-1 DOWNTO 0);
+    SIGNAL shutter_i             : std_logic;
+    SIGNAL spill_cnt_i           : std_logic_vector(g_SPILL_COUNTER_WIDTH-1 DOWNTO 0);
+    SIGNAL spill_i               : std_logic;
+    SIGNAL strobe_8x_logic      : std_logic;                                             --! Pulses one cycle every 4 of 16x clock.
+    SIGNAL strobe_4x_logic       : std_logic;                                             -- one pulse every 4 cycles of clk_4x
+    SIGNAL trigger_count         : std_logic_vector(g_IPBUS_WIDTH-1 DOWNTO 0);
+    SIGNAL trigger_times         : t_triggerTimeArray(g_NUM_TRIG_INPUTS-1 DOWNTO 0);      -- ! trigger arrival time ( w.r.t. logic_strobe)
+    SIGNAL triggers              : std_logic_vector(g_NUM_TRIG_INPUTS-1 DOWNTO 0);
+    SIGNAL veto_o                : std_logic;                                             --! goes high when one or more DUT are busy
+	signal ctrl, stat: ipb_reg_v(0 downto 0);
+	--My signals
+	--SIGNAL busy_toggle_o         : std_logic_vector(g_NUM_DUTS-1 downto 0);
+	
+----------------------------------------------
+----------------------------------------------
+    component DUTInterfaces
+    generic(
+	   g_NUM_DUTS : positive := 4;-- <- was 3
+	   g_IPBUS_WIDTH : positive := 32
+	   );
+    port (
+        clk_4x_logic_i          : IN     std_logic ;
+        strobe_4x_logic_i       : IN     std_logic ;                                  --! goes high every 4th clock cycle
+        trigger_counter_i       : IN     std_logic_vector (g_IPBUS_WIDTH-1 DOWNTO 0); --! Number of trigger events since last reset
+        trigger_i               : IN     std_logic ;                                  --! goes high when trigger logic issues a trigger
+        reset_or_clk_to_dut_i   : IN     std_logic ;                                  --! Synchronization signal. Passed TO DUT pins
+        shutter_to_dut_i        : IN     std_logic ;                                  --! Goes high TO indicate data-taking active. DUTs report busy unless ignoreShutterVeto IPBus flag is set high
+        -- IPBus signals.
+        ipbus_clk_i             : IN     std_logic ;
+        ipbus_i                 : IN     ipb_wbus ;                                   --! Signals from IPBus core TO slave
+        ipbus_reset_i           : IN     std_logic ;
+        ipbus_o                 : OUT    ipb_rbus ;                                   --! signals from slave TO IPBus core
+        -- Signals to/from DUT
+        busy_from_dut       : IN     std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);    --! BUSY input from DUTs
+        busy_to_dut       : OUT     std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);     --! BUSY input to DUTs (single ended)
+        clk_from_dut  : IN std_logic_vector(g_NUM_DUTS-1 DOWNTO 0); --new signal for TLU, replace differential I/O
+        clk_to_dut : OUT std_logic_vector(g_NUM_DUTS-1 DOWNTO 0); --new signal for TLU, replace differential I/O
+        reset_to_dut: OUT    std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);     --! Replaces reset_or_clk_to_dut
+        trigger_to_dut : OUT    std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);     --! Trigger output
+        shutter_to_dut      : OUT    std_logic_vector (g_NUM_DUTS-1 DOWNTO 0);     --! Shutter output
+        veto_o                  : OUT    std_logic   
+    );
+    end component DUTInterfaces;
+----------------------------------------------
+----------------------------------------------
+    COMPONENT T0_Shutter_Iface
+    PORT (
+        clk_4x_i      : IN     std_logic;
+        clk_4x_strobe : IN     std_logic;
+        ipbus_clk_i   : IN     std_logic;
+        ipbus_i       : IN     ipb_wbus;
+        T0_o          : OUT    std_logic;
+        ipbus_o       : OUT    ipb_rbus;
+        shutter_o     : OUT    std_logic
+    );
+    END COMPONENT T0_Shutter_Iface;
+----------------------------------------------
+----------------------------------------------
+
+   COMPONENT eventBuffer
+   GENERIC (
+        g_EVENT_DATA_WIDTH   : positive := 64;
+        g_IPBUS_WIDTH        : positive := 32;
+        g_READ_COUNTER_WIDTH : positive := 16
+   );
+   PORT (
+        clk_4x_logic_i    : IN     std_logic ;
+        data_strobe_i     : IN     std_logic ;                                     -- Indicates data TO transfer
+        event_data_i      : IN     std_logic_vector (g_EVENT_DATA_WIDTH-1 DOWNTO 0);
+        ipbus_clk_i       : IN     std_logic ;
+        ipbus_i           : IN     ipb_wbus ;
+        ipbus_reset_i     : IN     std_logic ;
+        strobe_4x_logic_i : IN     std_logic ;
+        --trigger_count_i   : IN     std_logic_vector (g_IPBUS_WIDTH-1 DOWNTO 0); --! Not used yet.
+        rst_fifo_o        : OUT    std_logic ;                                     --! rst signal TO first level fifos
+        buffer_full_o     : OUT    std_logic ;                                     --! Goes high when event buffer almost full
+        ipbus_o           : OUT    ipb_rbus ;
+        logic_reset_i     : IN     std_logic                                       -- reset buffers when high. Synch withclk_4x_logic
+   );
+   END COMPONENT eventBuffer;
+----------------------------------------------
+----------------------------------------------
+    COMPONENT eventFormatter
+    GENERIC (
+        g_EVENT_DATA_WIDTH   : positive := 64;
+        g_IPBUS_WIDTH        : positive := 32;
+        g_COUNTER_TRIG_WIDTH : positive := 32;
+        g_COUNTER_WIDTH      : positive := 12;
+        g_EVTTYPE_WIDTH      : positive := 4;      --! Width of the event type word
+        --g_NUM_INPUT_TYPES     : positive := 4;               -- Number of different input types (trigger, shutter, edge...)
+        g_NUM_EDGE_INPUTS    : positive := 4;      --! Number of edge inputs
+        g_NUM_TRIG_INPUTS    : positive := 6       --! Number of trigger inputs (POSSIBLY WRONG!)
+    );
+    PORT (
+        clk_4x_logic_i         : IN     std_logic ;                                         --! Rising edge active
+        ipbus_clk_i            : IN     std_logic ;
+        logic_strobe_i         : IN     std_logic ;                                         --! Pulses high once every 4 cycles of clk_4x_logic
+        logic_reset_i          : IN     std_logic ;                                         --! goes high TO reset counters. Synchronous with clk_4x_logic
+        rst_fifo_i             : IN     std_logic ;                                         --! Goes high TO reset FIFOs
+        buffer_full_i          : IN     std_logic ;                                         --! Goes high when output fifo full
+        trigger_i              : IN     std_logic ;                                         --! goes high TO load trigger data. One cycle of clk_4x_logic
+        trigger_times_i        : IN     t_triggerTimeArray (g_NUM_TRIG_INPUTS-1 DOWNTO 0);  --! Array of trigger times ( w.r.t. logic_strobe)
+        trigger_inputs_fired_i : IN     std_logic_vector (g_NUM_TRIG_INPUTS-1 DOWNTO 0);    --! high for each input that "fired"
+        trigger_cnt_i          : IN     std_logic_vector (g_COUNTER_TRIG_WIDTH-1 DOWNTO 0); --! Trigger count
+        shutter_i              : IN     std_logic ;
+        shutter_cnt_i          : IN     std_logic_vector (g_COUNTER_WIDTH-1 DOWNTO 0);
+        spill_i                : IN     std_logic ;
+        spill_cnt_i            : IN     std_logic_vector (g_COUNTER_WIDTH-1 DOWNTO 0);
+        edge_rise_i            : IN     std_logic_vector (g_NUM_EDGE_INPUTS-1 DOWNTO 0);    --! High when rising edge
+        edge_fall_i            : IN     std_logic_vector (g_NUM_EDGE_INPUTS-1 DOWNTO 0);    --! High when falling edge
+        edge_rise_time_i       : IN     t_triggerTimeArray (g_NUM_EDGE_INPUTS-1 DOWNTO 0);  --! Array of edge times ( w.r.t. logic_strobe)
+        edge_fall_time_i       : IN     t_triggerTimeArray (g_NUM_EDGE_INPUTS-1 DOWNTO 0);  --! Array of edge times ( w.r.t. logic_strobe)
+        ipbus_i                : IN     ipb_wbus ;
+        ipbus_o                : OUT    ipb_rbus ;
+        data_strobe_o          : OUT    std_logic ;                                         --! goes high when data ready TO load into event buffer
+        event_data_o           : OUT    std_logic_vector (g_EVENT_DATA_WIDTH-1 DOWNTO 0);
+        reset_timestamp_i      : IN     std_logic ;                                         --! Taking high causes timestamp TO be reset. Combined with internal timestmap reset and written to reset_timestamp_o
+        reset_timestamp_o      : OUT    std_logic                                           --! Goes high for one clock cycle of clk_4x_logic when timestamp reset
+    );
+    END COMPONENT eventFormatter;   
+----------------------------------------------
+----------------------------------------------
+    COMPONENT logic_clocks
+    GENERIC (
+        g_USE_EXTERNAL_CLK : integer := 1
+    );
+    PORT (
+        ipbus_clk_i           : IN     std_logic ;
+        ipbus_i               : IN     ipb_wbus ;
+        ipbus_reset_i         : IN     std_logic ;
+        Reset_i               : IN     std_logic ;
+        clk_logic_xtal_i      : IN     std_logic ; -- ! 40MHz clock from onboard xtal
+        clk_8x_logic_o       : OUT    std_logic ; -- 640MHz clock
+        clk_4x_logic_o        : OUT    std_logic ; -- 160MHz clock
+        ipbus_o               : OUT    ipb_rbus ;
+        strobe_8x_logic_o    : OUT    std_logic ; -- strobes once every 4 cycles of clk_16x
+        strobe_4x_logic_o     : OUT    std_logic ; -- one pulse every 4 cycles of clk_4x
+        --extclk_p_b            : INOUT  std_logic ; -- either external clock in, or a clock being driven out
+        --extclk_n_b            : INOUT  std_logic ;
+        DUT_clk_o             : OUT    std_logic ;
+        logic_clocks_locked_o : OUT    std_logic ;
+        logic_reset_o         : OUT    std_logic   -- Goes high TO reset counters etc. Sync with clk_4x_logic
+    );
+    END COMPONENT logic_clocks;
+----------------------------------------------
+----------------------------------------------
+    COMPONENT triggerInputs_newTLU
+    GENERIC (
+        g_NUM_INPUTS  : natural  := 1;
+        g_IPBUS_WIDTH : positive := 32
+    );
+    PORT (
+        --cfd_discr_p_i        : IN     std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);        --! Inputs from constant-fraction discriminators
+        --cfd_discr_n_i        : IN     std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);        --! Input from CFD
+        clk_4x_logic         : IN     std_logic ;                                        --! Rising edge active. By default = 4*40MHz = 160MHz
+        clk_200_i : IN     std_logic ;
+        strobe_4x_logic_i    : IN     std_logic ;                                        --! Pulses high once every 4 cycles of clk_4x_logic
+        threshold_discr_p_i  : IN     std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);        --! inputs from threshold comparators
+        threshold_discr_n_i  : IN     std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);        --! inputs from threshold comparators
+        reset_i              : IN     std_logic ;
+        trigger_times_o      : OUT    t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);      --! trigger arrival time ( w.r.t. logic_strobe)
+        trigger_o            : OUT    std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);        --!  Goes high on leading edge of trigger, in sync with clk_4x_logic_i
+        --trigger_debug_o      : OUT    std_logic_vector ( ((2*g_NUM_INPUTS)-1) DOWNTO 0); --! Copy of input trigger level. High bits CFD, Low threshold
+        edge_rising_times_o  : OUT    t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);      --! edge arrival time ( w.r.t. logic_strobe)
+        edge_falling_times_o : OUT    t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);      --! edge arrival time ( w.r.t. logic_strobe)
+        edge_rising_o        : OUT    std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);        --! High when rising edge. Syncronous with clk_4x_logic_i
+        edge_falling_o       : OUT    std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);        --! High when falling edge
+        ipbus_clk_i          : IN     std_logic ;
+        ipbus_reset_i        : IN     std_logic ;
+        ipbus_i              : IN     ipb_wbus ;                                         --! Signals from IPBus core TO slave
+        ipbus_o              : OUT    ipb_rbus ;                                         --! signals from slave TO IPBus core
+        clk_8x_logic_i      : IN     std_logic ;                                        --! 640MHz clock ( 16x 40MHz )
+        strobe_8x_logic_i   : IN     std_logic                                          --! Pulses one cycle every 4 of 8x clock.
+    );
+    END COMPONENT triggerInputs_newTLU;
+----------------------------------------------
+----------------------------------------------
+    COMPONENT triggerLogic
+    GENERIC (
+        g_NUM_INPUTS  : positive := 4;
+        g_IPBUS_WIDTH : positive := 32
+    );
+    PORT (
+        clk_4x_logic_i      : IN     std_logic ;                                   -- ! Rising edge active
+        ipbus_clk_i         : IN     std_logic ;
+        ipbus_i             : IN     ipb_wbus ;                                    -- Signals from IPBus core TO slave
+        ipbus_reset_i       : IN     std_logic ;
+        logic_reset_i       : IN     std_logic ;                                   -- active high. Synchronous with clk_4x_logic
+        logic_strobe_i      : IN     std_logic ;                                   -- ! Pulses high once every 4 cycles of clk_4x_logic
+        trigger_i           : IN     std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);   -- ! High when trigger from input connector active
+        trigger_times_i     : IN     t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0); --! trigger arrival time
+        veto_i              : IN     std_logic ;                                   -- ! Halts triggers when high
+        trigger_o           : OUT    std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);   -- ! High when trigger from input connector active and enabled
+        trigger_times_o     : OUT    t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0); --! trigger arrival time
+        event_number_o      : OUT    std_logic_vector (g_IPBUS_WIDTH-1 DOWNTO 0);  -- starts at one. Increments for each post_veto_trigger
+        ipbus_o             : OUT    ipb_rbus ;                                    -- signals from slave TO IPBus core
+        post_veto_trigger_o : OUT    std_logic ;                                   -- ! goes high when trigger passes
+        pre_veto_trigger_o  : OUT    std_logic ;
+        trigger_active_o    : OUT    std_logic                                     --! Goes high when triggers are active ( ie. not veoted)
+    );
+    END COMPONENT triggerLogic;
+    
+    COMPONENT i2c_master
+        PORT (
+           i2c_scl_i     : IN     std_logic;
+           i2c_sda_i     : IN     std_logic;
+           ipbus_clk_i   : IN     std_logic;
+           ipbus_i       : IN     ipb_wbus;
+           ipbus_reset_i : IN     std_logic;
+           i2c_scl_enb_o : OUT    std_logic;
+           i2c_sda_enb_o : OUT    std_logic;
+           ipbus_o       : OUT    ipb_rbus
+    );
+    END COMPONENT i2c_master;
+    
+    component clk_wiz_0
+    port
+     (-- Clock in ports
+      clk_in1           : in     std_logic;
+      -- Clock out ports
+      clk_out1          : out    std_logic;
+      -- Status and control signals
+      reset             : in     std_logic;
+      locked            : out    std_logic
+     );
+    end component;
+    
+
+    -- Optional embedded configurations
+    -- pragma synthesis_off
+    FOR ALL : DUTInterfaces USE ENTITY work.DUTInterfaces;
+    --FOR ALL : IPBusInterface USE ENTITY work.IPBusInterface;
+    FOR ALL : T0_Shutter_Iface USE ENTITY work.T0_Shutter_Iface;
+    FOR ALL : eventBuffer USE ENTITY work.eventBuffer;
+    FOR ALL : eventFormatter USE ENTITY work.eventFormatter;
+    FOR ALL : i2c_master USE ENTITY work.i2c_master;--<P
+    FOR ALL : logic_clocks USE ENTITY work.logic_clocks;
+    FOR ALL : triggerInputs_newTLU USE ENTITY work.triggerInputs_newTLU;
+    FOR ALL : triggerLogic USE ENTITY work.triggerLogic;
+    -- pragma synthesis_on 
+      	
+begin
+    
+--led_iic_test <= iic_test;
+
+--Implicit instantiation of output tristate buffers.
+    i2c_scl_b <= '0' when (s_i2c_scl_enb = '0') else 'Z';
+    i2c_sda_b <= '0' when (s_i2c_sda_enb = '0') else 'Z';
+
+    
+    
+    -- Infrastructure
+    -- ModuleWare code(v1.12) for instance 'I9' of 'gnd'
+    logic_clocks_reset <= '0';
+    -- ModuleWare code(v1.12) for instance 'I11' of 'gnd'
+    spill_i <= '0';
+    -- ModuleWare code(v1.12) for instance 'I12' of 'gnd'
+    spill_cnt_i <= (OTHERS => '0');
+    -- ModuleWare code(v1.12) for instance 'I13' of 'gnd'
+    shutter_i <= '0';
+    -- ModuleWare code(v1.12) for instance 'I14' of 'gnd'
+    shutter_cnt_i <= (OTHERS => '0');
+    -- ModuleWare code(v1.12) for instance 'I17' of 'gnd'
+    dout1 <= '0';
+    -- ModuleWare code(v1.12) for instance 'I18' of 'gnd'
+    dout <= '0';
+    -- ModuleWare code(v1.12) for instance 'I19' of 'merge'
+    --gpio_hdr <= dout1 & dout & s_shutter & T0_o;
+    -- ModuleWare code(v1.12) for instance 'I8' of 'sor'
+    overall_veto <= buffer_full_o OR veto_o;
+    -- ModuleWare code(v1.12) for instance 'I16' of 'sor'
+    s_triggerLogic_reset <= logic_reset OR T0_o;
+
+    i2c_reset <= '1';
+    clk_gen_rst <= '1';
+    ---gpio <= strobe_8x_logic;---
+    gpio <= veto_o;---
+    --gpio <= busy_i(1);---
+    
+    --Set diff clock out to 0 because we cannot have the correct differential voltage output
+    sysclk_50_o_p <= '0';
+    sysclk_50_o_n <= '0';
+    --Set busy_o to 0 for now
+    busy_o <= std_logic_vector(to_unsigned(0,    busy_o'length));
+    --sysclk_40_o_p <= sysclk;
+
+------------------------------------------
+	infra: entity work.enclustra_ax3_pm3_infra
+		port map(
+			sysclk => clk_encl_buf,
+			clk_ipb_o => clk_ipb,
+			rst_ipb_o => rst_ipb,
+			rst_125_o => phy_rst_e,
+			clk_200_o => clk_200,
+			nuke => nuke,
+			soft_rst => soft_rst,
+			leds => inf_leds,
+			rgmii_txd => rgmii_txd,
+			rgmii_tx_ctl => rgmii_tx_ctl,
+			rgmii_txc => rgmii_txc,
+			rgmii_rxd => rgmii_rxd,
+			rgmii_rx_ctl => rgmii_rx_ctl,
+			rgmii_rxc => rgmii_rxc,
+			mac_addr => mac_addr,
+			ip_addr => ip_addr,
+			ipb_in => ipb_in,
+			ipb_out => ipb_out
+		);
+		
+	--leds <= not ('0' & userled & inf_leds); -- Check this.
+	phy_rstn <= not phy_rst_e;
+		
+--	mac_addr <= X"020ddba1151" & dip_sw; -- Careful here, arbitrary addresses do not always work
+--	ip_addr <= X"c0a8c81" & dip_sw; -- 192.168.200.16+n
+	mac_addr <= X"020ddba1151e"; -- Careful here, arbitrary addresses do not always work
+	ip_addr <= X"c0a8c81e"; -- 192.168.200.16+n
+
+------------------------------------------
+    I1 : entity work.ipbus_ctrlreg_v
+    port map(
+        clk => clk_ipb,
+        reset => rst_ipb,
+        ipbus_in => ipbww(N_SLV_CTRL_REG),
+        ipbus_out => ipbrr(N_SLV_CTRL_REG),
+        d => stat,
+        q => ctrl
+    );
+    stat(0) <= std_logic_vector(FW_VERSION);-- <-Let's use this as firmware revision number
+    soft_rst <= ctrl(0)(0);
+    nuke <= ctrl(0)(1);
+    
+------------------------------------------
+	I2 : entity work.ipbus_fabric_sel
+    generic map(
+    	NSLV => N_SLAVES,
+    	SEL_WIDTH => IPBUS_SEL_WIDTH)
+    port map(
+      ipb_in => ipb_out,
+      ipb_out => ipb_in,
+      sel => ipbus_sel_ipbus_example(ipb_out.ipb_addr),
+      ipb_to_slaves => ipbww,
+      ipb_from_slaves => ipbrr
+    );
+
+------------------------------------------
+    I3 : i2c_master
+    PORT MAP (
+        i2c_scl_i     => i2c_scl_b,
+        i2c_sda_i     => i2c_sda_b,
+        ipbus_clk_i   => clk_ipb,
+        ipbus_i       => ipbww(N_SLV_I2C_0),
+        ipbus_reset_i => rst_ipb,
+        i2c_scl_enb_o => s_i2c_scl_enb,
+        i2c_sda_enb_o => s_i2c_sda_enb,
+        ipbus_o       => ipbrr(N_SLV_I2C_0)
+    );
+    
+----------------------------------------------
+    I4 : logic_clocks
+    GENERIC MAP (
+        g_USE_EXTERNAL_CLK => 0
+    )
+    PORT MAP (
+        ipbus_clk_i           => clk_ipb,
+        ipbus_i               => ipbww(N_SLV_LGCCLK),
+        ipbus_reset_i         => rst_ipb,
+        Reset_i               => logic_clocks_reset,
+        clk_logic_xtal_i      => sysclk_40, -- Not sure this is correct
+        clk_8x_logic_o       => clk_8x_logic,
+        clk_4x_logic_o        => clk_4x_logic,
+        ipbus_o               => ipbrr(N_SLV_LGCCLK),
+        strobe_8x_logic_o    => strobe_8x_logic,
+        strobe_4x_logic_o     => strobe_4x_logic,
+        DUT_clk_o             => open,
+        logic_clocks_locked_o => leds(3),
+        logic_reset_o         => logic_reset
+    );    
+
+----------------------------------------------
+    I5 : triggerInputs_newTLU 
+    GENERIC MAP (
+        g_NUM_INPUTS  => g_NUM_TRIG_INPUTS,
+        g_IPBUS_WIDTH => 32
+    )
+    PORT MAP (
+        clk_4x_logic         => clk_4x_logic,
+        clk_200_i => clk_200,
+        strobe_4x_logic_i    => strobe_4x_logic,
+        threshold_discr_p_i  => threshold_discr_p_i,
+        threshold_discr_n_i  => threshold_discr_n_i,
+        reset_i              => logic_reset,
+        trigger_times_o      => trigger_times,
+        trigger_o            => triggers,
+        --trigger_debug_o      => OPEN,
+        edge_rising_times_o  => s_edge_rise_times,
+        edge_falling_times_o => s_edge_fall_times,
+        edge_rising_o        => s_edge_rising,
+        edge_falling_o       => s_edge_falling,
+        ipbus_clk_i          => clk_ipb,
+        ipbus_reset_i        => rst_ipb,
+        ipbus_i              => ipbww(N_SLV_TRGIN),
+        ipbus_o              => ipbrr(N_SLV_TRGIN),
+        clk_8x_logic_i      => clk_8x_logic,
+        strobe_8x_logic_i   => strobe_8x_logic
+    );
+
+------------------------------------------      
+    I6 : eventFormatter
+    GENERIC MAP (
+        g_EVENT_DATA_WIDTH   => g_EVENT_DATA_WIDTH,
+        g_IPBUS_WIDTH        => g_IPBUS_WIDTH,
+        g_COUNTER_TRIG_WIDTH => g_IPBUS_WIDTH,
+        g_COUNTER_WIDTH      => 12,
+        g_EVTTYPE_WIDTH      => 4,                         --! Width of the event type word
+        --g_NUM_INPUT_TYPES     : positive := 4;               -- Number of different input types (trigger, shutter, edge...)
+        g_NUM_EDGE_INPUTS    => g_NUM_EDGE_INPUTS,         --! Number of edge inputs
+        g_NUM_TRIG_INPUTS    => g_NUM_TRIG_INPUTS          --! Number of trigger inputs
+    )
+    PORT MAP (
+        clk_4x_logic_i         => clk_4x_logic,
+        ipbus_clk_i            => clk_ipb,
+        logic_strobe_i         => strobe_4x_logic,
+        logic_reset_i          => logic_reset,
+        rst_fifo_i             => rst_fifo_o,
+        buffer_full_i          => buffer_full_o,
+        trigger_i              => overall_trigger,
+        trigger_times_i        => postVetoTrigger_times,
+        trigger_inputs_fired_i => postVetotrigger,
+        trigger_cnt_i          => trigger_count,
+        shutter_i              => shutter_i,
+        shutter_cnt_i          => shutter_cnt_i,
+        spill_i                => spill_i,
+        spill_cnt_i            => spill_cnt_i,
+        edge_rise_i            => s_edge_rising,
+        edge_fall_i            => s_edge_falling,
+        edge_rise_time_i       => s_edge_rise_times,
+        edge_fall_time_i       => s_edge_fall_times,
+        ipbus_i                => ipbww(N_SLV_EVFMT),
+        ipbus_o                => ipbrr(N_SLV_EVFMT),
+        data_strobe_o          => data_strobe,
+        event_data_o           => event_data,
+        reset_timestamp_i      => T0_o,
+        reset_timestamp_o      => OPEN
+    );
+
+------------------------------------------
+    I7 : eventBuffer
+    GENERIC MAP (
+        g_EVENT_DATA_WIDTH   => g_EVENT_DATA_WIDTH,
+        g_IPBUS_WIDTH        => g_IPBUS_WIDTH,
+        g_READ_COUNTER_WIDTH => 14
+        
+    )
+    PORT MAP (
+        clk_4x_logic_i    => clk_4x_logic,
+        data_strobe_i     => data_strobe,
+        event_data_i      => event_data,
+        ipbus_clk_i       => clk_ipb,
+        ipbus_i           => ipbww(N_SLV_EVBUF),
+        ipbus_reset_i     => rst_ipb,
+        strobe_4x_logic_i => strobe_4x_logic,
+        rst_fifo_o        => rst_fifo_o,
+        buffer_full_o     => buffer_full_o,
+        ipbus_o           => ipbrr(N_SLV_EVBUF),
+        logic_reset_i     => logic_reset
+    );
+    
+------------------------------------------
+    I8 : T0_Shutter_Iface
+    PORT MAP (
+        clk_4x_i      => clk_4x_logic,
+        clk_4x_strobe => strobe_4x_logic,
+        T0_o          => T0_o,
+        shutter_o     => s_shutter,
+        ipbus_clk_i   => clk_ipb,
+        ipbus_i       => ipbww(N_SLV_SHUT),
+        ipbus_o       => ipbrr(N_SLV_SHUT)
+    );
+
+------------------------------------------
+    I9 : DUTInterfaces
+    GENERIC MAP (
+        g_NUM_DUTS    => g_NUM_DUTS,
+        g_IPBUS_WIDTH => g_IPBUS_WIDTH
+    )
+    PORT MAP (
+         clk_4x_logic_i          => clk_4x_logic,
+         strobe_4x_logic_i       => strobe_4x_logic,
+         trigger_counter_i       => trigger_count,
+         trigger_i               => overall_trigger,
+         reset_or_clk_to_dut_i   => T0_o,
+         shutter_to_dut_i        => s_shutter,
+         ipbus_clk_i             => clk_ipb,
+         ipbus_i                 => ipbww(N_SLV_DUT),
+         ipbus_reset_i           => rst_ipb,
+         ipbus_o                 => ipbrr(N_SLV_DUT),
+         busy_from_dut       => busy_i,
+         busy_to_dut        => open,
+         clk_from_dut => dut_clk_i,
+         clk_to_dut => dut_clk_o,
+         --reset_or_clk_to_dut_n_o => reset_or_clk_n_o,
+         --reset_or_clk_to_dut_p_o => reset_or_clk_p_o,
+         reset_to_dut => spare_o,
+         trigger_to_dut => triggers_o,
+         --shutter_to_dut_n_o      => shutter_to_dut_n_o,
+         --shutter_to_dut_p_o      => shutter_to_dut_p_o,
+         shutter_to_dut  => cont_o,
+         veto_o                  => veto_o
+    );
+    
+------------------------------------------ 
+        I10 : triggerLogic
+        GENERIC MAP (
+            g_NUM_INPUTS  => g_NUM_TRIG_INPUTS,
+            g_IPBUS_WIDTH => g_IPBUS_WIDTH
+        )
+        PORT MAP (
+            clk_4x_logic_i      => clk_4x_logic,
+            ipbus_clk_i         => clk_ipb,
+            ipbus_i             => ipbww(N_SLV_TRGLGC),
+            ipbus_reset_i       => rst_ipb,
+            logic_reset_i       => s_triggerLogic_reset,
+            logic_strobe_i      => strobe_4x_logic,
+            trigger_i           => triggers,
+            trigger_times_i     => trigger_times,
+            veto_i              => overall_veto,
+            trigger_o           => postVetotrigger,
+            trigger_times_o     => postVetoTrigger_times,
+            event_number_o      => trigger_count,
+            ipbus_o             => ipbrr(N_SLV_TRGLGC),
+            post_veto_trigger_o => overall_trigger,
+            pre_veto_trigger_o  => OPEN,
+            trigger_active_o    => leds(2)
+        );     
+         
+-------------TEST AREA------------    
+--    test0: entity work.test_inToOut
+--    port map(
+--        clk_in => clk_200,
+--        busy_in=> busy_i,
+--        control_in=> cont_i,
+--        trig_in=> triggers_i,
+--        clkDut_in=> dut_clk_i,
+--        spare_in=> spare_i,
+--        busy_out=> busy_o,
+--        control_out=> cont_o,
+--        trig_out=> triggers_o,
+--        clkDut_out=> dut_clk_o,
+--        spare_out=> spare_o
+--    );
+
+--    dutout0: entity work.DUTs_outputs
+--    port map(
+--        clk_in => clk_encl_buf, 
+--       d_clk_o => open, --dut_clk_o,
+--        d_trg_o => open, --triggers_o,
+--        d_busy_o => busy_o,
+--        d_cont_o => open, --cont_o,
+--        d_spare_o => open --spare_o
+--    );
+   
+--    clk50_o_fromEnclustra : clk_wiz_0
+--       port map ( 
+--       -- Clock in ports
+--       clk_in1 => clk_encl_buf, --sysclk_40,
+--      -- Clock out ports  
+--       clk_out1 => encl_clock50,
+--      -- Status and control signals                
+--       reset => '0',
+--       locked =>  open          
+--     );
+
+    
+----------------------------------------------
+
+
+
+
+
+
+
+
+
+
+    
+
+------------------------------------------      
+
+
+------------------------------------------
+    IBUFGDS_inst: IBUFGDS
+    generic map (
+        IBUF_LOW_PWR=> false
+    )
+    port map (
+        O => sysclk_40,
+        I => sysclk_40_i_p,
+        IB => sysclk_40_i_n
+    );
+    
+------------------------------------------
+    IBUFG_inst: IBUFG
+    port map (
+        O => clk_encl_buf,
+        I => clk_enclustra--sysclk
+    );    
+
+------------------------------------------
+-- Do not use this: we need differential 3.3 V, not available.
+--    OBUFDS_inst : OBUFDS
+--    generic map (
+--        SLEW => "FAST") -- Specify the output slew rate
+--    port map (
+--        O => sysclk_50_o_p, -- Diff_p output (connect directly to top-level port)
+--        OB => sysclk_50_o_n, -- Diff_n output (connect directly to top-level port)
+--        I => encl_clock50 -- Buffer input
+--    );
+    -- This might not work: these are just two single ended. If we remove R coupling maybe?
+    --sysclk_50_o_p <= encl_clock50;
+    --sysclk_50_o_n <= not encl_clock50;
+
+      
+
+
+end rtl;
diff --git a/legacy/TLU_v1e/hdl/trigger/IODELAYCal_FSM_rtl.vhd b/legacy/TLU_v1e/hdl/trigger/IODELAYCal_FSM_rtl.vhd
new file mode 100644
index 00000000..9d69931d
--- /dev/null
+++ b/legacy/TLU_v1e/hdl/trigger/IODELAYCal_FSM_rtl.vhd
@@ -0,0 +1,102 @@
+--=============================================================================
+--! @file IODELAYCal_FSM_rtl.vhd
+--=============================================================================
+--
+-------------------------------------------------------------------------------
+-- --
+-- UoB , USC
+-- --
+------------------------------------------------------------------------------- --
+--
+--! @brief Finite-state machine to control calibration and reset signals to
+--! Iserdes, IDelay
+--! based on code by Alvaro Dosil\n
+--
+--! @author  Alvaro Dosil 
+--
+--! @date 22/Feb/2014
+--
+--! @version v0.1
+--
+--! @details
+--
+-------------------------------------------------------------------------------
+--! \n\n<b>Last changes:</b>\n
+-------------------------------------------------------------------------------
+--! @todo Implement a periodic calibration sequence\n
+--! <another thing to do> \n
+
+  LIBRARY ieee;
+USE ieee.std_logic_1164.all;
+
+entity IODELAYCal_FSM is
+	port (
+		clk_i 		: in std_logic;		--! Global clock
+		startcal_i 	: in std_logic;      --! Start calibration
+		busy_i 		: in std_logic;     	--! Status of the IDELAY component
+		calibrate_o : out std_logic;     --! Calibration signals to IODELAY
+		reset_o 		: out std_logic  		--! Reset to IODELAY component
+    );
+end entity IODELAYCal_FSM;
+
+architecture rtl of IODELAYCal_FSM is
+
+  --! Calibration FSM state values
+  type state_values is (st0, st1, st2, st3);
+  signal pres_state, next_state: state_values := st0;
+  
+	signal s_cal_FSM      : std_logic := '0';         -- IODELAY reset
+  signal s_rst_FSM      : std_logic := '0';         -- IODELAY reset
+  
+begin  -- rtl
+
+  --! Calibration FSM register
+  statereg: process(clk_i)
+  begin
+    if rising_edge(clk_i) then
+      pres_state <= next_state;     -- Move to next state
+      
+    end if;
+  end process statereg;
+
+
+  --! Calibration FSM combinational block
+  fsm: process(pres_state, startcal_i, busy_i)
+  begin
+    next_state <= pres_state;
+    -- Default values
+    s_Rst_FSM <= '0';
+    s_cal_FSM <= '0';
+    
+    case pres_state is
+      
+      -- st0 - IDLE
+      when st0=>
+        if ( startcal_i = '1') then 
+          next_state <= st1;            -- Next state is "st1 - SEND CALIBRATION SIGNAL"
+        end if;
+        
+      -- st1 - SEND CALIBRATION SIGNAL
+      when st1=>
+        s_cal_FSM <= '1';
+		  next_state <= st2;            -- Next state is "st2 - WAIT BUSY = '0'"
+        
+      -- st2 - WAIT BUSY = '0'
+      when st2=>
+        if busy_i = '0' then 
+          next_state <= st3;            -- Next state is "st3 - RESET STATE"
+        end if;
+        
+        -- st3 - RESET STATE
+      when st3=>
+        s_Rst_FSM <= '1';
+		  next_state <= st0;              -- Next state is "st0 - IDLE"
+		
+    end case;
+    
+  end process fsm;
+
+  calibrate_o <= s_cal_FSM;
+  reset_o <= s_Rst_FSM;
+                
+end rtl;
diff --git a/legacy/TLU_v1e/hdl/trigger/arrivalTimeLUT_rtl.vhd b/legacy/TLU_v1e/hdl/trigger/arrivalTimeLUT_rtl.vhd
new file mode 100644
index 00000000..f1b1acc0
--- /dev/null
+++ b/legacy/TLU_v1e/hdl/trigger/arrivalTimeLUT_rtl.vhd
@@ -0,0 +1,187 @@
+--=============================================================================
+--! @file arrivalTimeLUT_rtl.vhd
+--=============================================================================
+--
+-------------------------------------------------------------------------------
+-- --
+-- University of Bristol, High Energy Physics Group.
+-- --
+------------------------------------------------------------------------------- --
+-- VHDL Architecture work.ArivalTimeLUT.rtl
+--
+--------------------------------------------------------------------------------
+-- 
+-- Created using using Mentor Graphics HDL Designer(TM) 2010.3 (Build 21)
+--
+LIBRARY ieee;
+USE ieee.std_logic_1164.all;
+USE ieee.numeric_std.all;
+
+--! @brief Uses a look-up-table to convert the eight bits from the two 1:4 deserializers\n
+--! into a 5-bit time ( 3 bits from the position in 8-bit deserialized data \n
+--! plus two bits from position w.r.t. the strobe_4x_logic_i signal ( one pulse
+--! every 4 cycles of clk_4x_logic_i 
+--
+--! @author David Cussans , David.Cussans@bristol.ac.uk
+--
+--! @date 12:46:34 11/21/12
+--
+--! @version v0.1
+--
+--! @details
+--! Rising and falling edge times encoded as a LUT. Contents:
+--! MRFrrrfff
+--! \li M = multiple edges present ( more than one rising or falling edge)
+--! \li R = at least one rising edge present
+--! \li F = at least one falling edge present.
+--! \li rrr = time of first rising edge
+--! \li fff = time of first falling edge
+ENTITY arrivalTimeLUT IS
+   GENERIC( 
+      g_NUM_FINE_BITS   : positive := 3;
+      g_NUM_COARSE_BITS : positive := 2
+   );
+   PORT( 
+      clk_4x_logic_i           : IN     std_logic;                                                        --! Rising edge active
+      strobe_4x_logic_i        : IN     std_logic;                                                        --! Pulses high once every 4 cycles of clk_4x_logic
+      deserialized_data_i      : IN     std_logic_vector (8 DOWNTO 0);                                    --! Output from the two 4-bit deserializers, concatenated with most recent bit of previous clock cycle. Clocked by clk_4x_logic_i . bit-8 is the most recent data
+      first_rising_edge_time_o : OUT    std_logic_vector (g_NUM_FINE_BITS+g_NUM_COARSE_BITS-1 DOWNTO 0);  --! Position of rising edge w.r.t. 40MHz strobe. Clocked by clk_4x_logic_i
+      last_falling_edge_time_o : OUT    std_logic_vector (g_NUM_FINE_BITS+g_NUM_COARSE_BITS-1 DOWNTO 0);  --! Position of rising edge w.r.t. 40MHz strobe. Clocked by clk_4x_logic_i
+      rising_edge_o            : OUT    std_logic;                                                        --! goes high if there is a rising edge in the data. Clocked by clk_4x_logic_i
+      falling_edge_o           : OUT    std_logic;                                                        --! goes high if there is a falling edge in the data.Clocked by clk_4x_logic_i
+      multiple_edges_o         : OUT    std_logic                                                         --! there is more than one rising or falling edge transition.
+   );
+
+-- Declarations
+
+END ENTITY arrivalTimeLUT ;
+
+--
+ARCHITECTURE rtl OF arrivalTimeLUT IS
+
+  constant c_FALLING_EDGE_BIT : positive := 2*g_NUM_FINE_BITS;  --! Bit position of bit set when falling edge detected
+  constant c_RISING_EDGE_BIT : positive :=  2*g_NUM_FINE_BITS+1;  --! Bit position of bit set when rising edge detected
+  constant c_MULTI_EDGE_BIT : positive :=  2*g_NUM_FINE_BITS+2;  --! Bit position of bit set when rising edge detected
+
+
+  signal s_coarse_bits : std_logic_vector(g_NUM_COARSE_BITS-1 downto 0) := "00";  --! phase w.r.t. strobe
+
+  signal s_LUT_ENTRY : std_logic_vector(g_NUM_FINE_BITS*2 +3-1 downto 0);  -- stores intermediate LUT value.
+  
+  type t_LUT is array (natural range <>) of std_logic_vector(g_NUM_FINE_BITS*2 + 3 -1 downto 0);
+  --! Lookup table for arrival time and rising/falling edge detection (3bits
+  --! for position in 9-bit deserialized data plus two bits for rising/falling 
+  constant c_LUT : t_LUT(0 to 511) := (
+    "000000000", "001000000", "011000001", "001000001", "011001010", "011001010", "011000010", "001000010", --0 [0, 7]
+    "011010011", "011010011", "111000011", "011010011", "011001011", "011001011", "011000011", "001000011", --1 [8, 15]
+    "011011100", "011011100", "111000100", "011011100", "111001100", "111001100", "111000100", "011011100", --2 [16, 23]
+    "011010100", "011010100", "111000100", "011010100", "011001100", "011001100", "011000100", "001000100", --3 [24, 31]
+    "011100101", "011100101", "111000101", "011100101", "111001101", "111001101", "111000101", "011100101", --4 [32, 39]
+    "111010101", "111010101", "111000101", "111010101", "111001101", "111001101", "111000101", "011100101", --5 [40, 47]
+    "011011101", "011011101", "111000101", "011011101", "111001101", "111001101", "111000101", "011011101", --6 [48, 55]
+    "011010101", "011010101", "111000101", "011010101", "011001101", "011001101", "011000101", "001000101", --7 [56, 63]
+    "011101110", "011101110", "111000110", "011101110", "111001110", "111001110", "111000110", "011101110", --8 [64, 71]
+    "111010110", "111010110", "111000110", "111010110", "111001110", "111001110", "111000110", "011101110", --9 [72, 79]
+    "111011110", "111011110", "111000110", "111011110", "111001110", "111001110", "111000110", "111011110", --10 [80, 87]
+    "111010110", "111010110", "111000110", "111010110", "111001110", "111001110", "111000110", "011101110", --11 [88, 95]
+    "011100110", "011100110", "111000110", "011100110", "111001110", "111001110", "111000110", "011100110", --12 [96, 103]
+    "111010110", "111010110", "111000110", "111010110", "111001110", "111001110", "111000110", "011100110", --13 [104, 111]
+    "011011110", "011011110", "111000110", "011011110", "111001110", "111001110", "111000110", "011011110", --14 [112, 119]
+    "011010110", "011010110", "111000110", "011010110", "011001110", "011001110", "011000110", "001000110", --15 [120, 127]
+    "011110111", "011110111", "111000111", "011110111", "111001111", "111001111", "111000111", "011110111", --16 [128, 135]
+    "111010111", "111010111", "111000111", "111010111", "111001111", "111001111", "111000111", "011110111", --17 [136, 143]
+    "111011111", "111011111", "111000111", "111011111", "111001111", "111001111", "111000111", "111011111", --18 [144, 152]
+    "111010111", "111010111", "111000111", "111010111", "111001111", "111001111", "111000111", "011110111", --19 [152, 159]
+    "111100111", "111100111", "111000111", "111100111", "111001111", "111001111", "111000111", "111100111", --20 [160, 167]
+    "111010111", "111010111", "111000111", "111010111", "111001111", "111001111", "111000111", "111100111", --21 [168, 175]
+    "111011111", "111011111", "111000111", "111011111", "111001111", "111001111", "111000111", "111011111", --22 [176, 183]
+    "111010111", "111010111", "111000111", "111010111", "111001111", "111001111", "111000111", "011110111", --23 [184, 191]
+    "011101111", "011101111", "111000111", "011101111", "111001111", "111001111", "111000111", "011101111", --24 [192, 199]
+    "111010111", "111010111", "111000111", "111010111", "111001111", "111001111", "111000111", "011101111", --25 [200, 207]
+    "111011111", "111011111", "111000111", "111011111", "111001111", "111001111", "111000111", "111011111", --26 [208, 215]
+    "111010111", "111010111", "111000111", "111010111", "111001111", "111001111", "111000111", "011101111", --27 [216, 223]
+    "011100111", "011100111", "111000111", "011100111", "111001111", "111001111", "111000111", "011100111", --28 [224, 231]
+    "111010111", "111010111", "111000111", "111010111", "111001111", "111001111", "111000111", "011100111", --29 [232, 239]
+    "011011111", "011011111", "111000111", "011011111", "111001111", "111001111", "111000111", "011011111", --30 [240, 247]
+    "011010111", "011010111", "111000111", "011010111", "011001111", "011001111", "011000111", "001000111", --31 [248, 255]
+    "010111000", "011111000", "111000001", "011111001", "111001010", "111001010", "111000010", "011111010", --32 [256, 263]
+    "111010011", "111010011", "111000011", "111010011", "111001011", "111001011", "111000011", "011111011", --33 [264, 271]
+    "111011100", "111011100", "111000100", "111011100", "111001100", "111001100", "111000100", "111011100", --34 [272, 279]
+    "111010100", "111010100", "111000100", "111010100", "111001100", "111001100", "111000100", "011111100", --35 [280, 287]
+    "111100101", "111100101", "111000101", "111100101", "111001101", "111001101", "111000101", "111100101", --36 [288, 295]
+    "111010101", "111010101", "111000101", "111010101", "111001101", "111001101", "111000101", "111100101", --37 [296, 303]
+    "111011101", "111011101", "111000101", "111011101", "111001101", "111001101", "111000101", "111011101", --38 [304, 311]
+    "111010101", "111010101", "111000101", "111010101", "111001101", "111001101", "111000101", "011111101", --39 [312, 319]
+    "111101110", "111101110", "111000110", "111101110", "111001110", "111001110", "111000110", "111101110", --40 [320, 327]
+    "111010110", "111010110", "111000110", "111010110", "111001110", "111001110", "111000110", "111101110", --41 [328, 333]
+    "111011110", "111011110", "111000110", "111011110", "111001110", "111001110", "111000110", "111011110", --42 [336, 343]
+    "111010110", "111010110", "111000110", "111010110", "111001110", "111001110", "111000110", "111101110", --43 [344, 351]
+    "111100110", "111100110", "111000110", "111100110", "111001110", "111001110", "111000110", "111100110", --44 [352, 359]
+    "111010110", "111010110", "111000110", "111010110", "111001110", "111001110", "111000110", "111100110", --45 [360, 367]
+    "111011110", "111011110", "111000110", "111011110", "111001110", "111001110", "111000110", "111011110", --46 [368, 375]
+    "111010110", "111010110", "111000110", "111010110", "111001110", "111001110", "111000110", "011111110", --47 [376, 383]
+    "010110000", "011110000", "111000001", "011110001", "111001010", "111001010", "111000010", "011110010", --48 [384, 391]
+    "111010011", "111010011", "111000011", "111010011", "111001011", "111001011", "111000011", "011110011", --49 [392, 399]
+    "111011100", "111011100", "111000100", "111011100", "111001100", "111001100", "111000100", "111011100", --50 [400, 407]
+    "111010100", "111010100", "111000100", "111010100", "111001100", "111001100", "111000100", "011110100", --51 [408, 415]
+    "111100101", "111100101", "111000101", "111100101", "111001101", "111001101", "111000101", "111100101", --52 [416, 423]
+    "111010101", "111010101", "111000101", "111010101", "111001101", "111001101", "111000101", "111100101", --53 [424, 431]
+    "111011101", "111011101", "111000101", "111011101", "111001101", "111001101", "111000101", "111011101", --54 [432, 439]
+    "111010101", "111010101", "111000101", "111010101", "111001101", "111001101", "111000101", "011110101", --55 [440, 447]
+    "010101000", "011101000", "111000001", "011101001", "111001010", "111001010", "111000010", "011101010", --56 [448, 455]
+    "111010011", "111010011", "111000011", "111010011", "111001011", "111001011", "111000011", "011101011", --57 [456, 463]
+    "111011100", "111011100", "111000100", "111011100", "111001100", "111001100", "111000100", "111011100", --58 [464, 471]
+    "111010100", "111010100", "111000100", "111010100", "111001100", "111001100", "111000100", "011101100", --59 [472, 479]
+    "010100000", "011100000", "111000001", "011100001", "111001010", "111001010", "111000010", "011100010", --60 [480, 487]
+    "111010011", "111010011", "111000011", "111010011", "111001011", "111001011", "111000011", "011100011", --61 [488, 495]
+    "010011000", "011011000", "111000001", "011011001", "111001010", "111001010", "111000010", "011011010", --62 [496, 503]
+    "010010000", "011010000", "111000001", "011010001", "010001000", "011001000", "010000000", "000000000" -- 63 [504, 511]
+    );  
+  
+BEGIN
+
+  -- purpose: uses the deserialized data as a index into
+  --          a lookup table holding the position of the first rising edge (if any)
+  --          and if there is a rising or falling edge
+  -- type   : combinational
+  -- inputs : clk_4x_logic_i
+  -- outputs: arrival_time_o , rising_edge_o , falling_edge_o
+  examine_lut: process (clk_4x_logic_i) -- , deserialized_data_i)
+--    variable v_LUT_entry : std_logic_vector(g_NUM_FINE_BITS+2-1 downto 0);  --! Entry in LUT pointed to by deserialized data
+  begin  -- process examine_lut
+    
+--    v_LUT_entry := c_LUT(to_integer(unsigned(deserialized_data_i)));
+
+    if rising_edge(clk_4x_logic_i) then
+      s_LUT_ENTRY <= c_LUT(to_integer(unsigned(deserialized_data_i)));
+      first_rising_edge_time_o <= s_coarse_bits & s_LUT_ENTRY(g_NUM_FINE_BITS*2-1 downto g_NUM_FINE_BITS);
+      last_falling_edge_time_o <= s_coarse_bits & s_LUT_ENTRY(g_NUM_FINE_BITS-1 downto 0);
+      rising_edge_o  <= s_LUT_ENTRY(c_RISING_EDGE_BIT);
+      falling_edge_o <= s_LUT_ENTRY(c_FALLING_EDGE_BIT);
+      multiple_edges_o <= s_LUT_ENTRY(c_MULTI_EDGE_BIT); 
+    end if;
+
+  end process examine_lut;
+  
+  --! Coarse time stamp. Phase w.r.t. strobe
+--	c_coarse_ts : entity work.CounterUp
+--   PORT MAP (
+--     clk   => clk_4x_logic_i,
+--     ce    => '1',
+--     sinit => strobe_4x_logic_i, --'0',
+--	  q(31 downto 2) => open,
+--     q(1 downto 0)  => s_coarse_bits
+--	);
+--  
+  	c_coarse_ts : entity work.CounterWithReset
+  	GENERIC MAP (
+  	  g_COUNTER_WIDTH => 2 )
+   PORT MAP (
+     clock_i   => clk_4x_logic_i,
+     enable_i   => '1',
+     reset_i => strobe_4x_logic_i,        -- Synchronous reset, so the counter will present result_o="11" when reset_i='1'
+     result_o => s_coarse_bits
+	);
+	
+END ARCHITECTURE rtl;
+
diff --git a/legacy/TLU_v1e/hdl/trigger/dualSERDES_1to4_rtl.vhd b/legacy/TLU_v1e/hdl/trigger/dualSERDES_1to4_rtl.vhd
new file mode 100644
index 00000000..dd090f4a
--- /dev/null
+++ b/legacy/TLU_v1e/hdl/trigger/dualSERDES_1to4_rtl.vhd
@@ -0,0 +1,421 @@
+--=============================================================================
+--! @file dualSERDES_1to4_rtl.vhd
+--=============================================================================
+--
+-------------------------------------------------------------------------------
+-- --
+-- University of Bristol, High Energy Physics Group.
+-- --
+------------------------------------------------------------------------------- --
+-- VHDL Architecture work.dualSERDES_1to4.rtl
+--
+-- 
+-- Created using using Mentor Graphics HDL Designer(TM) 2010.3 (Build 21)
+--
+LIBRARY ieee;
+USE ieee.std_logic_1164.all;
+USE ieee.numeric_std.all;
+
+library unisim ;
+use unisim.vcomponents.all;
+
+--! @brief Two 1:4 Deserializers. One has input delayed w.r.t. other
+--! based on TDC by Alvaro Dosil
+--
+--! @author David Cussans , David.Cussans@bristol.ac.uk
+--
+--! @date 12:06:53 11/16/12
+--
+--! @version v0.1
+--
+--! @details
+--! data_o(7) is the most recently arrived data , data_o(0) is the oldest data.
+--!
+--! <b>Modified by: Alvaro Dosil , alvaro.dosil@usc.es </b>\n
+--! Author: 
+-------------------------------------------------------------------------------
+--! \n\n<b>Last changes:</b>\n
+--! Separated FSM for calibration control into a separate entity. DGC, 22/Feb/14
+-------------------------------------------------------------------------------
+--! @todo Implement a periodic calibration sequence\n
+--
+--------------------------------------------------------------------------------
+
+ENTITY dualSERDES_1to4 IS
+   PORT( 
+      reset_i        : IN     std_logic;                      --! Resets  IODELAY
+      --calibrate_i    : IN     std_logic;                      --! Starts IODELAY calibration.
+      --data_i         : IN     std_logic;                      --! from input buffer.
+      data_i_pos     : IN     std_logic;                      --! from positive differential input pin 
+      data_i_neg     : IN     std_logic;                      --! from negative differential input pin 
+      fastClk_i      : IN     std_logic;                      --! 2x fabric clock. e.g. 320MHz
+      fabricClk_i    : IN     std_logic;                      --! clock for output to FPGA. e.g. 160MHz
+      strobe_i       : IN     std_logic;                      --! Strobes once every 4 cycles of fastClk
+      data_o         : OUT    std_logic_vector (7 DOWNTO 0);  --! Deserialized data. Interleaved between prompt and delayed  serdes.
+                                                              --! data_o(0) is the oldest data
+      status_o       : OUT    std_logic_vector(1 downto 0)    --! outputs from IODELAY "busy" 0=prompt,1=delayed
+   );
+
+-- Declarations
+
+
+END ENTITY dualSERDES_1to4 ;
+
+--
+ARCHITECTURE rtl OF dualSERDES_1to4 IS
+
+    constant c_S : positive := 4;                     -- ! SERDES division ratio
+
+    signal s_Data_i_d_p   : std_logic;
+    signal s_Data_i_d_d   : std_logic;
+    signal s_busy_idelay_p  : std_logic;              -- Busy from iodelay.
+    signal s_busy_idelay_d  : std_logic;              -- Busy from iodelay.
+    signal s_busy			  : std_logic;              -- Busy from the two iodelays.
+    signal s_data_o       : std_logic_vector(7 downto 0);  --! Deserialized data
+	signal s_cal			 : std_logic := '0'; 				--! Calibration signal
+	signal s_rst_cal		: std_logic := '0'; 				--! reset after calibration process
+    signal delay_val :std_logic_vector(4 downto 0);
+    signal prompt_val :std_logic_vector(4 downto 0);
+    signal delayed_out: std_logic_vector(4 downto 0);
+    signal prompt_out: std_logic_vector(4 downto 0);
+---------------------------------------------
+    component delayIO
+    generic
+    (-- width of the data for the system
+    SYS_W       : integer := 1;
+    -- width of the data for the device
+    DEV_W       : integer := 1);
+    port
+        (
+        -- From the system into the device
+        data_in_from_pins_p     : in    std_logic_vector(SYS_W-1 downto 0);
+        data_in_from_pins_n     : in    std_logic_vector(SYS_W-1 downto 0);
+        data_in_to_device       : out   std_logic_vector(DEV_W-1 downto 0);
+        
+        -- Input, Output delay control signals
+        delay_clk               : in    std_logic;
+        in_delay_reset          : in    std_logic;                    -- Active high synchronous reset for input delay
+        in_delay_data_ce        : in    std_logic_vector(SYS_W -1 downto 0);                    -- Enable signal for delay 
+        in_delay_data_inc       : in    std_logic_vector(SYS_W -1 downto 0);                    -- Delay increment (high), decrement (low) signal
+        delay_locked            : out   std_logic;                    -- Locked signal from IDELAYCTRL
+        ref_clock               : in    std_logic;                    -- Reference Clock for IDELAYCTRL. Has to come from BUFG.
+        
+        -- Clock and reset signals
+        clk_in                  : in    std_logic;                    -- Fast clock from PLL/MMCM 
+        clock_enable            : in    std_logic;
+        io_reset                : in    std_logic);                   -- Reset signal for IO circuit
+    end component;
+
+  
+BEGIN
+ 
+	-- IODELAYs calibration FSM
+	IODELAYCal: entity work.IODELAYCal_FSM
+    port map (
+        clk_i       => fabricClk_i,
+        startcal_i  => reset_i,
+        busy_i		=> s_busy,
+        calibrate_o     => s_cal,
+        reset_o         => s_rst_cal
+    );
+
+
+-----------------------------------------------------
+--    iodelay_prompt : delayIO
+--    port map 
+--    ( 
+--        data_in_from_pins_p(0) => data_i_pos,
+--        data_in_from_pins_n(0) => data_i_neg,
+--        data_in_to_device(0) => s_Data_i_d_p,
+--        delay_clk => fabricClk_i,
+--        in_delay_reset => '0',                    
+--        in_delay_data_ce(0) => '1',      
+--        in_delay_data_inc(0) => '0',     
+        
+--        delay_locked => open,                      
+--        ref_clock => fabricClk_i,                         
+--        clk_in => fastClk_i,                            
+--        clock_enable => '1',
+--        io_reset => s_rst_cal
+--    );
+    prompt_val <= "00000";
+
+    IDELAY2_Prompt : IDELAYE2
+    generic map (
+        IDELAY_TYPE => "VARIABLE",
+        DELAY_SRC => "IDATAIN",
+        SIGNAL_PATTERN => "DATA"
+    )
+    port map (
+        CNTVALUEOUT=> prompt_out,--5-bitoutput:Countervalueoutput
+        DATAOUT=> s_Data_i_d_p,    --1-bitoutput:Delayeddataoutput
+        C=> fabricClk_i,    --1-bitinput:Clockinput
+        CE=> '0',    --1-bitinput:Activehighenableincrement/decrementinput
+        CINVCTRL=> '0' ,--1-bitinput:Dynamicclockinversioninput
+        CNTVALUEIN=> prompt_val,--5-bitinput:Countervalueinput
+        DATAIN=> '0',    --1-bitinput:Internaldelaydatainput
+        IDATAIN => not data_i_neg, --- THIS MUST BE INVERTED!!!!
+        --IDATAIN=> data_i,    --1-bitinput:DatainputfromtheI/O
+        INC=> '0',    --1-bitinput:Increment/Decrementtapdelayinput
+        LD=> '0',    --1-bitinput:LoadIDELAY_VALUEinput
+        LDPIPEEN=> '0',--1-bitinput:EnablePIPELINEregistertoloaddatainput
+        REGRST=> s_rst_cal    --1-bitinput:Active-highresettap-delayinput
+    );
+    
+
+
+----IODELAY2 no longer valid. Replaced using IP delay (SelectIO interface wizard generated)
+--  IODELAY2_Prompt : IODELAY2
+--    generic map (
+--      COUNTER_WRAPAROUND => "STAY_AT_LIMIT" ,  -- "STAY_AT_LIMIT" or "WRAPAROUND" 
+--      DATA_RATE          => "SDR",            -- "SDR" or "DDR" 
+--      DELAY_SRC          => "IDATAIN",        -- "IO", "ODATAIN" or "IDATAIN" 
+--      SERDES_MODE        => "NONE", 			-- <NONE>, MASTER, SLAVE
+--      IDELAY_TYPE        => "VARIABLE_FROM_ZERO",
+--      IDELAY_VALUE     	=> 0                -- Amount of taps for fixed input delay (0-255)
+--      --SIM_TAPDELAY_VALUE=> 10               -- Per tap delay used for simulation in ps
+--      )
+--    port map (
+--      BUSY     => s_busy_idelay_p,      -- 1-bit output: Busy output after CAL
+--      DATAOUT  => s_Data_i_d_p,     -- 1-bit output: Delayed data output to ISERDES/input register
+--      DATAOUT2 => open,             -- 1-bit output: Delayed data output to general FPGA fabric
+--      DOUT     => open,             -- 1-bit output: Delayed data output
+--      TOUT     => open,             -- 1-bit output: Delayed 3-state output
+--      CAL      => s_cal,      		-- 1-bit input: Initiate calibration input
+--      CE       => '0',              -- 1-bit input: Enable INC input
+--      CLK      => fabricClk_i,      -- 1-bit input: Clock input
+--      IDATAIN  => data_i,           -- 1-bit input: Data input (connect to top-level port or I/O buffer)
+--      INC      => '0',              -- 1-bit input: Increment / decrement input
+--      IOCLK0   => fastClk_i,        -- 1-bit input: Input from the I/O clock network
+--      IOCLK1   => '0',              -- 1-bit input: Input from the I/O clock network
+--      ODATAIN  => '0',              -- 1-bit input: Output data input from output register or OSERDES2.
+--      RST      => s_rst_cal,            -- 1-bit input: reset_i to 1/2 of total delay period
+--      T        => '1'               -- 1-bit input: 3-state input signal
+--      );
+    
+    s_busy_idelay_p <= (prompt_val(0) XOR  prompt_out(0)) OR (prompt_val(1) XOR  prompt_out(1)) OR (prompt_val(2) XOR  prompt_out(2)) OR (prompt_val(3) XOR  prompt_out(3)) OR (prompt_val(4) XOR  prompt_out(4));
+	status_o(1) <= s_busy_idelay_p;
+
+--    iodelay_delay : delayIO
+--    port map 
+--    ( 
+--        data_in_from_pins_p(0) => data_i_pos,
+--        data_in_from_pins_n(0) => data_i_neg,
+--        data_in_to_device(0) => s_Data_i_d_d,
+--        delay_clk => fabricClk_i,
+--        in_delay_reset => '0',                    
+--        in_delay_data_ce(0) => '1',      
+--        in_delay_data_inc(0) => '0',     
+        
+--        delay_locked => open,                      
+--        ref_clock => fabricClk_i,                         
+--        clk_in => fastClk_i,                            
+--        clock_enable => '1',
+--        clk_out => open,
+--        io_reset => s_rst_cal
+--    );
+
+    -- This should be configurable via IPBus. For now fixed value. The tap value is 200 MHz (5 ns). We want
+    -- a quarter of the 320 MHz clock (3.125 ns) so 0.78125 ns, corresponding to 6 taps.
+    delay_val <= "00110";
+    --delay_val <= "00000";
+    
+    IDELAY2_Delayed : IDELAYE2
+    generic map (
+        --IDELAY_TYPE => "VARIABLE",
+        IDELAY_TYPE => "VAR_LOAD",
+        DELAY_SRC => "IDATAIN",
+        SIGNAL_PATTERN => "DATA"
+    )
+    port map (
+        CNTVALUEOUT=> delayed_out,--5-bitoutput:Countervalueoutput
+        DATAOUT=> s_Data_i_d_d,    --1-bitoutput:Delayeddataoutput
+        C=> fabricClk_i,    --1-bitinput:Clockinput
+        CE=> '0',    --1-bitinput:Activehighenableincrement/decrementinput
+        CINVCTRL=> '0' ,--1-bitinput:Dynamicclockinversioninput
+        CNTVALUEIN=> delay_val,--5-bitinput:Countervalueinput
+        DATAIN=> '0',    --1-bitinput:Internaldelaydatainput
+--        IDATAIN=> data_i,    --1-bitinput:DatainputfromtheI/O
+        IDATAIN => data_i_pos,
+        INC=> '0',    --1-bitinput:Increment/Decrementtapdelayinput
+        LD=> '1',    --1-bitinput:LoadIDELAY_VALUEinput
+        LDPIPEEN=> '0',--1-bitinput:EnablePIPELINEregistertoloaddatainput
+        REGRST=> s_rst_cal    --1-bitinput:Active-highresettap-delayinput
+    );
+        
+
+--    IODELAY2_Delayed : IODELAY2
+--    generic map (
+--        COUNTER_WRAPAROUND => "STAY_AT_LIMIT",  -- "STAY_AT_LIMIT" or "WRAPAROUND" 
+--        DATA_RATE          => "SDR",         -- "SDR" or "DDR" 
+--        DELAY_SRC          => "IDATAIN",     -- "IO", "ODATAIN" or "IDATAIN" 
+--        SERDES_MODE        => "NONE", 			-- <NONE>, MASTER, SLAVE
+--        IDELAY_TYPE        => "VARIABLE_FROM_HALF_MAX",
+--        IDELAY_VALUE       => 0,             -- Amount of taps for fixed input delay (0-255)
+--        IDELAY2_VALUE      => 0             	-- Delay value when IDELAY_MODE="PCI" (0-255)
+--    --SIM_TAPDELAY_VALUE => 10              -- Per tap delay used for simulation in ps
+--    )
+--    port map (
+--        BUSY     => s_busy_idelay_d,      -- 1-bit output: Busy output after CAL
+--        DATAOUT  => s_Data_i_d_d,     -- 1-bit output: Delayed data output to ISERDES/input register
+--        DATAOUT2 => open,             -- 1-bit output: Delayed data output to general FPGA fabric
+--        DOUT     => open,             -- 1-bit output: Delayed data output
+--        TOUT     => open,             -- 1-bit output: Delayed 3-state output
+--        CAL      => s_cal,      		-- 1-bit input: Initiate calibration input
+--        CE       => '0',              -- 1-bit input: Enable INC input
+--        CLK      => fabricClk_i,      -- 1-bit input: Clock input
+--        IDATAIN  => data_i,           -- 1-bit input: Data input (connect to top-level port or I/O buffer)
+--        INC      => '0',              -- 1-bit input: Increment / decrement input
+--        IOCLK0   => fastClk_i,        -- 1-bit input: Input from the I/O clock network
+--        IOCLK1   => '0',              -- 1-bit input: Input from the I/O clock network
+--        ODATAIN  => '0',              -- 1-bit input: Output data input from output register or OSERDES2.
+--        RST      => s_rst_cal,          -- 1-bit input: reset_i to zero
+--        T        => '1'               -- 1-bit input: 3-state input signal
+--    );
+
+
+    --I must check that the CNTVALUEOUT and CNTVALUEIN are the same. TO DO
+	--status_o(0) <= s_busy_idelay_d;
+	s_busy_idelay_d <= (delay_val(0) XOR  delayed_out(0)) OR (delay_val(1) XOR  delayed_out(1)) OR (delay_val(2) XOR  delayed_out(2)) OR (delay_val(3) XOR  delayed_out(3)) OR (delay_val(4) XOR  delayed_out(4));
+	status_o(0) <= s_busy_idelay_d;
+	s_busy <= s_busy_idelay_p or s_busy_idelay_d;
+
+
+-----------------------------------------------------
+--ISERDES2 replaced by ISERDESE2 in Series 7
+--  ISERDES2_Prompt : ISERDES2
+--  generic map (
+--    BITSLIP_ENABLE => FALSE,         -- Enable Bitslip Functionality (TRUE/FALSE)
+--    DATA_RATE      => "SDR",         -- Data-rate ("SDR" or "DDR")
+--    DATA_WIDTH     => 4,           -- Parallel data width selection (2-8)
+--    INTERFACE_TYPE => "RETIMED",     -- "NETWORKING", "NETWORKING_PIPELINED" or "RETIMED" 
+--    SERDES_MODE    => "NONE"         -- "NONE", "MASTER" or "SLAVE" 
+--   )
+--  port map (
+--    -- Q1 - Q4: 1-bit (each) output Registered outputs to FPGA logic
+--    Q1     => s_Data_o(1),         -- Oldest data
+--    Q2     => s_Data_o(3),
+--    Q3     => s_Data_o(5),
+--    Q4     => s_Data_o(7),         -- most recent data
+--    --SHIFTOUT => SHIFTOUTsig,       -- 1-bit output Cascade output signal for master/slave I/O
+--    VALID   => open,                 -- 1-bit output Output status of the phase detector
+--    BITSLIP => '0',                  -- 1-bit input Bitslip enable input
+--    CE0     => '1',                  -- 1-bit input Clock enable input
+--    CLK0    => fastClk_i,            -- 1-bit input I/O clock network input
+--    CLK1    => '0',                  -- 1-bit input Secondary I/O clock network input
+--    CLKDIV  => fabricClk_i,          -- 1-bit input FPGA logic domain clock input
+--    D       => s_Data_i_d_p,         -- 1-bit input Input data
+--    IOCE    => strobe_i,             -- 1-bit input Data strobe_i input
+--    RST     => reset_i,              -- 1-bit input Asynchronous reset_i input
+--    SHIFTIN => '0'                   -- 1-bit input Cascade input signal for master/slave I/O
+--   );
+
+    ISERDESE2_Prompt: ISERDESE2 --Used to replace ISERDES2. Best of luck with it.
+    generic map (
+        DATA_RATE => "DDR",
+        DATA_WIDTH => 4,
+        INTERFACE_TYPE=> "NETWORKING", --Not sure this is correct
+        IOBDELAY => "BOTH", --same as above
+        SERDES_MODE => "MASTER",
+        NUM_CE => 1
+    )
+    port map (
+        O => open,
+        Q4     => s_Data_o(1), -- Oldest data
+        Q3     => s_Data_o(3),
+        Q2     => s_Data_o(5),
+        Q1     => s_Data_o(7),
+        BITSLIP => '0',
+        CE1 => '1',
+        CE2 => '1',
+        CLKDIVP => '0',
+        CLK  => fastClk_i,            -- 1-bit input I/O clock network input
+        CLKB  => not fastClk_i, --should be a unique phase shifted clock
+        CLKDIV => fabricClk_i,
+        DDLY=> s_Data_i_d_p,
+        D=> '0', -- data_i
+        RST=> reset_i,
+        SHIFTIN1 => '0',
+        SHIFTIN2 => '0',
+        DYNCLKDIVSEL=> '0',
+        DYNCLKSEL=> '0', 
+        --OCLK => strobe_i,
+        OCLK => '0',
+        OCLKB => '0',
+        OFB=> '0'
+    );
+
+--  ISERDES2_Delayed : ISERDES2
+--  generic map (
+--    BITSLIP_ENABLE => FALSE,       -- Enable Bitslip Functionality (TRUE/FALSE)
+--    DATA_RATE      => "SDR",       -- Data-rate ("SDR" or "DDR")
+--    DATA_WIDTH     => 4,         -- Parallel data width selection (2-8)
+--    INTERFACE_TYPE => "RETIMED",   -- "NETWORKING", "NETWORKING_PIPELINED" or "RETIMED" 
+--    SERDES_MODE    => "NONE"       -- "NONE", "MASTER" or "SLAVE" 
+--   )
+--  port map (
+--	-- Q1 - Q4: 1-bit (each) output Registered outputs to FPGA logic
+--    Q1     => s_Data_o(0),           -- oldest data
+--    Q2     => s_Data_o(2),
+--    Q3     => s_Data_o(4),
+--    Q4     => s_Data_o(6),           -- most recent data
+--    --SHIFTOUT => SHIFTOUTsig,     -- 1-bit output Cascade output signal for master/slave I/O
+--    VALID   => open,               -- 1-bit output Output status of the phase detector
+--    BITSLIP => '0',                -- 1-bit input Bitslip enable input
+--    CE0     => '1',                -- 1-bit input Clock enable input
+--    CLK0    => fastClk_i,          -- 1-bit input I/O clock network input
+--    CLK1    => '0',                -- 1-bit input Secondary I/O clock network input
+--    CLKDIV  => fabricClk_i,        -- 1-bit input FPGA logic domain clock input
+--    D       => s_Data_i_d_d,       -- 1-bit input Input data
+--    IOCE    => strobe_i,           -- 1-bit input Data strobe_i input
+--    RST     => reset_i,            -- 1-bit input Asynchronous reset_i input
+--    SHIFTIN => '0'                 -- 1-bit input Cascade input signal for master/slave I/O
+--   );
+   
+   
+   ISERDESE2_Delayed: ISERDESE2 --Used to replace ISERDES2. Best of luck with it.
+       generic map (
+           DATA_RATE => "DDR",
+           DATA_WIDTH => 4,
+           INTERFACE_TYPE=> "NETWORKING", --Not sure this is correct
+           IOBDELAY => "BOTH", --same as above
+           SERDES_MODE => "MASTER",
+           NUM_CE => 1
+       )
+       port map (
+           O => open,
+           Q4     => s_Data_o(0),           -- oldest data
+           Q3     => s_Data_o(2),
+           Q2     => s_Data_o(4),
+           Q1     => s_Data_o(6), 
+           BITSLIP => '0',
+           CE1 => '1',
+           CE2 => '1',
+           CLKDIVP => '0',
+           CLK  => fastClk_i,            -- 1-bit input I/O clock network input
+           CLKB  => not fastClk_i, --should be a unique phase shifted clock
+           CLKDIV => fabricClk_i,
+           DDLY=> s_Data_i_d_d,
+           D=> '0', -- data_i
+           RST=> reset_i,
+           SHIFTIN1 => '0',
+           SHIFTIN2 => '0',
+           DYNCLKDIVSEL=> '0',
+           DYNCLKSEL=> '0', 
+           OCLK => strobe_i,
+           OCLKB => '0',
+           OFB=> '0'
+       );
+-----------------------------------------------------
+
+
+
+reg_out : process(fabricClk_i)
+begin
+  if rising_edge(fabricClk_i) then
+    Data_o <= s_Data_o;
+  end if;
+end process;
+
+END ARCHITECTURE rtl;
+
diff --git a/legacy/TLU_v1e/hdl/trigger/triggerInputs_newTLU_rtl.vhd b/legacy/TLU_v1e/hdl/trigger/triggerInputs_newTLU_rtl.vhd
new file mode 100644
index 00000000..4443faf0
--- /dev/null
+++ b/legacy/TLU_v1e/hdl/trigger/triggerInputs_newTLU_rtl.vhd
@@ -0,0 +1,291 @@
+--=============================================================================
+--! @file triggerInputs_rtl.vhd
+--=============================================================================
+--
+-------------------------------------------------------------------------------
+-- --
+-- University of Bristol, High Energy Physics Group.
+-- --
+------------------------------------------------------------------------------- --
+-- VHDL Architecture fmc_mTLU_lib.triggerInputs.rtl
+--
+--------------------------------------------------------------------------------
+-- 
+-- Created using using Mentor Graphics HDL Designer(TM) 2010.3 (Build 21)
+--
+LIBRARY ieee;
+USE ieee.std_logic_1164.all;
+USE ieee.numeric_std.all;
+USE work.ipbus.all;
+USE work.ipbus_reg_types.all;
+USE work.fmcTLU.all;
+
+
+library unisim ;
+use unisim.vcomponents.all;
+
+--! @brief Measures arrival time of trigger pulses using two deserializers
+--! clocked on 14x clock ( 640MHz) 
+--! Based on TDC code by Alvaro Dosil
+--!
+--! @author David Cussans , David.Cussans@bristol.ac.uk
+--!
+--!
+--! @date 15:43:57 11/08/12
+--!
+--! @version v0.1
+--!
+--! @details
+--! \li IPBus address 0 = control and status
+--!  \li bit0 = reset serdes
+--!  \li bit1 = reset counter
+--!  \li bit2 = calibrate IDELAYs
+--!  \li bit3 = not connected
+--!  \li bit4 = Thresh discr  IDelay(0) status prompt
+--!  \li bit5 = Thresh discr  IDelay(0) status delayed
+--!  \li bit6 = Thresh discr  IDelay(1) status prompt
+--!  \li bit7 = Thresh discr  IDelay(1) status delayed
+--!  \li bit8 = Thresh discr  IDelay(2) status prompt
+--!  \li bit9 = Thresh discr  IDelay(2) status delayed
+--!  \li bit10= Thresh discr  IDelay(3) status prompt
+--!  \li bit11= Thresh discr  IDelay(3) status delayed
+--!  \li bit12= CFD discr  IDelay(0) status prompt
+--!  \li bit13= CFD discr  IDelay(0) status delayed
+--!  \li bit14= CFD discr  IDelay(1) status prompt
+--!  \li bit15= CFD discr  IDelay(1) status delayed
+--!  \li bit16= CFD discr  IDelay(2) status prompt
+--!  \li bit17= CFD discr  IDelay(2) status delayed
+--!  \li bit18= CFD discr  IDelay(3) status prompt
+--!  \li bit19= CFD discr  IDelay(3) status delayed
+--!  \li bit20= Thresh deserialized data monitor(0)
+--!  \li bit21= Thresh deserialized data monitor(1)
+--!  \li bit22= Thresh deserialized data monitor(2)
+--!  \li bit23= Thresh deserialized data monitor(3)
+--!  \li bit24= CFD deserialized data monitor(0)
+--!  \li bit25= CFD deserialized data monitor(1)
+--!  \li bit26= CFD deserialized data monitor(2)
+--!  \li bit27= CFD deserialized data monitor(3)
+--!
+--! \li IPBus address 1 = edge rising(0) counter
+--! \li IPBus address 2 = edge rising(1) counter
+--! \li IPBus address 3 = edge rising(2) counter
+--! \li IPBus address 4 = edge rising(3) counter
+--!
+--!
+--! <b>Modified by: Alvaro Dosil , alvaro.dosil@usc.es </b>\n
+--! Author: 
+-------------------------------------------------------------------------------
+--! \n\n<b>Last changes:</b>\n
+-------------------------------------------------------------------------------
+--! @todo Implement a periodic calibration sequence 
+--
+
+ENTITY triggerInputs_newTLU IS
+   GENERIC( 
+      g_NUM_INPUTS  : natural  := 1;--1
+      g_IPBUS_WIDTH : positive := 32
+   );
+   PORT( 
+      --cfd_discr_p_i        : IN     std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);         --! Inputs from constant-fraction discriminators
+      --cfd_discr_n_i        : IN     std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);         --! Input from CFD
+      clk_4x_logic         : IN     std_logic;                                          --! Rising edge active. By default = 4*40MHz = 160MHz
+      clk_200_i : IN     std_logic;
+      strobe_4x_logic_i    : IN     std_logic;                                          --! Pulses high once every 4 cycles of clk_4x_logic
+      threshold_discr_p_i  : IN     std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);         --! inputs from threshold comparators
+      threshold_discr_n_i  : IN     std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);         --! inputs from threshold comparators
+      reset_i              : IN     std_logic;
+      trigger_times_o      : OUT    t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);       --! trigger arrival time ( w.r.t. logic_strobe)
+      trigger_o            : OUT    std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);         --!  Goes high on leading edge of trigger, in sync with clk_4x_logic_i
+      --trigger_debug_o      : OUT    std_logic_vector ( ((2*g_NUM_INPUTS)-1) DOWNTO 0);  --! Copy of input trigger level. High bits CFD, Low threshold
+      edge_rising_times_o  : OUT    t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);       --! edge arrival time ( w.r.t. logic_strobe)
+      edge_falling_times_o : OUT    t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);       --! edge arrival time ( w.r.t. logic_strobe)
+      edge_rising_o        : OUT    std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);         --! High when rising edge. Syncronous with clk_4x_logic_i
+      edge_falling_o       : OUT    std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);         --! High when falling edge
+      ipbus_clk_i          : IN     std_logic;
+      ipbus_reset_i        : IN     std_logic;
+      ipbus_i              : IN     ipb_wbus;                                           --! Signals from IPBus core to slave
+      ipbus_o              : OUT    ipb_rbus;                                           --! signals from slave to IPBus core
+      clk_8x_logic_i      : IN     std_logic;                                          --! 320MHz clock ( 8x 40MHz )
+      strobe_8x_logic_i   : IN     std_logic                                           --! Pulses one cycle every 4 of 8x clock.
+   );
+
+-- Declarations
+END triggerInputs_newTLU ;
+
+--
+ARCHITECTURE rtl OF triggerInputs_newTLU IS
+  
+    signal s_rst_iserdes : std_logic := '0'; --! Reset ISERDES and IDELAY
+    signal s_threshold_discr_input , s_thr_in_p, s_thr_in_n : std_logic_vector(g_NUM_INPUTS-1 downto 0);  --! inputs from comparator
+    type t_deserialized_trigger_data_array is array ( natural range <> ) of std_logic_vector(7 downto 0); --
+    signal s_deserialized_threshold_data, s_deserialized_threshold_data_d , s_deserialized_cfd_data, s_deserialized_cfd_data_d : t_deserialized_trigger_data_array(g_NUM_INPUTS-1 downto 0);
+    type t_deserialized_trigger_data_array_l is array ( natural range <> ) of std_logic_vector(8 downto 0); --
+    signal s_deserialized_threshold_data_l , s_deserialized_cfd_data_l : t_deserialized_trigger_data_array_l(g_NUM_INPUTS-1 downto 0);
+    signal s_threshold_previous_late_bit    : std_logic_vector(g_NUM_INPUTS-1 downto 0) := (others => '0');  -- last bit to arrive from previous 4
+    signal s_ipbus_ack                      : std_logic := '0';  -- used to produce a delayed IPBus ack signal
+    signal s_edge_rising_times:   t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);  --! edge arrival time ( w.r.t. logic_strobe)
+    signal s_edge_falling_times:  t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);  --! edge arrival time ( w.r.t. logic_strobe)
+    signal s_edge_rising:         std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);    --! High when rising edge
+    signal s_edge_falling:        std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);    --! High when falling edge
+    constant c_N_CTRL : positive := 1;
+    constant c_N_STAT : positive := g_NUM_INPUTS+1 ;
+    signal s_status_to_ipbus , s_sync_status_to_ipbus: ipb_reg_v(c_N_STAT-1 downto 0);
+    signal s_control_from_ipbus , s_sync_control_from_ipbus: ipb_reg_v(c_N_CTRL-1 downto 0);
+    --  signal s_reset_reg , s_status_reg: std_logic_vector(g_IPBUS_WIDTH-1 downto 0) := (others => '0');
+    signal s_counter_reset, s_calibrate_idelay: std_logic := '0';
+  
+BEGIN
+    -----------------------------------------------------------------------------
+    -- IPBus interface 
+    -----------------------------------------------------------------------------
+
+    -- Can't get ipbus_syncreg_v to meet timing. So use non-syncronized followed
+    -- by synchronizer.
+    ipbus_registers: entity work.ipbus_ctrlreg_v
+    generic map (
+        N_STAT =>  c_N_STAT )
+    port map(
+        clk=> ipbus_clk_i,
+        reset => ipbus_reset_i ,
+        ipbus_in =>  ipbus_i,
+        ipbus_out => ipbus_o,
+        d=>  s_sync_status_to_ipbus,
+        q=>  s_control_from_ipbus,
+        stb => open
+        );
+
+    -- sync data from I/O logic to IPBus
+    sync_registers: entity work.synchronizeRegisters
+    generic map (
+        g_NUM_REGISTERS => c_N_STAT )
+    port map (
+        clk_input_i => clk_4x_logic,
+        data_i      => s_status_to_ipbus,
+        data_o      => s_sync_status_to_ipbus,
+        clk_output_i => ipbus_clk_i);
+
+    -- sync data from I/O logic to IPBus
+    sync_ipbus: entity work.synchronizeRegisters
+    generic map (
+        g_NUM_REGISTERS => c_N_CTRL )
+    port map (
+        clk_input_i => ipbus_clk_i,
+        data_i      => s_control_from_ipbus,
+        data_o      => s_sync_control_from_ipbus,
+        clk_output_i => clk_4x_logic);
+
+    -- Map the control registers...
+    -- Register that controls IODELAY and ISERDES reset is at address 0
+    s_rst_iserdes <= reset_i or s_sync_control_from_ipbus(0)(0);
+    s_counter_reset <= s_sync_control_from_ipbus(0)(1);
+    s_calibrate_idelay <= s_sync_control_from_ipbus(0)(2);
+  
+    s_status_to_ipbus(0)(0) <= s_rst_iserdes;
+    s_status_to_ipbus(0)(1) <= s_counter_reset;
+    s_status_to_ipbus(0)(2) <= s_calibrate_idelay;
+    -- Connect up unused lines in status regiser to 0.
+    s_status_to_ipbus(0)(3) <= '0';
+    s_status_to_ipbus(0)(g_IPBUS_WIDTH-1 downto 28) <= (others => '0');
+
+    -----------------------------------------------------------------------------
+    -- Connect up trigger inputs to deserializers and a LUT to determine
+    -- arrival time
+    -----------------------------------------------------------------------------
+    idelaytriggers0: idelayctrl port map(
+          refclk => clk_200_i,
+          rst => reset_i
+    );
+ 
+    --BEGIN FOR LOOP
+    -- Instantiate one for each trigger input of the TLU
+    trigger_input_loop: for triggerInput in 0 to (g_NUM_INPUTS-1) generate
+
+        -- Differential buffer. Receives differential trigger input and produces a buffered differential signal.
+        IBUFDS_DIFF_OUT_inst : IBUFDS_DIFF_OUT
+        generic map (
+            IBUF_LOW_PWR => false,
+            IOSTANDARD       => "LVDS_25"
+        )
+        port map (
+            O => s_thr_in_p(triggerInput),
+            OB => s_thr_in_n(triggerInput),
+            I => threshold_discr_p_i(triggerInput),
+            IB => threshold_discr_n_i(triggerInput)
+        );
+        
+        -- Deserialize the trigger input    
+        thresholdDeserializer: entity work.dualSERDES_1to4
+        port map (
+            reset_i 			=> s_rst_iserdes,
+            --calibrate_i 		=> s_calibrate_idelay,
+            --data_i         => s_threshold_discr_input(triggerInput),
+            --data_i         => '0',
+            data_i_pos     => s_thr_in_p(triggerInput),
+            data_i_neg     => s_thr_in_n(triggerInput),
+            fastClk_i      => clk_8x_logic_i,
+            fabricClk_i    => clk_4x_logic,
+            strobe_i       => strobe_8x_logic_i,
+            data_o         => s_deserialized_threshold_data(triggerInput),
+            status_o       => s_status_to_ipbus(0)(5+(2*triggerInput) downto 4+(2*triggerInput))
+        );
+        
+        -- Add last bit from previous word to the new deserialized data.        
+        s_deserialized_threshold_data_l(triggerInput) <= s_deserialized_threshold_data(triggerInput) & s_threshold_previous_late_bit(triggerInput);
+        
+        -- Use a LUT to determine the leading/trailing edges of the trigger input
+        thresholdLUT : entity work.arrivalTimeLUT
+        port map (
+            clk_4x_logic_i      => clk_4x_logic,
+            strobe_4x_logic_i   => strobe_4x_logic_i,
+            deserialized_data_i => s_deserialized_threshold_data_l(triggerInput),
+            first_rising_edge_time_o => s_edge_rising_times(triggerInput), 
+            last_falling_edge_time_o => s_edge_falling_times(triggerInput), 
+            rising_edge_o       => s_edge_rising(triggerInput), 
+            falling_edge_o      => s_edge_falling(triggerInput),
+            multiple_edges_o    => open
+        );
+        
+        -- The leading edge may be a high-->low or a low-->high transition (
+        -- depending on polarity of input signal. ). For now assume that leading
+        -- edge is low-->high and connect trigger times and trigger output accordingly.
+        -- In the future have this selectable.
+        edge_rising_times_o(triggerInput) <= s_edge_rising_times(triggerInput);
+        edge_falling_times_o(triggerInput) <= s_edge_falling_times(triggerInput);
+        edge_rising_o(triggerInput) <= s_edge_rising(triggerInput);
+        edge_falling_o(triggerInput) <= s_edge_falling(triggerInput);
+        trigger_times_o(triggerInput) <= s_edge_rising_times(triggerInput);
+        trigger_o(triggerInput) <= s_edge_rising(triggerInput);
+            
+    
+        p_register_delayed_bits : process ( clk_4x_logic ) 
+        begin 
+            if rising_edge(clk_4x_logic) then
+                s_threshold_previous_late_bit(triggerInput) <= s_deserialized_threshold_data(triggerInput)(7);
+                --s_CFD_previous_late_bit(triggerInput) <= s_deserialized_CFD_data(triggerInput)(7);
+                -- Monitor output of serdes - just look at one per serdes
+                -- Don't care about latency so put a couple of registers in to aid
+                -- timing closure.
+                s_status_to_ipbus(0)(20+triggerInput) <= s_threshold_previous_late_bit(triggerInput);
+                --s_status_to_ipbus(0)(24+triggerInput) <= s_CFD_previous_late_bit(triggerInput);
+            end if ; 
+        end process;
+        
+        --! Instantiate counter for output triggers.
+        --! Input I is connected to address I+1
+        cmp_inputTriggerCounter : entity work.counterWithReset
+        generic map (
+            g_COUNTER_WIDTH => g_IPBUS_WIDTH)
+        port map (
+            clock_i  => clk_4x_logic,
+            reset_i  => s_counter_reset,
+            enable_i => s_edge_rising(triggerInput),
+            result_o => s_status_to_ipbus(triggerInput+1)
+        );
+    end generate trigger_input_loop;
+  --END FOR LOOP
+  
+  --trigger_debug_o( (g_NUM_INPUTS-1) downto 0) <= s_threshold_discr_input;
+  --trigger_debug_o( ((2*g_NUM_INPUTS)-1) downto g_NUM_INPUTS) <=  s_edge_rising;
+  
+END ARCHITECTURE rtl;
+
diff --git a/legacy/TLU_v1e/hdl/trigger/triggerInputs_newTLU_rtl_BKP.vhd b/legacy/TLU_v1e/hdl/trigger/triggerInputs_newTLU_rtl_BKP.vhd
new file mode 100644
index 00000000..106e7703
--- /dev/null
+++ b/legacy/TLU_v1e/hdl/trigger/triggerInputs_newTLU_rtl_BKP.vhd
@@ -0,0 +1,335 @@
+--=============================================================================
+--! @file triggerInputs_rtl.vhd
+--=============================================================================
+--
+-------------------------------------------------------------------------------
+-- --
+-- University of Bristol, High Energy Physics Group.
+-- --
+------------------------------------------------------------------------------- --
+-- VHDL Architecture fmc_mTLU_lib.triggerInputs.rtl
+--
+--------------------------------------------------------------------------------
+-- 
+-- Created using using Mentor Graphics HDL Designer(TM) 2010.3 (Build 21)
+--
+LIBRARY ieee;
+USE ieee.std_logic_1164.all;
+USE ieee.numeric_std.all;
+
+USE work.ipbus.all;
+use work.ipbus_reg_types.all;
+
+USE work.fmcTLU.all;
+
+
+library unisim ;
+use unisim.vcomponents.all;
+
+--! @brief Measures arrival time of trigger pulses using two deserializers
+--! clocked on 14x clock ( 640MHz) 
+--! Based on TDC code by Alvaro Dosil
+--!
+--! @author David Cussans , David.Cussans@bristol.ac.uk
+--!
+--!
+--! @date 15:43:57 11/08/12
+--!
+--! @version v0.1
+--!
+--! @details
+--! \li IPBus address 0 = control and status
+--!  \li bit0 = reset serdes
+--!  \li bit1 = reset counter
+--!  \li bit2 = calibrate IDELAYs
+--!  \li bit3 = not connected
+--!  \li bit4 = Thresh discr  IDelay(0) status prompt
+--!  \li bit5 = Thresh discr  IDelay(0) status delayed
+--!  \li bit6 = Thresh discr  IDelay(1) status prompt
+--!  \li bit7 = Thresh discr  IDelay(1) status delayed
+--!  \li bit8 = Thresh discr  IDelay(2) status prompt
+--!  \li bit9 = Thresh discr  IDelay(2) status delayed
+--!  \li bit10= Thresh discr  IDelay(3) status prompt
+--!  \li bit11= Thresh discr  IDelay(3) status delayed
+--!  \li bit12= CFD discr  IDelay(0) status prompt
+--!  \li bit13= CFD discr  IDelay(0) status delayed
+--!  \li bit14= CFD discr  IDelay(1) status prompt
+--!  \li bit15= CFD discr  IDelay(1) status delayed
+--!  \li bit16= CFD discr  IDelay(2) status prompt
+--!  \li bit17= CFD discr  IDelay(2) status delayed
+--!  \li bit18= CFD discr  IDelay(3) status prompt
+--!  \li bit19= CFD discr  IDelay(3) status delayed
+--!  \li bit20= Thresh deserialized data monitor(0)
+--!  \li bit21= Thresh deserialized data monitor(1)
+--!  \li bit22= Thresh deserialized data monitor(2)
+--!  \li bit23= Thresh deserialized data monitor(3)
+--!  \li bit24= CFD deserialized data monitor(0)
+--!  \li bit25= CFD deserialized data monitor(1)
+--!  \li bit26= CFD deserialized data monitor(2)
+--!  \li bit27= CFD deserialized data monitor(3)
+--!
+--! \li IPBus address 1 = edge rising(0) counter
+--! \li IPBus address 2 = edge rising(1) counter
+--! \li IPBus address 3 = edge rising(2) counter
+--! \li IPBus address 4 = edge rising(3) counter
+--!
+--!
+--! <b>Modified by: Alvaro Dosil , alvaro.dosil@usc.es </b>\n
+--! Author: 
+-------------------------------------------------------------------------------
+--! \n\n<b>Last changes:</b>\n
+-------------------------------------------------------------------------------
+--! @todo Implement a periodic calibration sequence 
+--
+
+ENTITY triggerInputs_newTLU IS
+   GENERIC( 
+      g_NUM_INPUTS  : natural  := 1;
+      g_IPBUS_WIDTH : positive := 32
+   );
+   PORT( 
+      --cfd_discr_p_i        : IN     std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);         --! Inputs from constant-fraction discriminators
+      --cfd_discr_n_i        : IN     std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);         --! Input from CFD
+      clk_4x_logic         : IN     std_logic;                                          --! Rising edge active. By default = 4*40MHz = 160MHz
+      strobe_4x_logic_i    : IN     std_logic;                                          --! Pulses high once every 4 cycles of clk_4x_logic
+      threshold_discr_p_i  : IN     std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);         --! inputs from threshold comparators
+      threshold_discr_n_i  : IN     std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);         --! inputs from threshold comparators
+      reset_i              : IN     std_logic;
+      trigger_times_o      : OUT    t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);       --! trigger arrival time ( w.r.t. logic_strobe)
+      trigger_o            : OUT    std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);         --!  Goes high on leading edge of trigger, in sync with clk_4x_logic_i
+      --trigger_debug_o      : OUT    std_logic_vector ( ((2*g_NUM_INPUTS)-1) DOWNTO 0);  --! Copy of input trigger level. High bits CFD, Low threshold
+      edge_rising_times_o  : OUT    t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);       --! edge arrival time ( w.r.t. logic_strobe)
+      edge_falling_times_o : OUT    t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);       --! edge arrival time ( w.r.t. logic_strobe)
+      edge_rising_o        : OUT    std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);         --! High when rising edge. Syncronous with clk_4x_logic_i
+      edge_falling_o       : OUT    std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);         --! High when falling edge
+      ipbus_clk_i          : IN     std_logic;
+      ipbus_reset_i        : IN     std_logic;
+      ipbus_i              : IN     ipb_wbus;                                           --! Signals from IPBus core to slave
+      ipbus_o              : OUT    ipb_rbus;                                           --! signals from slave to IPBus core
+      clk_16x_logic_i      : IN     std_logic;                                          --! 640MHz clock ( 16x 40MHz )
+      strobe_16x_logic_i   : IN     std_logic                                           --! Pulses one cycle every 4 of 16x clock.
+   );
+
+-- Declarations
+
+END triggerInputs_newTLU ;
+
+--
+ARCHITECTURE rtl OF triggerInputs_newTLU IS
+  
+  signal s_rst_iserdes : std_logic := '0'; --! Reset ISERDES and IDELAY
+  
+  signal s_threshold_discr_input , s_cfd_discr_input : std_logic_vector(g_NUM_INPUTS-1 downto 0);  --! inputs from comparator
+
+  type t_deserialized_trigger_data_array is array ( natural range <> ) of std_logic_vector(7 downto 0); --
+  signal s_deserialized_threshold_data, s_deserialized_threshold_data_d , s_deserialized_cfd_data, s_deserialized_cfd_data_d : t_deserialized_trigger_data_array(g_NUM_INPUTS-1 downto 0);
+
+  type t_deserialized_trigger_data_array_l is array ( natural range <> ) of std_logic_vector(8 downto 0); --
+  signal s_deserialized_threshold_data_l , s_deserialized_cfd_data_l : t_deserialized_trigger_data_array_l(g_NUM_INPUTS-1 downto 0);
+
+  --signal s_cfd_trigger_times              : t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);
+  
+  --signal s_CFD_rising_edge                : std_logic_vector(g_NUM_INPUTS-1 downto 0); 
+  --signal s_CFD_falling_edge               : std_logic_vector(g_NUM_INPUTS-1 downto 0); 
+  
+  signal s_threshold_previous_late_bit    : std_logic_vector(g_NUM_INPUTS-1 downto 0) := (others => '0');  -- last bit to arrive from previous 4
+  --signal s_CFD_previous_late_bit          : std_logic_vector(g_NUM_INPUTS-1 downto 0) := (others => '0');  -- last bit to arrive from previous 4
+  
+  signal s_ipbus_ack                      : std_logic := '0';  -- used to produce a delayed IPBus ack signal
+
+  signal s_edge_rising_times:   t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);  --! edge arrival time ( w.r.t. logic_strobe)
+  signal s_edge_falling_times:  t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);  --! edge arrival time ( w.r.t. logic_strobe)
+  signal s_edge_rising:         std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);    --! High when rising edge
+  signal s_edge_falling:        std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);    --! High when falling edge
+
+  constant c_N_CTRL : positive := 1;
+  constant c_N_STAT : positive := g_NUM_INPUTS+1 ;
+  signal s_status_to_ipbus , s_sync_status_to_ipbus: ipb_reg_v(c_N_STAT-1 downto 0);
+  signal s_control_from_ipbus , s_sync_control_from_ipbus: ipb_reg_v(c_N_CTRL-1 downto 0);
+--  signal s_reset_reg , s_status_reg: std_logic_vector(g_IPBUS_WIDTH-1 downto 0) := (others => '0');
+  signal s_counter_reset, s_calibrate_idelay: std_logic := '0';
+  
+BEGIN
+  -----------------------------------------------------------------------------
+  -- IPBus interface 
+  -----------------------------------------------------------------------------
+
+  -- Can't get ipbus_syncreg_v to meet timing. So use non-syncronized followed
+  -- by synchronizer.
+  ipbus_registers: entity work.ipbus_ctrlreg_v
+    generic map (
+      N_STAT =>  c_N_STAT )
+    port map(
+      clk=> ipbus_clk_i,
+      reset => ipbus_reset_i ,
+      ipbus_in =>  ipbus_i,
+      ipbus_out => ipbus_o,
+      d=>  s_sync_status_to_ipbus,
+      q=>  s_control_from_ipbus,
+      stb => open
+      );
+
+  -- sync data from I/O logic to IPBus
+  sync_registers: entity work.synchronizeRegisters
+    generic map (
+      g_NUM_REGISTERS => c_N_STAT )
+    port map (
+      clk_input_i => clk_4x_logic,
+      data_i      => s_status_to_ipbus,
+      data_o      => s_sync_status_to_ipbus,
+      clk_output_i => ipbus_clk_i);
+
+  -- sync data from I/O logic to IPBus
+  sync_ipbus: entity work.synchronizeRegisters
+    generic map (
+      g_NUM_REGISTERS => c_N_CTRL )
+    port map (
+      clk_input_i => ipbus_clk_i,
+      data_i      => s_control_from_ipbus,
+      data_o      => s_sync_control_from_ipbus,
+      clk_output_i => clk_4x_logic);
+
+  -- Map the control registers...
+  -- Register that controls IODELAY and ISERDES reset is at address 0
+  s_rst_iserdes <= reset_i or s_sync_control_from_ipbus(0)(0);
+  s_counter_reset <= s_sync_control_from_ipbus(0)(1);
+  s_calibrate_idelay <= s_sync_control_from_ipbus(0)(2);
+  
+  s_status_to_ipbus(0)(0) <= s_rst_iserdes;
+  s_status_to_ipbus(0)(1) <= s_counter_reset;
+  s_status_to_ipbus(0)(2) <= s_calibrate_idelay;
+  -- Connect up unused lines in status regiser to 0.
+  s_status_to_ipbus(0)(3) <= '0';
+  s_status_to_ipbus(0)(g_IPBUS_WIDTH-1 downto 28) <= (others => '0');
+
+  -----------------------------------------------------------------------------
+  -- Connect up trigger inputs to deserializers and a LUT to determine
+  -- arrival time
+  -----------------------------------------------------------------------------
+ 
+  --BEGIN FOR LOOP
+  trigger_input_loop: for triggerInput in 0 to (g_NUM_INPUTS-1) generate
+
+        thresholdInputBuffer: IBUFDS
+          generic map (
+            DIFF_TERM        => true,
+            IBUF_LOW_PWR     => false,
+            IOSTANDARD       => "LVDS_25")
+          port map (
+            O  => s_threshold_discr_input(triggerInput),
+            I  => threshold_discr_p_i(triggerInput),
+            IB => threshold_discr_n_i(triggerInput)
+            );
+    
+        thresholdDeserializer: entity work.dualSERDES_1to4
+          port map (
+            reset_i 			=> s_rst_iserdes,
+            --calibrate_i 		=> s_calibrate_idelay,
+            data_i         => s_threshold_discr_input(triggerInput),
+            data_i_pos     => threshold_discr_p_i(triggerInput),
+            data_i_neg     => threshold_discr_n_i(triggerInput),
+            fastClk_i      => clk_16x_logic_i,
+            fabricClk_i    => clk_4x_logic,
+            strobe_i       => strobe_16x_logic_i,
+            data_o         => s_deserialized_threshold_data(triggerInput),
+            status_o       => s_status_to_ipbus(0)(5+(2*triggerInput) downto 4+(2*triggerInput))
+            );
+              
+        s_deserialized_threshold_data_l(triggerInput) <= s_deserialized_threshold_data(triggerInput) & s_threshold_previous_late_bit(triggerInput);
+        
+        thresholdLUT : entity work.arrivalTimeLUT
+          port map (
+            clk_4x_logic_i      => clk_4x_logic,
+            strobe_4x_logic_i   => strobe_4x_logic_i,
+            deserialized_data_i => s_deserialized_threshold_data_l(triggerInput),
+            first_rising_edge_time_o => s_edge_rising_times(triggerInput), 
+            last_falling_edge_time_o => s_edge_falling_times(triggerInput), 
+            rising_edge_o       => s_edge_rising(triggerInput), 
+            falling_edge_o      => s_edge_falling(triggerInput),
+            multiple_edges_o    => open
+            );
+    
+        -- The leading edge may be a high-->low or a low-->high transition (
+        -- depending on polarity of input signal. ). For now assume that leading
+        -- edge is low-->high and connect trigger times and trigger output accordingly.
+        -- In the future have this selectable.
+        edge_rising_times_o(triggerInput) <= s_edge_rising_times(triggerInput);
+        edge_falling_times_o(triggerInput) <= s_edge_falling_times(triggerInput);
+        edge_rising_o(triggerInput) <= s_edge_rising(triggerInput);
+        edge_falling_o(triggerInput) <= s_edge_falling(triggerInput);
+        trigger_times_o(triggerInput) <= s_edge_rising_times(triggerInput);
+        trigger_o(triggerInput) <= s_edge_rising(triggerInput);
+        
+--REMOVE CFD        
+--        CFDInputBuffer: IBUFDS
+--          generic map (
+--            DIFF_TERM        => true,
+--            IBUF_LOW_PWR     => false,
+--            IOSTANDARD       => "LVDS_25")
+--          port map (
+--            O  => s_CFD_discr_input(triggerInput),
+--            I  => CFD_discr_p_i(triggerInput),
+--            IB => CFD_discr_n_i(triggerInput)
+--            );
+    
+--        CFDDeserializer: entity work.dualSERDES_1to4
+--          port map (
+--            reset_i => s_rst_iserdes,
+--            --calibrate_i => s_calibrate_idelay,
+--            data_i         => s_CFD_discr_input(triggerInput),
+--            fastClk_i      => clk_16x_logic_i,
+--            fabricClk_i    => clk_4x_logic,
+--            strobe_i       => strobe_16x_logic_i,
+--            data_o         => s_deserialized_CFD_data(triggerInput),
+--            status_o       => s_status_to_ipbus(0)(13+(2*triggerInput) downto 12+(2*triggerInput))
+--            );
+--        --s_deserialized_CFD_data(triggerInput) <= (others=>'0');
+          
+--        s_deserialized_CFD_data_l(triggerInput) <= s_deserialized_CFD_data(triggerInput) & s_CFD_previous_late_bit(triggerInput);
+--        CFDLUT : entity work.arrivalTimeLUT
+--          port map (
+--            clk_4x_logic_i      => clk_4x_logic,
+--            strobe_4x_logic_i   => strobe_4x_logic_i,
+--            deserialized_data_i => s_deserialized_CFD_data_l(triggerInput),
+--            first_rising_edge_time_o => s_cfd_trigger_times(triggerInput),
+--            last_falling_edge_time_o => open, 
+--            rising_edge_o       => s_CFD_rising_edge(triggerInput),
+--            falling_edge_o      => s_CFD_falling_edge(triggerInput),
+--            multiple_edges_o    => open
+--            );
+    
+        p_register_delayed_bits : process ( clk_4x_logic ) 
+        begin 
+          if rising_edge(clk_4x_logic) then
+            s_threshold_previous_late_bit(triggerInput) <= s_deserialized_threshold_data(triggerInput)(7);
+              
+            --s_CFD_previous_late_bit(triggerInput) <= s_deserialized_CFD_data(triggerInput)(7);
+    
+            -- Monitor output of serdes - just look at one per serdes
+            -- Don't care about latency so put a couple of registers in to aid
+            -- timing closure.
+            s_status_to_ipbus(0)(20+triggerInput) <= s_threshold_previous_late_bit(triggerInput);
+            --s_status_to_ipbus(0)(24+triggerInput) <= s_CFD_previous_late_bit(triggerInput);
+        
+          end if ; 
+        end process;
+    
+        --! Instantiate counter for output triggers.
+        --! Input I is connected to address I+1
+        cmp_inputTriggerCounter : entity work.counterWithReset
+          generic map (
+            g_COUNTER_WIDTH => g_IPBUS_WIDTH)
+        port map (
+          clock_i  => clk_4x_logic,
+          reset_i  => s_counter_reset,
+          enable_i => s_edge_rising(triggerInput),
+          result_o => s_status_to_ipbus(triggerInput+1));
+    
+  end generate trigger_input_loop;
+  --END FOR LOOP
+  
+  --trigger_debug_o( (g_NUM_INPUTS-1) downto 0) <= s_threshold_discr_input;
+  --trigger_debug_o( ((2*g_NUM_INPUTS)-1) downto g_NUM_INPUTS) <=  s_edge_rising;
+  
+END ARCHITECTURE rtl;
+
diff --git a/legacy/TLU_v1e/hdl/trigger/triggerInputs_newTLU_rtl_fastClock.vhd b/legacy/TLU_v1e/hdl/trigger/triggerInputs_newTLU_rtl_fastClock.vhd
new file mode 100644
index 00000000..9e3a01e1
--- /dev/null
+++ b/legacy/TLU_v1e/hdl/trigger/triggerInputs_newTLU_rtl_fastClock.vhd
@@ -0,0 +1,301 @@
+--=============================================================================
+--! @file triggerInputs_rtl.vhd
+--=============================================================================
+--
+-------------------------------------------------------------------------------
+-- --
+-- University of Bristol, High Energy Physics Group.
+-- --
+------------------------------------------------------------------------------- --
+-- VHDL Architecture fmc_mTLU_lib.triggerInputs.rtl
+--
+--------------------------------------------------------------------------------
+-- 
+-- Created using using Mentor Graphics HDL Designer(TM) 2010.3 (Build 21)
+--
+LIBRARY ieee;
+USE ieee.std_logic_1164.all;
+USE ieee.numeric_std.all;
+USE work.ipbus.all;
+USE work.ipbus_reg_types.all;
+USE work.fmcTLU.all;
+
+
+library unisim ;
+use unisim.vcomponents.all;
+
+--! @brief Measures arrival time of trigger pulses using two deserializers
+--! clocked on 14x clock ( 640MHz) 
+--! Based on TDC code by Alvaro Dosil
+--!
+--! @author David Cussans , David.Cussans@bristol.ac.uk
+--!
+--!
+--! @date 15:43:57 11/08/12
+--!
+--! @version v0.1
+--!
+--! @details
+--! \li IPBus address 0 = control and status
+--!  \li bit0 = reset serdes
+--!  \li bit1 = reset counter
+--!  \li bit2 = calibrate IDELAYs
+--!  \li bit3 = not connected
+--!  \li bit4 = Thresh discr  IDelay(0) status prompt
+--!  \li bit5 = Thresh discr  IDelay(0) status delayed
+--!  \li bit6 = Thresh discr  IDelay(1) status prompt
+--!  \li bit7 = Thresh discr  IDelay(1) status delayed
+--!  \li bit8 = Thresh discr  IDelay(2) status prompt
+--!  \li bit9 = Thresh discr  IDelay(2) status delayed
+--!  \li bit10= Thresh discr  IDelay(3) status prompt
+--!  \li bit11= Thresh discr  IDelay(3) status delayed
+--!  \li bit12= CFD discr  IDelay(0) status prompt
+--!  \li bit13= CFD discr  IDelay(0) status delayed
+--!  \li bit14= CFD discr  IDelay(1) status prompt
+--!  \li bit15= CFD discr  IDelay(1) status delayed
+--!  \li bit16= CFD discr  IDelay(2) status prompt
+--!  \li bit17= CFD discr  IDelay(2) status delayed
+--!  \li bit18= CFD discr  IDelay(3) status prompt
+--!  \li bit19= CFD discr  IDelay(3) status delayed
+--!  \li bit20= Thresh deserialized data monitor(0)
+--!  \li bit21= Thresh deserialized data monitor(1)
+--!  \li bit22= Thresh deserialized data monitor(2)
+--!  \li bit23= Thresh deserialized data monitor(3)
+--!  \li bit24= CFD deserialized data monitor(0)
+--!  \li bit25= CFD deserialized data monitor(1)
+--!  \li bit26= CFD deserialized data monitor(2)
+--!  \li bit27= CFD deserialized data monitor(3)
+--!
+--! \li IPBus address 1 = edge rising(0) counter
+--! \li IPBus address 2 = edge rising(1) counter
+--! \li IPBus address 3 = edge rising(2) counter
+--! \li IPBus address 4 = edge rising(3) counter
+--!
+--!
+--! <b>Modified by: Alvaro Dosil , alvaro.dosil@usc.es </b>\n
+--! Author: 
+-------------------------------------------------------------------------------
+--! \n\n<b>Last changes:</b>\n
+-------------------------------------------------------------------------------
+--! @todo Implement a periodic calibration sequence 
+--
+
+ENTITY triggerInputs_newTLU IS
+   GENERIC( 
+      g_NUM_INPUTS  : natural  := 1;--1
+      g_IPBUS_WIDTH : positive := 32
+   );
+   PORT( 
+      --cfd_discr_p_i        : IN     std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);         --! Inputs from constant-fraction discriminators
+      --cfd_discr_n_i        : IN     std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);         --! Input from CFD
+      clk_4x_logic         : IN     std_logic;                                          --! Rising edge active. By default = 4*40MHz = 160MHz
+      clk_200_i : IN     std_logic;
+      strobe_4x_logic_i    : IN     std_logic;                                          --! Pulses high once every 4 cycles of clk_4x_logic
+      threshold_discr_p_i  : IN     std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);         --! inputs from threshold comparators
+      threshold_discr_n_i  : IN     std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);         --! inputs from threshold comparators
+      reset_i              : IN     std_logic;
+      trigger_times_o      : OUT    t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);       --! trigger arrival time ( w.r.t. logic_strobe)
+      trigger_o            : OUT    std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);         --!  Goes high on leading edge of trigger, in sync with clk_4x_logic_i
+      --trigger_debug_o      : OUT    std_logic_vector ( ((2*g_NUM_INPUTS)-1) DOWNTO 0);  --! Copy of input trigger level. High bits CFD, Low threshold
+      edge_rising_times_o  : OUT    t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);       --! edge arrival time ( w.r.t. logic_strobe)
+      edge_falling_times_o : OUT    t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);       --! edge arrival time ( w.r.t. logic_strobe)
+      edge_rising_o        : OUT    std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);         --! High when rising edge. Syncronous with clk_4x_logic_i
+      edge_falling_o       : OUT    std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);         --! High when falling edge
+      ipbus_clk_i          : IN     std_logic;
+      ipbus_reset_i        : IN     std_logic;
+      ipbus_i              : IN     ipb_wbus;                                           --! Signals from IPBus core to slave
+      ipbus_o              : OUT    ipb_rbus;                                           --! signals from slave to IPBus core
+      clk_8x_logic_i      : IN     std_logic;                                          --! 320MHz clock ( 8x 40MHz )
+      strobe_8x_logic_i   : IN     std_logic                                           --! Pulses one cycle every 4 of 8x clock.
+   );
+
+-- Declarations
+END triggerInputs_newTLU ;
+
+--
+ARCHITECTURE rtl OF triggerInputs_newTLU IS
+  
+    signal s_rst_iserdes : std_logic := '0'; --! Reset ISERDES and IDELAY
+    signal s_threshold_discr_input , s_thr_in_p, s_thr_in_n : std_logic_vector(g_NUM_INPUTS-1 downto 0);  --! inputs from comparator
+    type t_deserialized_trigger_data_array is array ( natural range <> ) of std_logic_vector(7 downto 0); --
+    signal s_deserialized_threshold_data, s_deserialized_threshold_data_d , s_deserialized_cfd_data, s_deserialized_cfd_data_d : t_deserialized_trigger_data_array(g_NUM_INPUTS-1 downto 0);
+    type t_deserialized_trigger_data_array_l is array ( natural range <> ) of std_logic_vector(8 downto 0); --
+    signal s_deserialized_threshold_data_l , s_deserialized_cfd_data_l : t_deserialized_trigger_data_array_l(g_NUM_INPUTS-1 downto 0);
+    --signal s_cfd_trigger_times              : t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);
+    --signal s_CFD_rising_edge                : std_logic_vector(g_NUM_INPUTS-1 downto 0); 
+    --signal s_CFD_falling_edge               : std_logic_vector(g_NUM_INPUTS-1 downto 0); 
+    signal s_threshold_previous_late_bit    : std_logic_vector(g_NUM_INPUTS-1 downto 0) := (others => '0');  -- last bit to arrive from previous 4
+    --signal s_CFD_previous_late_bit          : std_logic_vector(g_NUM_INPUTS-1 downto 0) := (others => '0');  -- last bit to arrive from previous 4
+    signal s_ipbus_ack                      : std_logic := '0';  -- used to produce a delayed IPBus ack signal
+    signal s_edge_rising_times:   t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);  --! edge arrival time ( w.r.t. logic_strobe)
+    signal s_edge_falling_times:  t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);  --! edge arrival time ( w.r.t. logic_strobe)
+    signal s_edge_rising:         std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);    --! High when rising edge
+    signal s_edge_falling:        std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);    --! High when falling edge
+    constant c_N_CTRL : positive := 1;
+    constant c_N_STAT : positive := g_NUM_INPUTS+1 ;
+    signal s_status_to_ipbus , s_sync_status_to_ipbus: ipb_reg_v(c_N_STAT-1 downto 0);
+    signal s_control_from_ipbus , s_sync_control_from_ipbus: ipb_reg_v(c_N_CTRL-1 downto 0);
+    --  signal s_reset_reg , s_status_reg: std_logic_vector(g_IPBUS_WIDTH-1 downto 0) := (others => '0');
+    signal s_counter_reset, s_calibrate_idelay: std_logic := '0';
+  
+BEGIN
+    -----------------------------------------------------------------------------
+    -- IPBus interface 
+    -----------------------------------------------------------------------------
+
+    -- Can't get ipbus_syncreg_v to meet timing. So use non-syncronized followed
+    -- by synchronizer.
+    ipbus_registers: entity work.ipbus_ctrlreg_v
+    generic map (
+        N_STAT =>  c_N_STAT )
+    port map(
+        clk=> ipbus_clk_i,
+        reset => ipbus_reset_i ,
+        ipbus_in =>  ipbus_i,
+        ipbus_out => ipbus_o,
+        d=>  s_sync_status_to_ipbus,
+        q=>  s_control_from_ipbus,
+        stb => open
+        );
+
+    -- sync data from I/O logic to IPBus
+    sync_registers: entity work.synchronizeRegisters
+    generic map (
+        g_NUM_REGISTERS => c_N_STAT )
+    port map (
+        clk_input_i => clk_4x_logic,
+        data_i      => s_status_to_ipbus,
+        data_o      => s_sync_status_to_ipbus,
+        clk_output_i => ipbus_clk_i);
+
+    -- sync data from I/O logic to IPBus
+    sync_ipbus: entity work.synchronizeRegisters
+    generic map (
+        g_NUM_REGISTERS => c_N_CTRL )
+    port map (
+        clk_input_i => ipbus_clk_i,
+        data_i      => s_control_from_ipbus,
+        data_o      => s_sync_control_from_ipbus,
+        clk_output_i => clk_4x_logic);
+
+    -- Map the control registers...
+    -- Register that controls IODELAY and ISERDES reset is at address 0
+    s_rst_iserdes <= reset_i or s_sync_control_from_ipbus(0)(0);
+    s_counter_reset <= s_sync_control_from_ipbus(0)(1);
+    s_calibrate_idelay <= s_sync_control_from_ipbus(0)(2);
+  
+    s_status_to_ipbus(0)(0) <= s_rst_iserdes;
+    s_status_to_ipbus(0)(1) <= s_counter_reset;
+    s_status_to_ipbus(0)(2) <= s_calibrate_idelay;
+    -- Connect up unused lines in status regiser to 0.
+    s_status_to_ipbus(0)(3) <= '0';
+    s_status_to_ipbus(0)(g_IPBUS_WIDTH-1 downto 28) <= (others => '0');
+
+    -----------------------------------------------------------------------------
+    -- Connect up trigger inputs to deserializers and a LUT to determine
+    -- arrival time
+    -----------------------------------------------------------------------------
+    idelaytriggers0: idelayctrl port map(
+          refclk => clk_200_i,
+          rst => reset_i
+    );
+ 
+    --BEGIN FOR LOOP
+    trigger_input_loop: for triggerInput in 0 to (g_NUM_INPUTS-1) generate
+
+--        thresholdInputBuffer: IBUFDS
+--          generic map (
+--            DIFF_TERM        => true,
+--            IBUF_LOW_PWR     => false,
+--            IOSTANDARD       => "LVDS_25")
+--          port map (
+--            O  => s_threshold_discr_input(triggerInput),
+--            I  => threshold_discr_p_i(triggerInput),
+--            IB => threshold_discr_n_i(triggerInput)
+--            );
+    
+        IBUFDS_DIFF_OUT_inst : IBUFDS_DIFF_OUT
+        generic map (
+            IBUF_LOW_PWR => false,
+            IOSTANDARD       => "LVDS_25"
+        )
+        port map (
+            O => s_thr_in_p(triggerInput),
+            OB => s_thr_in_n(triggerInput),
+            I => threshold_discr_p_i(triggerInput),
+            IB => threshold_discr_n_i(triggerInput)
+        );
+            
+        thresholdDeserializer: entity work.dualSERDES_1to4
+        port map (
+            reset_i 			=> s_rst_iserdes,
+            --calibrate_i 		=> s_calibrate_idelay,
+            --data_i         => s_threshold_discr_input(triggerInput),
+            data_i         => '0',
+            data_i_pos     => s_thr_in_p(triggerInput),
+            data_i_neg     => s_thr_in_n(triggerInput),
+            fastClk_i      => clk_8x_logic_i,
+            fabricClk_i    => clk_4x_logic,
+            strobe_i       => strobe_8x_logic_i,
+            data_o         => s_deserialized_threshold_data(triggerInput),
+            status_o       => s_status_to_ipbus(0)(5+(2*triggerInput) downto 4+(2*triggerInput))
+        );
+                  
+        s_deserialized_threshold_data_l(triggerInput) <= s_deserialized_threshold_data(triggerInput) & s_threshold_previous_late_bit(triggerInput);
+            
+        thresholdLUT : entity work.arrivalTimeLUT
+        port map (
+            clk_4x_logic_i      => clk_4x_logic,
+            strobe_4x_logic_i   => strobe_4x_logic_i,
+            deserialized_data_i => s_deserialized_threshold_data_l(triggerInput),
+            first_rising_edge_time_o => s_edge_rising_times(triggerInput), 
+            last_falling_edge_time_o => s_edge_falling_times(triggerInput), 
+            rising_edge_o       => s_edge_rising(triggerInput), 
+            falling_edge_o      => s_edge_falling(triggerInput),
+            multiple_edges_o    => open
+        );
+        
+        -- The leading edge may be a high-->low or a low-->high transition (
+        -- depending on polarity of input signal. ). For now assume that leading
+        -- edge is low-->high and connect trigger times and trigger output accordingly.
+        -- In the future have this selectable.
+        edge_rising_times_o(triggerInput) <= s_edge_rising_times(triggerInput);
+        edge_falling_times_o(triggerInput) <= s_edge_falling_times(triggerInput);
+        edge_rising_o(triggerInput) <= s_edge_rising(triggerInput);
+        edge_falling_o(triggerInput) <= s_edge_falling(triggerInput);
+        trigger_times_o(triggerInput) <= s_edge_rising_times(triggerInput);
+        trigger_o(triggerInput) <= s_edge_rising(triggerInput);
+            
+    
+        p_register_delayed_bits : process ( clk_4x_logic ) 
+        begin 
+            if rising_edge(clk_4x_logic) then
+                s_threshold_previous_late_bit(triggerInput) <= s_deserialized_threshold_data(triggerInput)(7);
+                --s_CFD_previous_late_bit(triggerInput) <= s_deserialized_CFD_data(triggerInput)(7);
+                -- Monitor output of serdes - just look at one per serdes
+                -- Don't care about latency so put a couple of registers in to aid
+                -- timing closure.
+                s_status_to_ipbus(0)(20+triggerInput) <= s_threshold_previous_late_bit(triggerInput);
+                --s_status_to_ipbus(0)(24+triggerInput) <= s_CFD_previous_late_bit(triggerInput);
+            end if ; 
+        end process;
+        
+        --! Instantiate counter for output triggers.
+        --! Input I is connected to address I+1
+        cmp_inputTriggerCounter : entity work.counterWithReset
+        generic map (
+            g_COUNTER_WIDTH => g_IPBUS_WIDTH)
+        port map (
+            clock_i  => clk_4x_logic,
+            reset_i  => s_counter_reset,
+            enable_i => s_edge_rising(triggerInput),
+            result_o => s_status_to_ipbus(triggerInput+1)
+        );
+    end generate trigger_input_loop;
+  --END FOR LOOP
+  
+  --trigger_debug_o( (g_NUM_INPUTS-1) downto 0) <= s_threshold_discr_input;
+  --trigger_debug_o( ((2*g_NUM_INPUTS)-1) downto g_NUM_INPUTS) <=  s_edge_rising;
+  
+END ARCHITECTURE rtl;
+
diff --git a/legacy/TLU_v1e/hdl/trigger/triggerInputs_rtl.vhd b/legacy/TLU_v1e/hdl/trigger/triggerInputs_rtl.vhd
new file mode 100644
index 00000000..3d83e3d6
--- /dev/null
+++ b/legacy/TLU_v1e/hdl/trigger/triggerInputs_rtl.vhd
@@ -0,0 +1,338 @@
+--=============================================================================
+--! @file triggerInputs_rtl.vhd
+--=============================================================================
+--
+-------------------------------------------------------------------------------
+-- --
+-- University of Bristol, High Energy Physics Group.
+-- --
+------------------------------------------------------------------------------- --
+-- VHDL Architecture fmc_mTLU_lib.triggerInputs.rtl
+--
+--------------------------------------------------------------------------------
+-- 
+-- Created using using Mentor Graphics HDL Designer(TM) 2010.3 (Build 21)
+--
+LIBRARY ieee;
+USE ieee.std_logic_1164.all;
+USE ieee.numeric_std.all;
+
+USE work.ipbus.all;
+use work.ipbus_reg_types.all;
+
+USE work.fmcTLU.all;
+
+
+library unisim ;
+use unisim.vcomponents.all;
+
+--! @brief Measures arrival time of trigger pulses using two deserializers
+--! clocked on 14x clock ( 640MHz) 
+--! Based on TDC code by Alvaro Dosil
+--!
+--! @author David Cussans , David.Cussans@bristol.ac.uk
+--!
+--!
+--! @date 15:43:57 11/08/12
+--!
+--! @version v0.1
+--!
+--! @details
+--! \li IPBus address 0 = control and status
+--!  \li bit0 = reset serdes
+--!  \li bit1 = reset counter
+--!  \li bit2 = calibrate IDELAYs
+--!  \li bit3 = not connected
+--!  \li bit4 = Thresh discr  IDelay(0) status prompt
+--!  \li bit5 = Thresh discr  IDelay(0) status delayed
+--!  \li bit6 = Thresh discr  IDelay(1) status prompt
+--!  \li bit7 = Thresh discr  IDelay(1) status delayed
+--!  \li bit8 = Thresh discr  IDelay(2) status prompt
+--!  \li bit9 = Thresh discr  IDelay(2) status delayed
+--!  \li bit10= Thresh discr  IDelay(3) status prompt
+--!  \li bit11= Thresh discr  IDelay(3) status delayed
+--!  \li bit12= CFD discr  IDelay(0) status prompt
+--!  \li bit13= CFD discr  IDelay(0) status delayed
+--!  \li bit14= CFD discr  IDelay(1) status prompt
+--!  \li bit15= CFD discr  IDelay(1) status delayed
+--!  \li bit16= CFD discr  IDelay(2) status prompt
+--!  \li bit17= CFD discr  IDelay(2) status delayed
+--!  \li bit18= CFD discr  IDelay(3) status prompt
+--!  \li bit19= CFD discr  IDelay(3) status delayed
+--!  \li bit20= Thresh deserialized data monitor(0)
+--!  \li bit21= Thresh deserialized data monitor(1)
+--!  \li bit22= Thresh deserialized data monitor(2)
+--!  \li bit23= Thresh deserialized data monitor(3)
+--!  \li bit24= CFD deserialized data monitor(0)
+--!  \li bit25= CFD deserialized data monitor(1)
+--!  \li bit26= CFD deserialized data monitor(2)
+--!  \li bit27= CFD deserialized data monitor(3)
+--!
+--! \li IPBus address 1 = edge rising(0) counter
+--! \li IPBus address 2 = edge rising(1) counter
+--! \li IPBus address 3 = edge rising(2) counter
+--! \li IPBus address 4 = edge rising(3) counter
+--!
+--!
+--! <b>Modified by: Alvaro Dosil , alvaro.dosil@usc.es </b>\n
+--! Author: 
+-------------------------------------------------------------------------------
+--! \n\n<b>Last changes:</b>\n
+-------------------------------------------------------------------------------
+--! @todo Implement a periodic calibration sequence 
+--
+
+ENTITY triggerInputs IS
+   GENERIC( 
+      g_NUM_INPUTS  : natural  := 1;
+      g_IPBUS_WIDTH : positive := 32
+   );
+   PORT( 
+      cfd_discr_p_i        : IN     std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);         --! Inputs from constant-fraction discriminators
+      cfd_discr_n_i        : IN     std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);         --! Input from CFD
+      clk_4x_logic         : IN     std_logic;                                          --! Rising edge active. By default = 4*40MHz = 160MHz
+      strobe_4x_logic_i    : IN     std_logic;                                          --! Pulses high once every 4 cycles of clk_4x_logic
+      threshold_discr_p_i  : IN     std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);         --! inputs from threshold comparators
+      threshold_discr_n_i  : IN     std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);         --! inputs from threshold comparators
+      reset_i              : IN     std_logic;
+      trigger_times_o      : OUT    t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);       --! trigger arrival time ( w.r.t. logic_strobe)
+      trigger_o            : OUT    std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);         --!  Goes high on leading edge of trigger, in sync with clk_4x_logic_i
+      trigger_debug_o      : OUT    std_logic_vector ( ((2*g_NUM_INPUTS)-1) DOWNTO 0);  --! Copy of input trigger level. High bits CFD, Low threshold
+      edge_rising_times_o  : OUT    t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);       --! edge arrival time ( w.r.t. logic_strobe)
+      edge_falling_times_o : OUT    t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);       --! edge arrival time ( w.r.t. logic_strobe)
+      edge_rising_o        : OUT    std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);         --! High when rising edge. Syncronous with clk_4x_logic_i
+      edge_falling_o       : OUT    std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);         --! High when falling edge
+      ipbus_clk_i          : IN     std_logic;
+      ipbus_reset_i        : IN     std_logic;
+      ipbus_i              : IN     ipb_wbus;                                           --! Signals from IPBus core to slave
+      ipbus_o              : OUT    ipb_rbus;                                           --! signals from slave to IPBus core
+      clk_16x_logic_i      : IN     std_logic;                                          --! 640MHz clock ( 16x 40MHz )
+      strobe_16x_logic_i   : IN     std_logic                                           --! Pulses one cycle every 4 of 16x clock.
+   );
+
+-- Declarations
+
+END triggerInputs ;
+
+--
+ARCHITECTURE rtl OF triggerInputs IS
+  
+  signal s_rst_iserdes : std_logic := '0'; --! Reset ISERDES and IDELAY
+  
+  signal s_threshold_discr_input , s_cfd_discr_input : std_logic_vector(g_NUM_INPUTS-1 downto 0);  --! inputs from comparator
+
+  type t_deserialized_trigger_data_array is array ( natural range <> ) of std_logic_vector(7 downto 0); --
+  signal s_deserialized_threshold_data, s_deserialized_threshold_data_d , s_deserialized_cfd_data, s_deserialized_cfd_data_d : t_deserialized_trigger_data_array(g_NUM_INPUTS-1 downto 0);
+
+  type t_deserialized_trigger_data_array_l is array ( natural range <> ) of std_logic_vector(8 downto 0); --
+  signal s_deserialized_threshold_data_l , s_deserialized_cfd_data_l : t_deserialized_trigger_data_array_l(g_NUM_INPUTS-1 downto 0);
+
+  signal s_cfd_trigger_times              : t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);
+  
+  signal s_CFD_rising_edge                : std_logic_vector(g_NUM_INPUTS-1 downto 0); 
+  signal s_CFD_falling_edge               : std_logic_vector(g_NUM_INPUTS-1 downto 0); 
+  
+  signal s_threshold_previous_late_bit    : std_logic_vector(g_NUM_INPUTS-1 downto 0) := (others => '0');  -- last bit to arrive from previous 4
+  signal s_CFD_previous_late_bit          : std_logic_vector(g_NUM_INPUTS-1 downto 0) := (others => '0');  -- last bit to arrive from previous 4
+  
+  signal s_ipbus_ack                      : std_logic := '0';  -- used to produce a delayed IPBus ack signal
+
+  signal s_edge_rising_times:   t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);  --! edge arrival time ( w.r.t. logic_strobe)
+  signal s_edge_falling_times:  t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);  --! edge arrival time ( w.r.t. logic_strobe)
+  signal s_edge_rising:         std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);    --! High when rising edge
+  signal s_edge_falling:        std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);    --! High when falling edge
+
+  constant c_N_CTRL : positive := 1;
+  constant c_N_STAT : positive := g_NUM_INPUTS+1 ;
+  signal s_status_to_ipbus , s_sync_status_to_ipbus: ipb_reg_v(c_N_STAT-1 downto 0);
+  signal s_control_from_ipbus , s_sync_control_from_ipbus: ipb_reg_v(c_N_CTRL-1 downto 0);
+--  signal s_reset_reg , s_status_reg: std_logic_vector(g_IPBUS_WIDTH-1 downto 0) := (others => '0');
+  signal s_counter_reset, s_calibrate_idelay: std_logic := '0';
+  
+BEGIN
+  -----------------------------------------------------------------------------
+  -- IPBus interface 
+  -----------------------------------------------------------------------------
+
+  -- Can't get ipbus_syncreg_v to meet timing. So use non-syncronized followed
+  -- by synchronizer.
+  ipbus_registers: entity work.ipbus_ctrlreg_v
+    generic map (
+      N_STAT =>  c_N_STAT )
+    port map(
+      clk=> ipbus_clk_i,
+      reset => ipbus_reset_i ,
+      ipbus_in =>  ipbus_i,
+      ipbus_out => ipbus_o,
+      d=>  s_sync_status_to_ipbus,
+      q=>  s_control_from_ipbus,
+      stb => open
+      );
+
+  -- sync data from I/O logic to IPBus
+  sync_registers: entity work.synchronizeRegisters
+    generic map (
+      g_NUM_REGISTERS => c_N_STAT )
+    port map (
+      clk_input_i => clk_4x_logic,
+      data_i      => s_status_to_ipbus,
+      data_o      => s_sync_status_to_ipbus,
+      clk_output_i => ipbus_clk_i);
+
+  -- sync data from I/O logic to IPBus
+  sync_ipbus: entity work.synchronizeRegisters
+    generic map (
+      g_NUM_REGISTERS => c_N_CTRL )
+    port map (
+      clk_input_i => ipbus_clk_i,
+      data_i      => s_control_from_ipbus,
+      data_o      => s_sync_control_from_ipbus,
+      clk_output_i => clk_4x_logic);
+
+  -- Map the control registers...
+  -- Register that controls IODELAY and ISERDES reset is at address 0
+  s_rst_iserdes <= reset_i or s_sync_control_from_ipbus(0)(0);
+  s_counter_reset <= s_sync_control_from_ipbus(0)(1);
+  s_calibrate_idelay <= s_sync_control_from_ipbus(0)(2);
+  
+  s_status_to_ipbus(0)(0) <= s_rst_iserdes;
+  s_status_to_ipbus(0)(1) <= s_counter_reset;
+  s_status_to_ipbus(0)(2) <= s_calibrate_idelay;
+  -- Connect up unused lines in status regiser to 0.
+  s_status_to_ipbus(0)(3) <= '0';
+  s_status_to_ipbus(0)(g_IPBUS_WIDTH-1 downto 28) <= (others => '0');
+
+  -----------------------------------------------------------------------------
+  -- Connect up trigger inputs to deserializers and a LUT to determine
+  -- arrival time
+  -----------------------------------------------------------------------------
+ 
+  --BEGIN FOR LOOP
+  trigger_input_loop: for triggerInput in 0 to (g_NUM_INPUTS-1) generate
+
+        thresholdInputBuffer: IBUFDS
+          generic map (
+            DIFF_TERM        => true,
+            IBUF_LOW_PWR     => false,
+            IOSTANDARD       => "LVDS_25")
+          port map (
+            O  => s_threshold_discr_input(triggerInput),
+            I  => threshold_discr_p_i(triggerInput),
+            IB => threshold_discr_n_i(triggerInput)
+            );
+    
+        thresholdDeserializer: entity work.dualSERDES_1to4
+          port map (
+            reset_i 			=> s_rst_iserdes,
+            --calibrate_i 		=> s_calibrate_idelay,
+            data_i         => s_threshold_discr_input(triggerInput),
+            fastClk_i      => clk_16x_logic_i,
+            fabricClk_i    => clk_4x_logic,
+            strobe_i       => strobe_16x_logic_i,
+            data_o         => s_deserialized_threshold_data(triggerInput),
+            status_o       => s_status_to_ipbus(0)(5+(2*triggerInput) downto 4+(2*triggerInput))
+            );
+              
+          --s_deserialized_threshold_data_l(triggerInput) <= s_deserialized_threshold_data(triggerInput)(3 downto 0) & s_deserialized_threshold_data_d(triggerInput)(7 downto 3);
+        s_deserialized_threshold_data_l(triggerInput) <= s_deserialized_threshold_data(triggerInput) & s_threshold_previous_late_bit(triggerInput);
+        thresholdLUT : entity work.arrivalTimeLUT
+          port map (
+            clk_4x_logic_i      => clk_4x_logic,
+            strobe_4x_logic_i   => strobe_4x_logic_i,
+            deserialized_data_i => s_deserialized_threshold_data_l(triggerInput),
+            first_rising_edge_time_o => s_edge_rising_times(triggerInput), 
+            last_falling_edge_time_o => s_edge_falling_times(triggerInput), 
+            rising_edge_o       => s_edge_rising(triggerInput), 
+            falling_edge_o      => s_edge_falling(triggerInput),
+            multiple_edges_o    => open
+            );
+    
+        -- The leading edge may be a high-->low or a low-->high transition (
+        -- depending on polarity of input signal. ). For now assume that leading
+        -- edge is low-->high and connect trigger times and trigger output accordingly.
+        -- In the future have this selectable.
+        edge_rising_times_o(triggerInput) <= s_edge_rising_times(triggerInput);
+        edge_falling_times_o(triggerInput) <= s_edge_falling_times(triggerInput);
+        edge_rising_o(triggerInput) <= s_edge_rising(triggerInput);
+        edge_falling_o(triggerInput) <= s_edge_falling(triggerInput);
+        trigger_times_o(triggerInput) <= s_edge_rising_times(triggerInput);
+        trigger_o(triggerInput) <= s_edge_rising(triggerInput);
+        
+        
+        CFDInputBuffer: IBUFDS
+          generic map (
+            DIFF_TERM        => true,
+            IBUF_LOW_PWR     => false,
+            IOSTANDARD       => "LVDS_25")
+          port map (
+            O  => s_CFD_discr_input(triggerInput),
+            I  => CFD_discr_p_i(triggerInput),
+            IB => CFD_discr_n_i(triggerInput)
+            );
+    
+        CFDDeserializer: entity work.dualSERDES_1to4
+          port map (
+            reset_i => s_rst_iserdes,
+            --calibrate_i => s_calibrate_idelay,
+            data_i         => s_CFD_discr_input(triggerInput),
+            fastClk_i      => clk_16x_logic_i,
+            fabricClk_i    => clk_4x_logic,
+            strobe_i       => strobe_16x_logic_i,
+            data_o         => s_deserialized_CFD_data(triggerInput),
+            status_o       => s_status_to_ipbus(0)(13+(2*triggerInput) downto 12+(2*triggerInput))
+            );
+        --s_deserialized_CFD_data(triggerInput) <= (others=>'0');
+          
+        s_deserialized_CFD_data_l(triggerInput) <= s_deserialized_CFD_data(triggerInput) & s_CFD_previous_late_bit(triggerInput);
+        CFDLUT : entity work.arrivalTimeLUT
+          port map (
+            clk_4x_logic_i      => clk_4x_logic,
+            strobe_4x_logic_i   => strobe_4x_logic_i,
+            deserialized_data_i => s_deserialized_CFD_data_l(triggerInput),
+            first_rising_edge_time_o => s_cfd_trigger_times(triggerInput),
+            last_falling_edge_time_o => open, 
+            rising_edge_o       => s_CFD_rising_edge(triggerInput),
+            falling_edge_o      => s_CFD_falling_edge(triggerInput),
+            multiple_edges_o    => open
+            );
+    
+        p_register_delayed_bits : process ( clk_4x_logic ) 
+        begin 
+          if rising_edge(clk_4x_logic) then
+            s_threshold_previous_late_bit(triggerInput) <= s_deserialized_threshold_data(triggerInput)(7);
+              --s_deserialized_threshold_data_d(triggerInput) <= s_deserialized_threshold_data(triggerInput);
+            s_CFD_previous_late_bit(triggerInput) <= s_deserialized_CFD_data(triggerInput)(7);
+    
+            -- Monitor output of serdes - just look at one per serdes
+            -- Don't care about latency so put a couple of registers in to aid
+            -- timing closure.
+            s_status_to_ipbus(0)(20+triggerInput) <= s_threshold_previous_late_bit(triggerInput);
+            s_status_to_ipbus(0)(24+triggerInput) <= s_CFD_previous_late_bit(triggerInput);
+        
+          end if ; 
+        end process;
+    
+        --! Instantiate counter for output triggers.
+        --! Input I is connected to address I+1
+        cmp_inputTriggerCounter : entity work.counterWithReset
+          generic map (
+            g_COUNTER_WIDTH => g_IPBUS_WIDTH)
+        port map (
+          clock_i  => clk_4x_logic,
+          reset_i  => s_counter_reset,
+          enable_i => s_edge_rising(triggerInput),
+          result_o => s_status_to_ipbus(triggerInput+1));
+    
+  end generate trigger_input_loop;
+  --END FOR LOOP
+  
+  --trigger_debug_o( ((2*g_NUM_INPUTS)-1) downto g_NUM_INPUTS) <= s_CFD_discr_input;
+  --trigger_debug_o( ((2*g_NUM_INPUTS)-1) downto g_NUM_INPUTS) <= s_edge_rising;
+  --! Monitor output of deserializer
+  -- trigger_debug_o( ((2*g_NUM_INPUTS)-1) downto g_NUM_INPUTS) <=  s_status_to_ipbus(0)(23 downto 20);
+  --trigger_debug_o( (g_NUM_INPUTS-1) downto 0) <=  s_edge_rising;
+  trigger_debug_o( (g_NUM_INPUTS-1) downto 0) <= s_threshold_discr_input;
+  trigger_debug_o( ((2*g_NUM_INPUTS)-1) downto g_NUM_INPUTS) <=  s_edge_rising;
+  
+END ARCHITECTURE rtl;
+
diff --git a/legacy/TLU_v1e/hdl/trigger/triggerLogic_rtl.vhd b/legacy/TLU_v1e/hdl/trigger/triggerLogic_rtl.vhd
new file mode 100644
index 00000000..2ff175d3
--- /dev/null
+++ b/legacy/TLU_v1e/hdl/trigger/triggerLogic_rtl.vhd
@@ -0,0 +1,355 @@
+--=============================================================================
+--! @file triggerLogic_rtl.vhd
+--=============================================================================
+--
+-------------------------------------------------------------------------------
+-- --
+-- University of Bristol, High Energy Physics Group.
+-- --
+------------------------------------------------------------------------------- --
+-- VHDL Architecture fmc_mTLU_lib.triggerLogic.rtl
+--
+-- 
+-- Created using using Mentor Graphics HDL Designer(TM) 2010.3 (Build 21)
+--
+LIBRARY ieee;
+USE ieee.std_logic_1164.all;
+USE ieee.numeric_std.all;
+
+USE work.ipbus.all;
+use work.ipbus_reg_types.all;
+
+USE work.fmcTLU.all;
+
+--! @brief Produces triggers from either trigger inputs or internal generator
+--!
+--! @author David Cussans , David.Cussans@bristol.ac.uk
+--!
+--! @date 16:06:19 11/09/12
+--!
+--! @version v0.1
+--!
+--! @details
+--! \br IPBus address map:
+--! \li 0x00000000 RO - Number of triggers issued since last reset.
+--! \li 0x00000001 RO - Number of possible triggers since last reset (i.e. pre-veto triggers)
+--! \li 0x00000010 RW - Interval between internal triggers in ticks of logic_strobe_i
+--! \li 0x00000011 RW - trigger pattern - value that gets loaded into CFGLUT5
+--! \li 0x00000100 RW - bit-0 - internal trigger veto. Set high to halt triggers.
+--! \li 0x00000101 RO - state of external veto
+--! \li 0x00000110 RW - stretch of pulses. Additional width = 0-31 clock cycles.
+--! \li 0x00000111 RW - delay of pulses. 0-31 clock cycles.
+--!
+--! <b>Modified by: Alvaro Dosil , alvaro.dosil@usc.es </b>\n
+-------------------------------------------------------------------------------
+--! \n\n<b>Last changes:</b>\n
+--! Move all IPBus stuff into ipbus_syncreg_v , which also handles clock domain
+--! crossing. 20/Feb/2014 , David Cussans
+--! Add stretchPulse and coincidenceLogic entities. May/15 , David Cussans
+-------------------------------------------------------------------------------
+ENTITY triggerLogic IS
+   GENERIC( 
+      g_NUM_INPUTS  : positive := 4; 
+      g_IPBUS_WIDTH : positive := 32 
+   );
+   PORT( 
+      clk_4x_logic_i      : IN     std_logic;                                     -- ! Rising edge active
+      ipbus_clk_i         : IN     std_logic;
+      ipbus_i             : IN     ipb_wbus;                                      -- Signals from IPBus core to slave
+      ipbus_reset_i       : IN     std_logic;
+      logic_reset_i       : IN     std_logic;                                     -- active high. Synchronous with clk_4x_logic
+      logic_strobe_i      : IN     std_logic;                                     -- ! Pulses high once every 4 cycles of clk_4x_logic
+      trigger_i           : IN     std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);    -- ! High when trigger from input connector active
+      trigger_times_i     : IN     t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);  --! trigger arrival time
+      veto_i              : IN     std_logic;                                     -- ! Halts triggers when high
+      trigger_o           : OUT    std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0);    -- ! High when trigger from input connector active and enabled
+      trigger_times_o     : OUT    t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);  --! trigger arrival time
+      event_number_o      : OUT    std_logic_vector (g_IPBUS_WIDTH-1 DOWNTO 0);   -- starts at one. Increments for each post_veto_trigger
+      ipbus_o             : OUT    ipb_rbus;                                      -- signals from slave to IPBus core
+      post_veto_trigger_o : OUT    std_logic;                                     -- ! goes high when trigger passes
+      pre_veto_trigger_o  : OUT    std_logic;
+      trigger_active_o    : OUT    std_logic                                      --! Goes high when triggers are active ( ie. not veoted)
+   );
+
+-- Declarations
+
+END triggerLogic ;
+
+--
+ARCHITECTURE rtl OF triggerLogic IS
+
+    --! vector that stores trigger output for each combination of trigger inputs.
+    signal s_trigger_inputs_enabled , s_trigger_inputs_enabled_ipb : std_logic_vector(g_IPBUS_WIDTH-1 downto 0) := x"00000001";--(others=>'1');  
+    signal s_external_trigger_p , s_external_trigger_l , s_auxTrigger , s_internal_veto , s_internal_veto_ipb : std_logic := '0';
+    signal s_internal_trigger_interval: std_logic_vector(g_IPBUS_WIDTH-1 downto 0) := (others => '0');  -- setting s_internal_trigger_interval to zero means no internal triggers
+    signal s_pre_veto_trigger_counter , s_post_veto_trigger_counter , s_aux_trigger_counter: unsigned(g_IPBUS_WIDTH-1 downto 0) := (others => '0');  -- ! counters for triggers before and after veto
+    signal s_pre_veto_trigger_counter_ipb , s_post_veto_trigger_counter_ipb : std_logic_vector(g_IPBUS_WIDTH-1 downto 0) := (others => '0');  -- ! counters for triggers before and after veto, on ipbus clock domain
+    
+    signal s_triggers : std_logic_vector (g_NUM_INPUTS-1 DOWNTO 0) := (others=>'0');
+    signal s_trigger_times : t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0) := (others=>(others=>'0'));
+    signal s_internal_trigger, s_internal_trigger_d : std_logic := '0';  -- ! Strobes high for one clock cycle at intervals of s_internal_trigger_interval cycles
+    --  signal s_internal_trigger_timer : unsigned(g_IPBUS_WIDTH-1 downto 0) := (others => '0');  -- counter for internal trigger generation
+    signal s_internal_trigger_timer , s_internal_trigger_timer_d : std_logic_vector(g_IPBUS_WIDTH-1 downto 0) := (others => '0');  -- counter for internal trigger generation and counter delay
+    signal s_internal_trigger_active , s_internal_trigger_active_d, s_internal_trigger_active_ipb : std_logic := '0';  -- ! Goes high when internal trigger is running.
+    
+    --  signal s_logic_reset ,  s_logic_reset_ipb : std_logic := '0';  -- ! Take high to reset counters etc.
+    signal s_pre_veto_trigger ,s_post_veto_trigger : std_logic := '0';  -- ! Can't read from an output port so keep internal copy
+    
+    signal s_TriggerPattern_low : std_logic_vector(g_IPBUS_WIDTH-1 downto 0) := (others => '0');  --! Pattern to load into LUT for trigger generation (low 32-bits)
+    signal s_TriggerPattern_high : std_logic_vector(g_IPBUS_WIDTH-1 downto 0) := (others => '0');  --! Pattern to load into LUT for trigger generation (high 32-bits)
+    
+    signal s_PulseStretchWord : std_logic_vector(g_IPBUS_WIDTH-1 downto 0) := (others => '0');  --! Length of trigger pulses
+    signal s_PulseWidthWord : std_logic_vector(g_IPBUS_WIDTH-1 downto 0) := (others => '0');  --! Length of trigger pulses
+    signal s_PulseDelayWord : std_logic_vector(g_IPBUS_WIDTH-1 downto 0) := (others => '0');  --!number of cycles to delay trigger pulses.
+    signal s_TriggerHoldOffWord : std_logic_vector(g_IPBUS_WIDTH-1 downto 0) := (others => '0'); --! minimum number of clock cycles between triggers
+    
+    constant c_PARAM_WIDTH : positive := 5;    -- length of pulse width and delay.
+    constant c_BYTE_WIDTH : positive := 5;    --Length of padded field for parameters. This should be at least equal to c_PARAM_WIDTH.
+                                              --If c_BYTE_WIDTH= 8 then the values are aligned to bytes in the 32-bit word (but we cannot store 6 of them...)
+                                              --If c_BYTE_WIDTH=5 then all the values are one after the other.
+    
+    constant c_N_CTRL : positive := 16;
+    constant c_N_STAT : positive := 16;
+    signal s_controlRegStrobes : std_logic_vector(c_N_CTRL-1 downto 0) := ( others => '0') ; --!
+                                                                             --Bit strobes when control reg is loaded
+    signal s_status_to_ipbus, s_sync_status_to_ipbus : ipb_reg_v(c_N_STAT-1 downto 0);
+    signal s_control_from_ipbus,s_sync_control_from_ipbus  : ipb_reg_v(c_N_CTRL-1 downto 0);
+    signal s_veto_word : std_logic_vector(g_IPBUS_WIDTH-1 downto 0) := (others => '0');
+    signal s_external_veto_word : std_logic_vector(g_IPBUS_WIDTH-1 downto 0) := (others => '0');
+    signal s_loadTriggerPattern , s_loadTriggerPattern_p1 : std_logic := '0';  -- take high to load trigger pattern
+    signal s_loadTriggerPatternHi , s_loadTriggerPatternHi_p1 : std_logic := '0';  -- take high to load trigger pattern
+    
+    signal s_delayedTriggerTimes, s_delayedTriggerTimes_d1, s_delayedTriggerTimes_d2 : t_triggerTimeArray (g_NUM_INPUTS-1 DOWNTO 0);  --! Array of std_logic_vectors
+    signal s_stretchedTriggers ,  s_stretchedTriggers_d1 ,  s_stretchedTriggers_d2 : std_logic_vector( trigger_i'range) := (others => '0');  -- --! Triggers after stretch and delay
+    
+    COMPONENT internalTriggerGenerator
+    PORT (
+        CLK : IN STD_LOGIC;
+        CE : IN STD_LOGIC;
+        LOAD : IN STD_LOGIC;
+        L : IN STD_LOGIC_VECTOR(31 DOWNTO 0);
+        Q : OUT STD_LOGIC_VECTOR(31 DOWNTO 0)
+    );
+    END COMPONENT;
+  
+BEGIN
+  -----------------------------------------------------------------------------
+  -- IPBus interface 
+  -----------------------------------------------------------------------------
+    ipbus_registers: entity work.ipbus_ctrlreg_v
+    generic map(
+        N_CTRL => c_N_CTRL,
+        N_STAT => c_N_STAT
+    )
+    port map(
+        clk => ipbus_clk_i,
+        reset=> '0',--ipbus_reset_i ,
+        ipbus_in=>  ipbus_i,
+        ipbus_out=> ipbus_o,
+        d=>  s_sync_status_to_ipbus,
+        q=>  s_control_from_ipbus,
+        stb=> s_controlRegStrobes
+    );
+
+  -- Synchronize registers from logic clock to ipbus.
+    sync_status: entity work.synchronizeRegisters
+    generic map (
+        g_NUM_REGISTERS => c_N_STAT )
+    port map (
+        clk_input_i => clk_4x_logic_i,
+        data_i      =>  s_status_to_ipbus,
+        data_o      => s_sync_status_to_ipbus,
+        clk_output_i => ipbus_clk_i);
+
+    -- Synchronize registers from logic clock to ipbus.
+    sync_ctrl: entity work.synchronizeRegisters
+    generic map (
+        g_NUM_REGISTERS => c_N_CTRL )
+    port map (
+        clk_input_i => ipbus_clk_i,
+        data_i      =>  s_control_from_ipbus,
+        data_o      => s_sync_control_from_ipbus,
+        clk_output_i => clk_4x_logic_i);
+
+  -- Map the control registers
+  -- workaround to match the number of clock cycles with the configured interval
+    s_internal_trigger_interval <= x"00000000" when s_sync_control_from_ipbus(2)<x"00000005" else
+										std_logic_vector(unsigned(s_sync_control_from_ipbus(2))-2);
+										
+    --s_TriggerPattern_low <= s_control_from_ipbus(3);
+    s_LoadTriggerPattern_p1 <= s_controlRegStrobes(10);
+    s_LoadTriggerPatternHi_p1 <= s_controlRegStrobes(11);
+    s_veto_word <= s_sync_control_from_ipbus(4);
+    s_internal_veto <= s_veto_word(0);
+    s_PulseWidthWord <= s_sync_control_from_ipbus(6);
+    s_PulseDelayWord <= s_sync_control_from_ipbus(7);
+    s_TriggerHoldOffWord <= s_sync_control_from_ipbus(8);
+    s_TriggerPattern_low <= s_control_from_ipbus(10);
+    s_TriggerPattern_high <= s_control_from_ipbus(11);
+    --s_PulseWidthWord <=s_sync_control_from_ipbus(10);
+    
+    s_external_veto_word(0) <= veto_i;
+    s_external_veto_word(g_IPBUS_WIDTH-1 downto 1) <= (others=>'0');
+    
+    -- Map the status registers
+    s_status_to_ipbus(0) <= std_logic_vector(s_post_veto_trigger_counter);
+    s_status_to_ipbus(1) <= std_logic_vector(s_pre_veto_trigger_counter);
+    s_status_to_ipbus(2) <= s_internal_trigger_interval;
+    --s_status_to_ipbus(3) <= s_TriggerPattern_low;
+    s_status_to_ipbus(4) <= s_veto_word;
+    s_status_to_ipbus(5) <= s_external_veto_word;
+    s_status_to_ipbus(6) <= s_PulseWidthWord; 
+    s_status_to_ipbus(7) <= s_PulseDelayWord; --fixed in addr. map
+    s_status_to_ipbus(8) <= s_TriggerHoldOffWord;
+    s_status_to_ipbus(9) <= std_logic_vector(s_aux_trigger_counter);-- not used and never updated. Remove at some point.
+    s_status_to_ipbus(10) <= s_TriggerPattern_low;
+    s_status_to_ipbus(11) <= s_TriggerPattern_high;
+
+    -- purpose: Delay pulse that loads trigger pattern by one cycle of IPBus clk.
+    -- type   : combinational
+    -- inputs : ipbus_clk_i
+    -- outputs: 
+    p_delayLoadPulse: process (ipbus_clk_i) is
+    begin  -- process p_delayLoadPulse
+    if rising_edge(ipbus_clk_i) then
+        s_LoadTriggerPattern <= s_LoadTriggerPattern_p1;
+        s_LoadTriggerPatternHi <= s_LoadTriggerPatternHi_p1;
+    end if;
+    end process p_delayLoadPulse;
+
+  -- Stretch and delay pulses.
+  --D Put in delay for trigger times as well.
+  
+    --
+    gen_stretchVals: for v_inputNumber in 0 to g_NUM_INPUTS-1 generate
+        cmp_stretchPulse: entity work.stretchPulse
+        generic map (
+            g_PARAM_WIDTH => c_PARAM_WIDTH)
+        port map (
+            clk_i         => clk_4x_logic_i,
+            pulse_i       => trigger_i(v_inputNumber),
+            pulse_o       => s_stretchedTriggers(v_inputNumber),
+            triggerTime_i => trigger_times_i(v_inputNumber),
+            triggerTime_o => s_delayedTriggerTimes(v_inputNumber),
+    --        pulsewidth_i  => s_PulseStretchWord( (v_inputNumber*c_BYTE_WIDTH) + c_PARAM_WIDTH -1 downto v_inputNumber*c_BYTE_WIDTH ),
+            pulsewidth_i  => s_PulseWidthWord( (v_inputNumber*c_BYTE_WIDTH) + c_PARAM_WIDTH -1 downto v_inputNumber*c_BYTE_WIDTH ),
+            pulseDelay_i  => s_PulseDelayWord( (v_inputNumber*c_BYTE_WIDTH) + c_PARAM_WIDTH -1 downto v_inputNumber*c_BYTE_WIDTH )
+    --        pulsewidth_i  => s_PulseStretchWord( (0*c_BYTE_WIDTH) + c_PARAM_WIDTH -1 downto 0*c_BYTE_WIDTH ),
+    --        pulseDelay_i  => s_PulseDelayWord(   (0*c_BYTE_WIDTH) + c_PARAM_WIDTH -1 downto 0*c_BYTE_WIDTH )
+            );
+    end generate gen_stretchVals;
+
+  --! Trigger coincidence logic 
+    cmp_coincidence_logic : entity work.coincidenceLogic
+    generic map(
+        g_nInputs	=> g_NUM_INPUTS,
+        g_patternWidth => g_IPBUS_WIDTH
+    )
+    Port map( 
+        configClk_i 	=> ipbus_clk_i, --! No point in moving off IPBus clock
+        logicClk_i        => clk_4x_logic_i,
+        triggers_i 	=> s_stretchedTriggers,
+        trigger_o         => s_external_trigger_l,
+        --auxTrigger_o      => s_auxTrigger,
+        -- Control ports...
+        triggerPattern_low_i  => s_TriggerPattern_low,
+        triggerPattern_high_i  => s_TriggerPattern_high,
+        loadPatternHi_i     => s_loadTriggerPatternHi,
+        loadPatternLo_i     => s_loadTriggerPattern
+        );
+	
+  --! just look for the rising edge ( with long stretch can get multiple clock
+  --! cycle triggers )
+    cmp_triggerRisingEdge : entity work.single_pulse
+    port map (
+        level => s_external_trigger_l,
+        clk => clk_4x_logic_i,
+        pulse => s_external_trigger_p
+        );
+  
+  --! Produce triggers....
+    trigGen : process  ( clk_4x_logic_i ) 
+    begin 
+        if rising_edge(clk_4x_logic_i)  then 
+            s_post_veto_trigger <= (s_external_trigger_p or s_internal_trigger) and (not ( s_internal_veto or veto_i) );
+            s_pre_veto_trigger <= (s_external_trigger_p or s_internal_trigger);
+    
+            -- delay output of which input triggers fired so that they go high at the
+            -- same time as the pre/post veto trigger signals.
+            s_stretchedTriggers_d1 <= s_stretchedTriggers;
+            s_stretchedTriggers_d2 <= s_stretchedTriggers_d1;
+                                                            
+            s_delayedTriggerTimes_d1 <= s_delayedTriggerTimes;
+            s_delayedTriggerTimes_d2 <= s_delayedTriggerTimes_d1;
+             
+            trigger_o <= s_stretchedTriggers_d2;
+            trigger_times_o <= s_delayedTriggerTimes_d2; -- trigger_times_i;  -- put delayed version of trigger times here
+        end if;
+    end process;
+	
+
+    pre_veto_trigger_o <= s_pre_veto_trigger ;
+    post_veto_trigger_o <= s_post_veto_trigger;
+    trigger_active_o <= s_post_veto_trigger;
+
+	
+	--! Internal trigger generator
+    p_internal_triggers: process (clk_4x_logic_i )
+    begin  -- process p_internal_triggers
+        if rising_edge(clk_4x_logic_i) then
+            if (s_internal_trigger_interval = x"00000000") then
+                s_internal_trigger_active <= '0';
+            else
+                s_internal_trigger_active <= '1';
+            end if;
+        
+            s_internal_trigger_active_d <= s_internal_trigger_active;    -- signal delayed
+            s_internal_trigger_timer_d <= s_internal_trigger_timer;      -- Signal delayed
+        end if;
+    end process p_internal_triggers;
+  
+    s_internal_trigger <= '1' when (s_internal_trigger_timer = ( x"00000000" )) and (s_internal_trigger_timer_d = ( x"00000001" )) else '0';
+				
+				
+				
+    -- Use a coregen counter to allow timing constraints to be met.
+    --c_internal_triggers: entity work.internalTriggerGenerator
+    c_internal_triggers: internalTriggerGenerator
+    PORT MAP (
+        clk => clk_4x_logic_i,
+        ce => s_internal_trigger_active,
+        load => s_internal_trigger or (s_internal_trigger_active and not s_internal_trigger_active_d),
+        l => s_internal_trigger_interval,
+        q => s_internal_trigger_timer
+    );
+  
+  -----------------------------------------------------------------------------
+  -- Count triggers
+  -----------------------------------------------------------------------------
+    p_trigger_counter: process (clk_4x_logic_i )
+    begin  -- process p_trigger_counter
+        if rising_edge(clk_4x_logic_i) then
+            if logic_reset_i = '1' then
+                s_post_veto_trigger_counter <= ( others => '0');
+            elsif s_post_veto_trigger = '1' then
+                s_post_veto_trigger_counter <= s_post_veto_trigger_counter + 1;
+            end if;
+            
+            if logic_reset_i = '1' then
+                s_pre_veto_trigger_counter <= ( others => '0');
+            elsif s_pre_veto_trigger = '1' then
+                s_pre_veto_trigger_counter <= s_pre_veto_trigger_counter + 1;
+            end if;
+            
+            --if logic_reset_i = '1' then
+            --    s_aux_trigger_counter <= ( others => '0');
+            --elsif s_auxTrigger = '1' then
+            --    s_aux_trigger_counter <= s_aux_trigger_counter + 1;
+            --end if;
+        end if;
+    end process p_trigger_counter;
+ 
+    event_number_o <= std_logic_vector(s_post_veto_trigger_counter);
+  
+END ARCHITECTURE rtl;
+
diff --git a/legacy/TLU_v1e/scripts/AIDA_testScript.py b/legacy/TLU_v1e/scripts/AIDA_testScript.py
new file mode 100644
index 00000000..4a8f6bf9
--- /dev/null
+++ b/legacy/TLU_v1e/scripts/AIDA_testScript.py
@@ -0,0 +1,183 @@
+# -*- coding: utf-8 -*-
+import uhal
+from I2CuHal import I2CCore
+import time
+#import miniTLU
+from si5345 import si5345
+from AD5665R import AD5665R
+from PCA9539PW import PCA9539PW
+from E24AA025E48T import E24AA025E48T
+
+manager = uhal.ConnectionManager("file://./TLUconnection.xml")
+hw = manager.getDevice("tlu")
+
+# hw.getNode("A").write(255)
+reg = hw.getNode("version").read()
+hw.dispatch()
+print "CHECK REG= ", hex(reg)
+
+
+# #First I2C core
+print ("Instantiating master I2C core:")
+master_I2C= I2CCore(hw, 10, 5, "i2c_master", None)
+master_I2C.state()
+
+
+
+
+#
+# #######################################
+enableCore= True #Only need to run this once, after power-up
+if (enableCore):
+   mystop=True
+   print "  Write RegDir to set I/O[7] to output:"
+   myslave= 0x21
+   mycmd= [0x01, 0x7F]
+   nwords= 1
+   master_I2C.write(myslave, mycmd, mystop)
+
+
+   mystop=False
+   mycmd= [0x01]
+   master_I2C.write(myslave, mycmd, mystop)
+   res= master_I2C.read( myslave, nwords)
+   print "\tPost RegDir: ", res
+# #######################################
+#
+# time.sleep(0.1)
+# #Read the EPROM
+# mystop=False
+# nwords=6
+# myslave= 0x53 #DUNE EPROM 0x53 (Possibly)
+# myaddr= [0xfa]#0xfa
+# master_I2C.write( myslave, myaddr, mystop)
+# #res= master_I2C.read( 0x50, 6)
+# res= master_I2C.read( myslave, nwords)
+# print "  PCB EPROM: "
+# result="\t  "
+# for iaddr in res:
+#    result+="%02x "%(iaddr)
+# print result
+# #######################################
+
+
+#Second I2C core
+#print ("Instantiating SFP I2C core:")
+#clock_I2C= I2CCore(hw, 10, 5, "i2c_sfp", None)
+#clock_I2C.state()
+
+# #Third I2C core
+# print ("Instantiating clock I2C core:")
+# clock_I2C= I2CCore(hw, 10, 5, "i2c_clk", None)
+# clock_I2C.state()
+
+
+# #time.sleep(0.01)
+# #Read the EPROM
+# mystop=False
+# nwords=2
+# myslave= 0x68 #DUNE CLOCK CHIP 0x68
+# myaddr= [0x02 ]#0xfa
+# clock_I2C.write( myslave, myaddr, mystop)
+# #time.sleep(0.1)
+# res= clock_I2C.read( myslave, nwords)
+# print "  CLOCK EPROM: "
+# result="\t  "
+# for iaddr in res:
+#     result+="%02x "%(iaddr)
+# print result
+
+#
+
+#CLOCK CONFIGURATION BEGIN
+zeClock=si5345(master_I2C, 0x68)
+res= zeClock.getDeviceVersion()
+zeClock.checkDesignID()
+#zeClock.setPage(0, True)
+#zeClock.getPage(True)
+clkRegList= zeClock.parse_clk("./../../bitFiles/TLU_CLK_Config_v1e.txt")
+zeClock.writeConfiguration(clkRegList)######
+zeClock.writeRegister(0x0536, [0x0A]) #Configures manual switch of inputs
+zeClock.writeRegister(0x0949, [0x0F]) #Enable all inputs
+zeClock.writeRegister(0x052A, [0x05]) #Configures source of input
+iopower= zeClock.readRegister(0x0949, 1)
+print "  Clock IO power: 0x%X" % iopower[0]
+lol= zeClock.readRegister(0x000E, 1)
+print "  Clock LOL (0x000E): 0x%X" % lol[0]
+los= zeClock.readRegister(0x000D, 1)
+print "  Clock LOS (0x000D): 0x%X" % los[0]
+#CLOCK CONFIGURATION END
+
+#DAC CONFIGURATION BEGIN
+zeDAC1=AD5665R(master_I2C, 0x13)
+zeDAC1.setIntRef(intRef= False, verbose= True)
+zeDAC1.writeDAC(0x0, 7, verbose= True)#7626
+
+zeDAC2=AD5665R(master_I2C, 0x1F)
+zeDAC2.setIntRef(intRef= False, verbose= True)
+zeDAC2.writeDAC(0x2fff, 3, verbose= True)
+#DAC CONFIGURATION END
+
+#EEPROM BEGIN
+zeEEPROM= E24AA025E48T(master_I2C, 0x50)
+res=zeEEPROM.readEEPROM(0xfa, 6)
+result="  EEPROM ID:\n\t"
+for iaddr in res:
+    result+="%02x "%(iaddr)
+print result
+#EEPROM END
+
+# #I2C EXPANDER CONFIGURATION BEGIN
+IC6=PCA9539PW(master_I2C, 0x74)
+#BANK 0
+IC6.setInvertReg(0, 0x00)# 0= normal
+IC6.setIOReg(0, 0xFF)# 0= output <<<<<<<<<<<<<<<<<<<
+IC6.setOutputs(0, 0xFF)
+res= IC6.getInputs(0)
+print "IC6 read back bank 0: 0x%X" % res[0]
+#
+#BANK 1
+IC6.setInvertReg(1, 0x00)# 0= normal
+IC6.setIOReg(1, 0xFF)# 0= output <<<<<<<<<<<<<<<<<<<
+IC6.setOutputs(1, 0xFF)
+res= IC6.getInputs(1)
+print "IC6 read back bank 1: 0x%X" % res[0]
+
+# # #
+IC7=PCA9539PW(master_I2C, 0x75)
+#BANK 0
+IC7.setInvertReg(0, 0xFF)# 0= normal
+IC7.setIOReg(0, 0xFA)# 0= output <<<<<<<<<<<<<<<<<<<
+IC7.setOutputs(0, 0xFF)
+res= IC7.getInputs(0)
+print "IC7 read back bank 0: 0x%X" % res[0]
+#
+#BANK 1
+IC7.setInvertReg(1, 0x00)# 0= normal
+IC7.setIOReg(1, 0x4F)# 0= output <<<<<<<<<<<<<<<<<<<
+IC7.setOutputs(1, 0xFF)
+res= IC7.getInputs(1)
+print "IC7 read back bank 1: 0x%X" % res[0]
+# #I2C EXPANDER CONFIGURATION END
+
+
+# #Reset counters
+#cmd = int("0x0", 16) #write 0x2 to reset
+#hw.getNode("triggerInputs.SerdesRstW").write(cmd)
+#restatus= hw.getNode("triggerInputs.SerdesRstR").read()
+#hw.dispatch()
+#print "Trigger Reset: 0x%X" % restatus
+## #Read trigger inputs
+#myreg= [-1, -1, -1, -1, -1, -1]
+#for inputN in range(0, 6):
+#  regString= "triggerInputs.ThrCount%dR" % inputN
+#  myreg[inputN]= hw.getNode(regString).read()
+#  hw.dispatch()
+#  print regString, myreg[inputN]
+
+## Read ev formatter
+#cmd = int("0x0", 16) #
+##hw.getNode("Event_Formatter.Enable_Record_Data").write(cmd)
+#efstatus= hw.getNode("Event_Formatter.CurrentTimestampLR").read()
+#hw.dispatch()
+#print "Event Formatter Record: 0x%X" % efstatus
diff --git a/legacy/TLU_v1e/scripts/TLU_v1e.py b/legacy/TLU_v1e/scripts/TLU_v1e.py
new file mode 100644
index 00000000..9f45a4f3
--- /dev/null
+++ b/legacy/TLU_v1e/scripts/TLU_v1e.py
@@ -0,0 +1,898 @@
+# -*- coding: utf-8 -*-
+import uhal;
+import pprint;
+import ConfigParser
+#from FmcTluI2c import *
+import threading
+from ROOT import TFile, TTree, gROOT, AddressOf
+from ROOT import *
+import time
+
+from I2CuHal import I2CCore
+from si5345 import si5345 # Library for clock chip
+from AD5665R import AD5665R # Library for DAC
+from PCA9539PW import PCA9539PW # Library for serial line expander
+
+class TLU:
+    """docstring for TLU"""
+    def __init__(self, dev_name, man_file, parsed_cfg):
+
+        self.isRunning= False
+
+        section_name= "Producer.fmctlu"
+        self.dev_name = dev_name
+
+        #man_file= parsed_cfg.get(section_name, "ConnectionFile")
+        self.manager= uhal.ConnectionManager(man_file)
+        self.hw = self.manager.getDevice(self.dev_name)
+
+        # #Get Verbose setting
+        self.verbose= parsed_cfg.getint(section_name, "verbose")
+
+        #self.nDUTs= 4 #Number of DUT connectors
+        self.nDUTs= parsed_cfg.getint(section_name, "nDUTs")
+
+        #self.nChannels= 6 #Number of trigger inputs
+        self.nChannels= parsed_cfg.getint(section_name, "nTrgIn")
+
+        #self.VrefInt= 2.5 #Internal DAC voltage reference
+        self.VrefInt= parsed_cfg.getfloat(section_name, "VRefInt")
+
+        #self.VrefExt= 1.3 #External DAC voltage reference
+        self.VrefExt= parsed_cfg.getfloat(section_name, "VRefExt")
+
+        #self.intRefOn= False #Internal reference is OFF by default
+        self.intRefOn= int(parsed_cfg.get(section_name, "intRefOn"))
+
+
+        self.fwVersion = self.hw.getNode("version").read()
+        self.hw.dispatch()
+        print "TLU V1E FIRMWARE VERSION= " , hex(self.fwVersion)
+
+        # Instantiate a I2C core to configure components
+        self.TLU_I2C= I2CCore(self.hw, 10, 5, "i2c_master", None)
+        #self.TLU_I2C.state()
+
+        enableCore= True #Only need to run this once, after power-up
+        self.enableCore()
+
+        # Instantiate clock chip and configure it (if necessary)
+        #self.zeClock=si5345(self.TLU_I2C, 0x68)
+        clk_addr= int(parsed_cfg.get(section_name, "I2C_CLK_Addr"), 16)
+        self.zeClock=si5345(self.TLU_I2C, clk_addr)
+        res= self.zeClock.getDeviceVersion()
+        if (int(parsed_cfg.get(section_name, "CONFCLOCK"), 16)):
+            #clkRegList= self.zeClock.parse_clk("./../../bitFiles/TLU_CLK_Config_v1e.txt")
+            clkRegList= self.zeClock.parse_clk(parsed_cfg.get(section_name, "CLOCK_CFG_FILE"))
+            self.zeClock.writeConfiguration(clkRegList)######
+
+        self.zeClock.checkDesignID()
+
+        # Instantiate DACs and configure them to use reference based on TLU setting
+        #self.zeDAC1=AD5665R(self.TLU_I2C, 0x13)
+        #self.zeDAC2=AD5665R(self.TLU_I2C, 0x1F)
+        dac_addr1= int(parsed_cfg.get(section_name, "I2C_DAC1_Addr"), 16)
+        self.zeDAC1=AD5665R(self.TLU_I2C, dac_addr1)
+        dac_addr2= int(parsed_cfg.get(section_name, "I2C_DAC2_Addr"), 16)
+        self.zeDAC2=AD5665R(self.TLU_I2C, dac_addr2)
+        self.zeDAC1.setIntRef(self.intRefOn, self.verbose)
+        self.zeDAC2.setIntRef(self.intRefOn, self.verbose)
+
+        # Instantiate the serial line expanders and configure them to default values
+        #self.IC6=PCA9539PW(self.TLU_I2C, 0x74)
+        exp1_addr= int(parsed_cfg.get(section_name, "I2C_EXP1_Addr"), 16)
+        self.IC6=PCA9539PW(self.TLU_I2C, exp1_addr)
+        self.IC6.setInvertReg(0, 0x00)# 0= normal, 1= inverted
+        self.IC6.setIOReg(0, 0x00)# 0= output, 1= input
+        self.IC6.setOutputs(0, 0xFF)# If output, set to XX
+
+        self.IC6.setInvertReg(1, 0x00)# 0= normal, 1= inverted
+        self.IC6.setIOReg(1, 0x00)# 0= output, 1= input
+        self.IC6.setOutputs(1, 0xFF)# If output, set to XX
+
+        #self.IC7=PCA9539PW(self.TLU_I2C, 0x75)
+        exp2_addr= int(parsed_cfg.get(section_name, "I2C_EXP2_Addr"), 16)
+        self.IC7=PCA9539PW(self.TLU_I2C, exp2_addr)
+        self.IC7.setInvertReg(0, 0x00)# 0= normal, 1= inverted
+        self.IC7.setIOReg(0, 0x00)# 0= output, 1= input
+        self.IC7.setOutputs(0, 0x00)# If output, set to XX
+
+        self.IC7.setInvertReg(1, 0x00)# 0= normal, 1= inverted
+        self.IC7.setIOReg(1, 0x00)# 0= output, 1= input
+        self.IC7.setOutputs(1, 0xB0)# If output, set to XX
+
+
+##################################################################################################################################
+##################################################################################################################################
+    def DUTOutputs_old(self, dutN, enable=False, verbose=False):
+        ## Set the status of the transceivers for a specific HDMI connector. When enable= False the transceivers are disabled and the
+        ## connector cannot send signals from FPGA to the outside world. When enable= True then signals from the FPGA will be sent out to the HDMI.
+        ## NOTE: the other direction is always enabled, i.e. signals from the DUTs are always sent to the FPGA.
+        ## NOTE: CLK direction must be defined separately using DUTClkSrc
+        ## NOTE: This version changes all the pins together. Use DUTOutputs to control individual pins.
+
+        if (dutN < 0) | (dutN> (self.nDUTs-1)):
+            print "\tERROR: DUTOutputs. The DUT number must be comprised between 0 and ", self.nDUTs-1
+            return -1
+        bank= dutN//2 # DUT0 and DUT1 are on bank 0. DUT2 and DUT3 on bank 1
+        nibble= dutN%2 # DUT0 and DUT2 are on nibble 0. DUT1 and DUT3 are on nibble 1
+        print "  Setting DUT:", dutN, "to", enable
+        if (verbose > 1):
+            print "\tBank", bank, "Nibble", nibble
+        res= self.IC6.getOutputs(bank)
+        oldStatus= res[0]
+        mask= 0xF << 4*nibble
+        newStatus= oldStatus & (~mask)
+        if (not enable): # we want to write 0 to activate the outputs so check opposite of "enable"
+            newStatus |= mask
+        self.IC6.setOutputs(bank, newStatus)
+
+        if verbose:
+            print "\tOldStatus= ", "{0:#0{1}x}".format(oldStatus,4), "Mask=" , hex(mask), "newStatus=", "{0:#0{1}x}".format(newStatus,4)
+        return newStatus
+
+    def DUTOutputs(self, dutN, enable=0x7, verbose=False):
+        ## Set the status of the transceivers for a specific HDMI connector. When enable= False the transceivers are disabled and the
+        ## connector cannot send signals from FPGA to the outside world. When enable= True then signals from the FPGA will be sent out to the HDMI.
+        ## NOTE: the other direction is always enabled, i.e. signals from the DUTs are always sent to the FPGA.
+        ## NOTE: CLK direction must be defined separately using DUTClkSrc
+
+        if (dutN < 0) | (dutN> (self.nDUTs-1)):
+            print "\tERROR: DUTOutputs. The DUT number must be comprised between 0 and ", self.nDUTs-1
+            return -1
+        bank= dutN//2 # DUT0 and DUT1 are on bank 0. DUT2 and DUT3 on bank 1
+        nibble= dutN%2 # DUT0 and DUT2 are on nibble 0. DUT1 and DUT3 are on nibble 1
+        print "  Setting DUT:", dutN, "pins status to", hex(enable)
+        if (verbose > 1):
+            print "\tBank", bank, "Nibble", nibble
+        res= self.IC6.getOutputs(bank)
+        oldStatus= res[0]
+        mask= 0xF << 4*nibble
+        newnibble= (enable & 0xF) << 4*nibble # bits we want to change are marked with 1
+        newStatus= (oldStatus & (~mask)) | (newnibble & mask)
+
+        self.IC6.setOutputs(bank, newStatus)
+
+        if (verbose > 0):
+            self.getDUTOutpus(dutN, verbose)
+        if (verbose > 1):
+            print "\tOldStatus= ", "{0:#0{1}x}".format(oldStatus,4), "Mask=" , hex(mask), "newStatus=", "{0:#0{1}x}".format(newStatus,4)
+
+        return newStatus
+
+    def DUTClkSrc(self, dutN, clkSrc=0, verbose= False):
+        ## Allows to choose the source of the clock signal sent to the DUTs over HDMI
+        ## clkSrc= 0: clock disabled
+        ## clkSrc= 1: clock from Si5345
+        ## clkSrc=2: clock from FPGA
+        if (dutN < 0) | (dutN> (self.nDUTs-1)):
+            print "\tERROR: DUTClkSrc. The DUT number must be comprised between 0 and ", self.nDUTs-1
+            return -1
+        if (clkSrc < 0) | (clkSrc> 2):
+            print "\tERROR: DUTClkSrc. clkSrc can only be 0 (disabled), 1 (Si5345) or 2 (FPGA)"
+            return -1
+        bank=0
+        maskLow= 1 << (1* dutN) #CLK FROM FPGA
+        maskHigh= 1<< (1* dutN +4) #CLK FROM Si5345
+        mask= maskLow | maskHigh
+        res= self.IC7.getOutputs(bank)
+        oldStatus= res[0]
+        newStatus= oldStatus & ~mask #set both bits to zero
+        outStat= ""
+        if clkSrc==0:
+            newStatus = newStatus | mask
+            outStat= "disabled"
+        elif clkSrc==1:
+            newStatus = newStatus | maskLow
+            outStat= "Si5435"
+        elif clkSrc==2:
+            newStatus= newStatus | maskHigh
+            outStat= "FPGA"
+        print "  Setting DUT:", dutN, "clock source to", outStat
+        if (verbose > 1):
+            print "\tOldStatus= ", "{0:#0{1}x}".format(oldStatus,4), "Mask=" , hex(mask), "newStatus=", "{0:#0{1}x}".format(newStatus,4)
+        self.IC7.setOutputs(bank, newStatus)
+        return newStatus
+
+    def enableClkLEMO(self, enable= False, verbose= False):
+        ## Enable or disable the output clock to the differential LEMO output
+        bank=1
+        mask= 0x10
+        res= self.IC7.getOutputs(bank)
+        oldStatus= res[0]
+        newStatus= oldStatus & ~mask
+        outStat= "enabled"
+        if (not enable): #A 0 activates the output. A 1 disables it.
+            newStatus= newStatus | mask
+            outStat= "disabled"
+        print "  Clk LEMO", outStat
+        if verbose:
+            print "\tOldStatus= ", "{0:#0{1}x}".format(oldStatus,4), "Mask=" , hex(mask), "newStatus=", "{0:#0{1}x}".format(newStatus,4)
+        self.IC7.setOutputs(bank, newStatus)
+        return newStatus
+
+    def enableCore(self):
+        ## At power up the Enclustra I2C lines are disabled (tristate buffer is off).
+        ## This function enables the lines. It is only required once.
+        mystop=True
+        print "  Enabling I2C bus (expect 127):"
+        myslave= 0x21
+        mycmd= [0x01, 0x7F]
+        nwords= 1
+        self.TLU_I2C.write(myslave, mycmd, mystop)
+
+        mystop=False
+        mycmd= [0x01]
+        self.TLU_I2C.write(myslave, mycmd, mystop)
+        res= self.TLU_I2C.read( myslave, nwords)
+        print "\tPost RegDir: ", res
+
+    def getDUTOutpus(self, dutN, verbose=0):
+        if (dutN < 0) | (dutN> (self.nDUTs-1)):
+            print "\tERROR: DUTOutputs. The DUT number must be comprised between 0 and ", self.nDUTs-1
+            return -1
+        bank= dutN//2 # DUT0 and DUT1 are on bank 0. DUT2 and DUT3 on bank 1
+        nibble= dutN%2 # DUT0 and DUT2 are on nibble 0. DUT1 and DUT3 are on nibble 1
+        res= self.IC6.getOutputs(bank)
+        dut_status= res[0]
+        dut_lines= ["CONT", "SPARE", "TRIG", "BUSY"]
+        dut_status= 0x0F & (dut_status >> (4*nibble))
+
+        if verbose > 0:
+            for idx, iLine in enumerate(dut_lines):
+                this_bit= 0x1 & (dut_status  >> idx)
+                if this_bit:
+                    this_status= "ENABLED"
+                else:
+                    this_status= "DISABLED"
+                print "\t", iLine, "output is", this_status
+
+        if verbose > 1:
+            print "\tDUT CURRENT:", hex(dut_status), "Nibble:", nibble, "Bank:", bank
+
+        return dut_status
+
+    def getAllChannelsCounts(self):
+        chCounts=[]
+        for ch in range (0,self.nChannels):
+            chCounts.append(int(self.getChCount(ch)))
+        return chCounts
+
+    def getChStatus(self):
+        inputStatus= self.hw.getNode("triggerInputs.SerdesRstR").read()
+        self.hw.dispatch()
+        print "\tTRIGGER COUNTERS status= " , hex(inputStatus)
+        return inputStatus
+
+    def getChCount(self, channel):
+        regString= "triggerInputs.ThrCount"+ str(channel)+"R"
+        count = self.hw.getNode(regString).read()
+        self.hw.dispatch()
+        print "\tCh", channel, "Count:" , count
+        return count
+
+    def getClockStatus(self):
+        clockStatus = self.hw.getNode("logic_clocks.LogicClocksCSR").read()
+        self.hw.dispatch()
+        print "  CLOCK STATUS [expected 1]"
+        print "\t", hex(clockStatus)
+        if ( clockStatus == 0 ):
+            "ERROR: Clocks in TLU FPGA are not locked."
+        return clockStatus
+
+    def getDUTmask(self):
+        DUTMaskR = self.hw.getNode("DUTInterfaces.DutMaskR").read()
+        self.hw.dispatch()
+        print "\tDUTMask read back as:" , hex(DUTMaskR)
+        return DUTMaskR
+
+    def getExternalVeto(self):
+        extVeto= self.hw.getNode("triggerLogic.ExternalTriggerVetoR").read()
+        self.hw.dispatch()
+        print "\tEXTERNAL Veto read back as:", hex(extVeto)
+        return extVeto
+
+    def getFifoData(self, nWords):
+    	#fifoData= self.hw.getNode("eventBuffer.EventFifoData").read()
+    	fifoData= self.hw.getNode("eventBuffer.EventFifoData").readBlock (nWords);
+    	self.hw.dispatch()
+    	#print "\tFIFO Data:", hex(fifoData)
+    	return fifoData
+
+    def getFifoLevel(self, verbose= 0):
+        FifoFill= self.hw.getNode("eventBuffer.EventFifoFillLevel").read()
+        self.hw.dispatch()
+        if (verbose > 0):
+            print "\tFIFO level read back as:", hex(FifoFill)
+        return FifoFill
+
+    def getFifoCSR(self):
+        FifoCSR= self.hw.getNode("eventBuffer.EventFifoCSR").read()
+        self.hw.dispatch()
+        print "\tFIFO CSR read back as:", hex(FifoCSR)
+        return FifoCSR
+
+    def getFifoFlags(self):
+        # Useless?
+        FifoFLAG= self.hw.getNode("eventBuffer.EventFifoFillLevelFlags").read()
+        self.hw.dispatch()
+        print "\tFIFO FLAGS read back as:", hex(FifoFLAG)
+        return FifoFLAG
+
+    def getInternalTrg(self):
+        trigIntervalR = self.hw.getNode("triggerLogic.InternalTriggerIntervalR").read()
+        self.hw.dispatch()
+        print "\tInternal interval read back as:", trigIntervalR
+        return trigIntervalR
+
+    def getMode(self):
+        DUTInterfaceModeR = self.hw.getNode("DUTInterfaces.DUTInterfaceModeR").read()
+        self.hw.dispatch()
+        print "\tDUT mode read back as:" , hex(DUTInterfaceModeR)
+        return DUTInterfaceModeR
+
+    def getModeModifier(self):
+        DUTInterfaceModeModifierR = self.hw.getNode("DUTInterfaces.DUTInterfaceModeModifierR").read()
+        self.hw.dispatch()
+        print "\tDUT mode modifier read back as:" , hex(DUTInterfaceModeModifierR)
+        return DUTInterfaceModeModifierR
+
+    def getSN(self):
+        epromcontent=self.readEEPROM(0xfa, 6)
+        print "  FMC-TLU serial number (EEPROM):"
+        result="\t"
+        for iaddr in epromcontent:
+            result+="%02x "%(iaddr)
+        print result
+        return epromcontent
+
+    def getPostVetoTrg(self):
+        triggerN = self.hw.getNode("triggerLogic.PostVetoTriggersR").read()
+        self.hw.dispatch()
+        print "\tPOST VETO TRIGGER NUMBER:", (triggerN)
+        return triggerN
+
+    def getPulseDelay(self):
+        pulseDelayR = self.hw.getNode("triggerLogic.PulseDelayR").read()
+        self.hw.dispatch()
+        print "\tPulse delay read back as:", hex(pulseDelayR)
+        return pulseDelayR
+
+    def getPulseStretch(self):
+        pulseStretchR = self.hw.getNode("triggerLogic.PulseStretchR").read()
+        self.hw.dispatch()
+        print "\tPulse stretch read back as:", hex(pulseStretchR)
+        return pulseStretchR
+
+    def getRecordDataStatus(self):
+        RecordStatus= self.hw.getNode("Event_Formatter.Enable_Record_Data").read()
+        self.hw.dispatch()
+        print "\tData recording:", RecordStatus
+        return RecordStatus
+
+    def getTriggerVetoStatus(self):
+        trgVetoStatus= self.hw.getNode("triggerLogic.TriggerVetoR").read()
+        self.hw.dispatch()
+        print "\tTrigger veto status read back as:", trgVetoStatus
+        return trgVetoStatus
+
+    def getTrgPattern(self):
+        triggerPattern_low = self.hw.getNode("triggerLogic.TriggerPattern_lowR").read()
+        triggerPattern_high = self.hw.getNode("triggerLogic.TriggerPattern_highR").read()
+        self.hw.dispatch()
+        print "\tTrigger pattern read back as: 0x%08X 0x%08X" %(triggerPattern_high, triggerPattern_low)
+        return triggerPattern_low, triggerPattern_high
+
+    def getVetoDUT(self):
+        IgnoreDUTBusyR = self.hw.getNode("DUTInterfaces.IgnoreDUTBusyR").read()
+        self.hw.dispatch()
+        print "\tIgnoreDUTBusy read back as:" , hex(IgnoreDUTBusyR)
+        return IgnoreDUTBusyR
+
+    def getVetoShutters(self):
+        IgnoreShutterVeto = self.hw.getNode("DUTInterfaces.IgnoreShutterVetoR").read()
+        self.hw.dispatch()
+        print "\tIgnoreShutterVeto read back as:" , IgnoreShutterVeto
+        return IgnoreShutterVeto
+
+    def pulseT0(self):
+        cmd = int("0x1",16)
+        self.hw.getNode("Shutter.PulseT0").write(cmd)
+        self.hw.dispatch()
+        print "\tPulsing T0"
+
+    def readEEPROM(self, startadd, bytes):
+        mystop= 1
+        time.sleep(0.1)
+        myaddr= [startadd]#0xfa
+        self.TLU_I2C.write( 0x50, [startadd], mystop)
+        res= self.TLU_I2C.read( 0x50, bytes)
+        return res
+
+    def resetClock(self):
+        # Set the RST pin from the PLL to 1
+        print "  Clocks reset"
+        cmd = int("0x1",16)
+        self.hw.getNode("logic_clocks.LogicRst").write(cmd)
+        self.hw.dispatch()
+
+    def resetClocks(self):
+        #Reset clock PLL
+        self.resetClock()
+        #Get clock status after reset
+        self.getClockStatus()
+        #Restore clock PLL
+        self.restoreClock()
+        #Get clock status after restore
+        self.getClockStatus()
+        #Get serdes status
+        self.getChStatus()
+
+    def resetCounters(self):
+    	cmd = int("0x2", 16) #write 0x2 to reset
+    	self.hw.getNode("triggerInputs.SerdesRstW").write(cmd)
+    	restatus= self.hw.getNode("triggerInputs.SerdesRstR").read()
+    	self.hw.dispatch()
+    	cmd = int("0x0", 16) #write 0x2 to reset
+    	self.hw.getNode("triggerInputs.SerdesRstW").write(cmd)
+    	restatus= self.hw.getNode("triggerInputs.SerdesRstR").read()
+    	self.hw.dispatch()
+    	#print "Trigger Reset: 0x%X" % restatus
+    	print "\tTrigger counters reset"
+
+    def resetSerdes(self):
+        cmd = int("0x3",16)
+        self.setChStatus(cmd)
+        inputStatus= self.getChStatus()
+        print "\t  Input status during reset = " , hex(inputStatus)
+
+        cmd = int("0x0",16)
+        self.setChStatus(cmd)
+        inputStatus= self.getChStatus()
+        print "\t  Input status after reset = " , hex(inputStatus)
+
+        cmd = int("0x4",16)
+        self.setChStatus(cmd)
+        inputStatus= self.getChStatus()
+        print "\t  Input status during calibration = " , hex(inputStatus)
+
+        cmd = int("0x0",16)
+        self.setChStatus(cmd)
+        inputStatus= self.getChStatus()
+        print "\t  Input status after calibration = " , hex(inputStatus)
+
+    def restoreClock(self):
+        # Set the RST pin from the PLL to 0
+        print "  Clocks restore"
+        cmd = int("0x0",16)
+        self.hw.getNode("logic_clocks.LogicRst").write(cmd)
+        self.hw.dispatch()
+
+    def setChStatus(self, cmd):
+        self.hw.getNode("triggerInputs.SerdesRstW").write(cmd)
+        inputStatus= self.hw.getNode("triggerInputs.SerdesRstR").read()
+        self.hw.dispatch()
+        print "  INPUT STATUS SET TO= " , hex(inputStatus)
+
+    def setClockStatus(self, cmd):
+        # Only use this for testing. The clock source is actually selected in the Si5345.
+        self.hw.getNode("logic_clocks.LogicClocksCSR").write(cmd)
+        self.hw.dispatch()
+
+    def setDUTmask(self, DUTMask):
+        print "  DUT MASK ENABLING: Mask= " , hex(DUTMask)
+        self.hw.getNode("DUTInterfaces.DutMaskW").write(DUTMask)
+        self.hw.dispatch()
+        self.getDUTmask()
+
+    def setFifoCSR(self, cmd):
+        self.hw.getNode("eventBuffer.EventFifoCSR").write(cmd)
+        self.hw.dispatch()
+        self.getFifoCSR()
+
+    def setInternalTrg(self, triggerInterval):
+        print "  TRIGGERS INTERNAL:"
+        if triggerInterval == 0:
+            internalTriggerFreq = 0
+            print "\tdisabled"
+        else:
+            internalTriggerFreq = 160000000.0/triggerInterval
+            print "\tRequired internal trigger frequency:", triggerInterval, "Hz"
+            print "\tSetting internal interval to:", internalTriggerFreq
+        self.hw.getNode("triggerLogic.InternalTriggerIntervalW").write(int(internalTriggerFreq))
+        self.hw.dispatch()
+        self.getInternalTrg()
+
+    def setMode(self, mode):
+        print "  DUT MODE SET TO: ", hex(mode)
+        self.hw.getNode("DUTInterfaces.DUTInterfaceModeW").write(mode)
+        self.hw.dispatch()
+        self.getMode()
+
+    def setModeModifier(self, modifier):
+        print "  DUT MODE MODIFIER:", hex(modifier)
+        self.hw.getNode("DUTInterfaces.DUTInterfaceModeModifierW").write(modifier)
+        self.hw.dispatch()
+        self.getModeModifier()
+
+    def setPulseDelay(self, inArray):
+        print "  TRIGGER DELAY SET TO", inArray, "[Units= 160MHz clock, 5-bit values (one per input) packed in to 32-bit word]"
+        pulseDelay= self.packBits(inArray)
+        self.hw.getNode("triggerLogic.PulseDelayW").write(pulseDelay)
+        self.hw.dispatch()
+        self.getPulseDelay()
+
+    def setPulseStretch(self, inArray):
+        print "  INPUT COINCIDENCE WINDOW SET TO", inArray ,"[Units= 160MHz clock cycles, 5-bit values (one per input) packed in to 32-bit word]"
+        pulseStretch= self.packBits(inArray)
+        self.hw.getNode("triggerLogic.PulseStretchW").write(pulseStretch)
+        self.hw.dispatch()
+        self.getPulseStretch()
+
+    def setRecordDataStatus(self, status=False):
+        print "  Data recording set:"
+        self.hw.getNode("Event_Formatter.Enable_Record_Data").write(status)
+        self.hw.dispatch()
+        self.getRecordDataStatus()
+
+    def setTriggerVetoStatus(self, status=False):
+        self.hw.getNode("triggerLogic.TriggerVetoW").write(status)
+        self.hw.dispatch()
+        self.getTriggerVetoStatus()
+
+    def setTrgPattern(self, triggerPatternH, triggerPatternL):
+        triggerPatternL &= 0xffffffff
+        triggerPatternH &= 0xffffffff
+        print "  TRIGGER PATTERN (for external triggers) SET TO 0x%08X 0x%08X. Two 32-bit words." %(triggerPatternH, triggerPatternL)
+        self.hw.getNode("triggerLogic.TriggerPattern_lowW").write(triggerPatternL)
+        self.hw.getNode("triggerLogic.TriggerPattern_highW").write(triggerPatternH)
+        self.hw.dispatch()
+        self.getTrgPattern()
+
+    def setVetoDUT(self, ignoreDUTBusy):
+        print "  VETO IGNORE BY DUT BUSY MASK SET TO" , hex(ignoreDUTBusy)
+        self.hw.getNode("DUTInterfaces.IgnoreDUTBusyW").write(ignoreDUTBusy)
+        self.hw.dispatch()
+        self.getVetoDUT()
+
+    def setVetoShutters(self, newState):
+        if newState:
+            print "  IgnoreShutterVetoW SET TO LISTEN FOR VETO FROM SHUTTER"
+            cmd= int("0x0",16)
+        else:
+            print "  IgnoreShutterVetoW SET TO IGNORE VETO FROM SHUTTER"
+            cmd= int("0x1",16)
+        self.hw.getNode("DUTInterfaces.IgnoreShutterVetoW").write(cmd)
+        self.hw.dispatch()
+        self.getVetoShutters()
+
+    def writeThreshold(self, DACtarget, Vtarget, channel, verbose=False):
+        #Writes the threshold. The DAC voltage differs from the threshold voltage because
+        #the range is shifted to be symmetrical around 0V.
+
+        #Check if the DACs are using the internal reference
+        if (self.intRefOn):
+            Vref= self.VrefInt
+        else:
+            Vref= self.VrefExt
+
+        #Calculate offset voltage (because of the following shifter)
+        Vdac= ( Vtarget + Vref ) / 2
+        print"  THRESHOLD setting:"
+        if channel==7:
+            print "\tCH: ALL"
+        else:
+            print "\tCH:", channel
+        print "\tTarget V:", Vtarget
+        dacValue = 0xFFFF * (Vdac / Vref)
+        DACtarget.writeDAC(int(dacValue), channel, verbose)
+
+    def packBits(self, raw_values):
+        packed_bits= 0
+        if (len(raw_values) != self.nChannels):
+            print "Error (packBits): wrong number of elements in array"
+        else:
+            for idx, iCh in enumerate(raw_values):
+                tmpint= iCh << idx*5
+                packed_bits= packed_bits | tmpint
+        print "\tPacked =", hex(packed_bits)
+        return packed_bits
+
+    def parseFifoData(self, fifoData, nEvents, mystruct, root_tree, verbose):
+        #for index in range(0, len(fifoData)-1, 6):
+        outList= []
+        for index in range(0, (nEvents)*6, 6):
+            word0= (fifoData[index] << 32) + fifoData[index + 1]
+            word1= (fifoData[index + 2] << 32) + fifoData[index + 3]
+            word2= (fifoData[index + 4] << 32) + fifoData[index + 5]
+            evType= (fifoData[index] & 0xF0000000) >> 28
+            inTrig= (fifoData[index] & 0x0FFF0000) >> 16
+            tStamp= ((fifoData[index] & 0x0000FFFF) << 32) + fifoData[index + 1]
+            fineTs= fifoData[index + 2]
+            evNum= fifoData[index + 3]
+            fineTsList=[-1]*12
+            fineTsList[3]= (fineTs & 0x000000FF)
+            fineTsList[2]= (fineTs & 0x0000FF00) >> 8
+            fineTsList[1]= (fineTs & 0x00FF0000) >> 16
+            fineTsList[0]= (fineTs & 0xFF000000) >> 24
+            fineTsList[7]= (fifoData[index + 4] & 0x000000FF)
+            fineTsList[6]= (fifoData[index + 4] & 0x0000FF00) >> 8
+            fineTsList[5]= (fifoData[index + 4] & 0x00FF0000) >> 16
+            fineTsList[4]= (fifoData[index + 4] & 0xFF000000) >> 24
+            fineTsList[11]= (fifoData[index + 5] & 0x000000FF)
+            fineTsList[10]= (fifoData[index + 5] & 0x0000FF00) >> 8
+            fineTsList[9]= (fifoData[index + 5] & 0x00FF0000) >> 16
+            fineTsList[8]= (fifoData[index + 5] & 0xFF000000) >> 24
+            if verbose:
+                print "====== EVENT", evNum, "================================================="
+                print "[", hex(word0), "]", "\t TYPE", hex(evType), "\t TRIGGER", hex(inTrig), "\t TIMESTAMP", (tStamp)
+                print "[",hex(word1), "]", "\tEV NUM", evNum, "\tFINETS[0,3]", hex(fineTs)
+                print "[",hex(word2), "]", "\tFINETS[4,11]", hex(word2)
+                print fineTsList
+            fineTsList.insert(0, tStamp)
+            fineTsList.insert(0, evNum)
+            if (root_tree != None):
+                highWord= word0
+                lowWord= word1
+                extWord= word2
+                timeStamp= tStamp
+                bufPos= 0
+                evtNumber= evNum
+                evtType= evType
+                trigsFired= inTrig
+                mystruct.raw0= fifoData[index]
+                mystruct.raw1= fifoData[index+1]
+                mystruct.raw2= fifoData[index+2]
+                mystruct.raw3= fifoData[index+3]
+                mystruct.raw4= fifoData[index+4]
+                mystruct.raw5= fifoData[index+5]
+                mystruct.evtNumber= evNum
+                mystruct.tluTimeStamp= tStamp
+                mystruct.tluEvtType= evType
+                mystruct.tluTrigFired= inTrig
+                root_tree.Fill()
+
+            outList.insert(len(outList), fineTsList)
+        #print "=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-="
+        #print "EN#\tCOARSE_TS\tFINE_TS0...FINE_TS11"
+        #pprint.pprint(outList)
+        return outList
+
+    def plotFifoData(self, outList):
+        import matplotlib.pyplot as plt
+        import numpy as np
+        import matplotlib.mlab as mlab
+
+        coarseColumn= [row[1] for row in outList]
+        fineColumn= [row[2] for row in outList]
+        timeStamp= [sum(x) for x in zip(coarseColumn, fineColumn)]
+        correctTs= [-1]*len(coarseColumn)
+        coarseVal= 0.000000025 #coarse time value (40 Mhz, 25 ns)
+        fineVal=   0.00000000078125 #fine time value (1280 MHz, 0.78125 ns)
+        for iTs in range(0, len(coarseColumn)):
+            correctTs[iTs]= coarseColumn[iTs]*coarseVal + fineColumn[iTs]*fineVal
+            #if iTs:
+                #print correctTs[iTs]-correctTs[iTs-1], "\t ", correctTs[iTs], "\t", coarseColumn[iTs], "\t", fineColumn[iTs]
+
+        xdiff = np.diff(correctTs)
+        np.all(xdiff[0] == xdiff)
+        P= 1000000000 #display in ns
+        nsDeltas = [x * P for x in xdiff]
+        #centerRange= np.mean(nsDeltas)
+        centerRange= 476
+        windowsns= 30
+        minRange= centerRange-windowsns
+        maxRange= centerRange+windowsns
+        plt.hist(nsDeltas, 60, range=[minRange, maxRange], facecolor='blue', align='mid', alpha= 0.75)
+        #plt.hist(nsDeltas, 100, normed=True, facecolor='blue', align='mid', alpha=0.75)
+        #plt.xlim((min(nsDeltas), max(nsDeltas)))
+        plt.xlabel('Time (ns)')
+        plt.ylabel('Entries')
+        plt.title('Histogram DeltaTime')
+        plt.grid(True)
+
+        #Superimpose Gauss
+        mean = np.mean(nsDeltas)
+        variance = np.var(nsDeltas)
+        sigma = np.sqrt(variance)
+        x = np.linspace(min(nsDeltas), max(nsDeltas), 100)
+        plt.plot(x, mlab.normpdf(x, mean, sigma))
+
+        #Display plot
+        plt.show()
+
+    def saveFifoData(self, outList):
+        import csv
+        with open("output.csv", "wb") as f:
+            writer = csv.writer(f)
+            writer.writerows(outList)
+
+##################################################################################################################################
+##################################################################################################################################
+    def acquire(self, mystruct, root_tree= None):
+        print "STARTING ACQUIRE LOOP"
+        print "Run#" , self.runN, "\n"
+        self.isRunning= True
+        index=0
+        while (self.isRunning == True):
+            eventFifoFillLevel= self.getFifoLevel(0)
+            nFifoWords= int(eventFifoFillLevel)
+            if (nFifoWords > 0):
+                fifoData= self.getFifoData(nFifoWords)
+                outList= self.parseFifoData(fifoData, nFifoWords/6, mystruct, root_tree, False)
+
+            time.sleep(0.1)
+            index= index + nFifoWords/6
+        print "STOPPING ACQUIRE LOOP:", index, "events collected"
+        return index
+
+    def configure(self, parsed_cfg):
+        print "\nTLU INITIALIZING..."
+        section_name= "Producer.fmctlu"
+
+        #READ CONTENT OF EPROM VIA I2C
+        self.getSN()
+
+        print "  Turning on software trigger veto"
+        cmd = int("0x1",16)
+        self.setTriggerVetoStatus(cmd)
+
+        # #Get Verbose setting
+        self.verbose= parsed_cfg.getint(section_name, "verbose")
+
+
+        # #SET DACs
+        self.writeThreshold(self.zeDAC1, parsed_cfg.getfloat(section_name, "DACThreshold0"), 1, self.verbose)
+        self.writeThreshold(self.zeDAC1, parsed_cfg.getfloat(section_name, "DACThreshold1"), 0, self.verbose)
+        self.writeThreshold(self.zeDAC2, parsed_cfg.getfloat(section_name, "DACThreshold2"), 3, self.verbose)
+        self.writeThreshold(self.zeDAC2, parsed_cfg.getfloat(section_name, "DACThreshold3"), 2, self.verbose)
+        self.writeThreshold(self.zeDAC2, parsed_cfg.getfloat(section_name, "DACThreshold4"), 1, self.verbose)
+        self.writeThreshold(self.zeDAC2, parsed_cfg.getfloat(section_name, "DACThreshold5"), 0, self.verbose)
+
+        #
+        # #ENABLE/DISABLE HDMI OUTPUTS
+        self.DUTOutputs(0, int(parsed_cfg.get(section_name, "HDMI1_set"), 16) , self.verbose)
+        self.DUTOutputs(1, int(parsed_cfg.get(section_name, "HDMI2_set"), 16) , self.verbose)
+        self.DUTOutputs(2, int(parsed_cfg.get(section_name, "HDMI3_set"), 16) , self.verbose)
+        self.DUTOutputs(3, int(parsed_cfg.get(section_name, "HDMI4_set"), 16) , self.verbose)
+
+        # #SELECT CLOCK SOURCE TO HDMI
+        self.DUTClkSrc(0, int(parsed_cfg.get(section_name, "HDMI1_clk"), 16) , self.verbose)
+        self.DUTClkSrc(1, int(parsed_cfg.get(section_name, "HDMI2_clk"), 16) , self.verbose)
+        self.DUTClkSrc(2, int(parsed_cfg.get(section_name, "HDMI3_clk"), 16) , self.verbose)
+        self.DUTClkSrc(3, int(parsed_cfg.get(section_name, "HDMI4_clk"), 16) , self.verbose)
+
+        # #ENABLE/DISABLE LEMO CLOCK OUTPUT
+        self.enableClkLEMO(parsed_cfg.getint(section_name, "LEMOclk"), False)
+
+        #
+        # #Check clock status
+        self.getClockStatus()
+
+        resetClocks = 0
+        resetSerdes = 0
+        resetCounters= 0
+        if resetClocks:
+            self.resetClocks()
+            self.getClockStatus()
+        if resetSerdes:
+            self.resetSerdes()
+        if resetCounters:
+	    self.resetCounters()
+
+        # # Get inputs status and counters
+        self.getChStatus()
+        self.getAllChannelsCounts()
+
+        # # Stop internal triggers until setup complete
+        cmd = int("0x0",16)
+        self.setInternalTrg(cmd)
+
+        # # Set pulse stretches
+        str0= parsed_cfg.getint(section_name, "in0_STR")
+        str1= parsed_cfg.getint(section_name, "in1_STR")
+        str2= parsed_cfg.getint(section_name, "in2_STR")
+        str3= parsed_cfg.getint(section_name, "in3_STR")
+        str4= parsed_cfg.getint(section_name, "in4_STR")
+        str5= parsed_cfg.getint(section_name, "in5_STR")
+        self.setPulseStretch([str0, str1, str2, str3, str4, str5])
+
+        # # Set pulse delays
+        del0= parsed_cfg.getint(section_name, "in0_DEL")
+        del1= parsed_cfg.getint(section_name, "in1_DEL")
+        del2= parsed_cfg.getint(section_name, "in2_DEL")
+        del3= parsed_cfg.getint(section_name, "in3_DEL")
+        del4= parsed_cfg.getint(section_name, "in4_DEL")
+        del5= parsed_cfg.getint(section_name, "in5_DEL")
+        self.setPulseDelay([del0, del1, del2, del3, del4, del5])
+
+        # # Set trigger pattern
+        triggerPattern_low= int(parsed_cfg.get(section_name, "trigMaskLo"), 16)
+        triggerPattern_high= int(parsed_cfg.get(section_name, "trigMaskHi"), 16)
+        self.setTrgPattern(triggerPattern_high, triggerPattern_low)
+
+        # # Set active DUTs
+        DUTMask= int(parsed_cfg.get(section_name, "DutMask"), 16)
+        self.setDUTmask(DUTMask)
+
+        # # Set mode (AIDA, EUDET)
+        DUTMode= int(parsed_cfg.get(section_name, "DUTMaskMode"), 16)
+        self.setMode(DUTMode)
+
+        # # Set modifier
+        modifier = int(parsed_cfg.get(section_name, "DUTMaskModeModifier"), 16)
+        self.setModeModifier(modifier)
+
+        # # Set veto shutter
+        setVetoShutters = int(parsed_cfg.get(section_name, "DUTIgnoreShutterVeto"), 16)
+        self.setVetoShutters(setVetoShutters)
+
+        # # Set veto by DUT
+        ignoreDUTBusy = int(parsed_cfg.get(section_name, "DUTIgnoreBusy"), 16)
+        self.setVetoDUT(ignoreDUTBusy)
+
+        print "  Check external veto:"
+        self.getExternalVeto()
+
+        # # Set trigger interval (use 0 to disable internal triggers)
+        triggerInterval= parsed_cfg.getint(section_name, "InternalTriggerFreq")
+        self.setInternalTrg(triggerInterval)
+
+        print "TLU INITIALIZED"
+
+##################################################################################################################################
+##################################################################################################################################
+    def start(self, logtimestamps=False, runN=0, mystruct= None, root_tree= None):
+        print "TLU STARTING..."
+        self.runN= runN
+
+        print "  FIFO RESET:"
+        FIFOcmd= 0x2
+        self.setFifoCSR(FIFOcmd)
+        eventFifoFillLevel= self.getFifoLevel()
+        #cmd = int("0x000",16)
+        #self.setInternalTrg(cmd)
+
+        if logtimestamps:
+            self.setRecordDataStatus(True)
+        else:
+            self.setRecordDataStatus(False)
+
+        # Pulse T0
+        self.pulseT0()
+
+        print "  Turning off software trigger veto"
+        self.setTriggerVetoStatus( int("0x0",16) )
+
+        print "TLU STARTED"
+
+        nEvents= self.acquire(mystruct, root_tree)
+        return
+
+
+##################################################################################################################################
+##################################################################################################################################
+    def stop(self, saveD= False, plotD= False):
+        print "TLU STOPPING..."
+
+        self.getPostVetoTrg()
+        eventFifoFillLevel= self.getFifoLevel()
+        self.getFifoFlags()
+        self.getFifoCSR()
+        print "  Turning on software trigger veto"
+        self.setTriggerVetoStatus( int("0x1",16) )
+
+        nFifoWords= int(eventFifoFillLevel)
+        fifoData= self.getFifoData(nFifoWords)
+
+        outList= self.parseFifoData(fifoData, nFifoWords/6, None, None, True)
+        if saveD:
+            self.saveFifoData(outList)
+        if plotD:
+            self.plotFifoData(outList)
+        #outFile = open('./test.txt', 'w')
+        #for iData in range (0, 30):
+    	#    outFile.write("%s\n" % fifoData[iData])
+        #    print hex(fifoData[iData])
+        print "TLU STOPPED"
+        return
diff --git a/legacy/TLU_v1e/scripts/TLUaddrmap.xml b/legacy/TLU_v1e/scripts/TLUaddrmap.xml
new file mode 100644
index 00000000..65fb5340
--- /dev/null
+++ b/legacy/TLU_v1e/scripts/TLUaddrmap.xml
@@ -0,0 +1,105 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<node id="TLU">
+
+<!-- Registers for the DUTs. These should be correct -->
+<node id="DUTInterfaces" address="0x1000" description="DUT Interfaces control registers">
+  <node id="DutMaskW"           address="0x0" permission="w" description="" />
+  <node id="IgnoreDUTBusyW"     address="0x1" permission="w" description="" />
+  <node id="IgnoreShutterVetoW" address="0x2" permission="w" description="" />
+  <node id="DUTInterfaceModeW"  address="0x3" permission="w" description="" />
+  <node id="DUTInterfaceModeModifierW"  address="0x4" permission="w" description="" />
+  <node id="DUTInterfaceModeR"  address="0xB" permission="r" description="" />
+  <node id="DUTInterfaceModeModifierR"  address="0xC" permission="r" description="" />
+  <node id="DutMaskR"           address="0x8" permission="r" description="" />
+  <node id="IgnoreDUTBusyR"     address="0x9" permission="r" description="" />
+  <node id="IgnoreShutterVetoR" address="0xA" permission="r" description="" />
+</node>
+
+<node id="Shutter"    address="0x2000" description="Shutter/T0 control">
+  <node id="ShutterStateW" address="0x0" permission="w" description=""/>
+  <node id="PulseT0"  address="0x1" permission="w" description=""/>
+</node>
+<!-- I2C registers. Tested ok.-->
+<node id="i2c_master"      address="0x3000" description="I2C Master interface">
+  <node id="i2c_pre_lo"    address="0x0" mask="0x000000ff" permission="rw" description="" />
+  <node id="i2c_pre_hi"    address="0x1" mask="0x000000ff" permission="rw" description="" />
+  <node id="i2c_ctrl"      address="0x2" mask="0x000000ff" permission="rw" description="" />
+  <node id="i2c_rxtx"      address="0x3" mask="0x000000ff" permission="rw" description="" />
+  <node id="i2c_cmdstatus" address="0x4" mask="0x000000ff" permission="rw" description="" />
+</node>
+<!-- Not sure about the FillLevelFlags register -->
+<node id="eventBuffer" address="0x4000" description="Event buffer">
+  <node id="EventFifoData" address="0x0" mode="non-incremental" size="32000" permission="r" description="" />
+  <node id="EventFifoFillLevel" address="0x1" permission="r" description="" />
+  <node id="EventFifoCSR" address="0x2" permission="rw" description="" />
+  <node id="EventFifoFillLevelFlags" address="0x3" permission="r" description="" />
+</node>
+<!-- Event formatter registers. Should be ok -->
+<node id="Event_Formatter"      address="0x5000" description="Event formatter configuration">
+  <node id="Enable_Record_Data" address="0x0" permission="rw" description="" />
+  <node id="ResetTimestampW"    address="0x1" permission="w" description="" />
+  <node id="CurrentTimestampLR" address="0x2" permission="r" description="" />
+  <node id="CurrentTimestampHR" address="0x3" permission="r" description="" />
+</node>
+<!-- This needs checking. The counters work, not sure about the reset -->
+<node id="triggerInputs" address="0x6000" description="Inputs configuration">
+  <node id="SerdesRstW" address="0x0" permission="w" description="" />
+  <node id="SerdesRstR" address="0x8" permission="r" description="" />
+  <node id="ThrCount0R" address="0x9" permission="r" description="" />
+  <node id="ThrCount1R" address="0xa" permission="r" description="" />
+  <node id="ThrCount2R" address="0xb" permission="r" description="" />
+  <node id="ThrCount3R" address="0xc" permission="r" description="" />
+  <node id="ThrCount4R" address="0xd" permission="r" description="" />
+  <node id="ThrCount5R" address="0xe" permission="r" description="" />
+</node>
+<!-- Checked. Seems ok now, except for the TriggerVeto that do nothing.-->
+<node id="triggerLogic" address="0x7000" description="Trigger logic configuration">
+  <node id="PostVetoTriggersR" address="0x10" permission="r" description="" />
+  <node id="PreVetoTriggersR" address="0x11" permission="r" description="" />
+  <node id="InternalTriggerIntervalW" address="0x2" permission="w" description="" />
+  <node id="InternalTriggerIntervalR" address="0x12" permission="r" description="" />
+  <!--<node id="TriggerPatternW" address="0x3" permission="w" description="" />-->
+  <!--<node id="TriggerPatternR" address="0x13" permission="r" description="" />-->
+  <node id="TriggerVetoW" address="0x4" permission="w" description="" />
+  <node id="TriggerVetoR" address="0x14" permission="r" description="" /><!--Wait, this does nothing at the moment...-->
+  <node id="ExternalTriggerVetoR" address="0x15" permission="r" description="" />
+  <node id="PulseStretchW" address="0x6" permission="w" description="" />
+  <node id="PulseStretchR" address="0x16" permission="r" description="" />
+  <node id="PulseDelayW" address="0x7" permission="w" description="" />
+  <node id="PulseDelayR" address="0x17" permission="r" description="" />
+  <node id="TriggerHoldOffW" address="0x8" permission="W" description="" /><!--Wait, this does nothing at the moment...-->
+  <node id="TriggerHoldOffR" address="0x18" permission="r" description="" /><!--Wait, this does nothing at the moment...-->
+  <node id="AuxTriggerCountR" address="0x19" permission="r" description="" />
+  <node id="TriggerPattern_lowW" address="0xA" permission="w" description="" />
+  <node id="TriggerPattern_lowR" address="0x1A" permission="r" description="" />
+  <node id="TriggerPattern_highW" address="0xB" permission="w" description="" />
+  <node id="TriggerPattern_highR" address="0x1B" permission="r" description="" />
+
+  <!--<node id="PulseStretchW" address="0x6" permission="w" description="" /> OLD REGISTER MAP. WAS BUGGED-->
+  <!--<node id="PulseStretchR" address="0x16" permission="r" description="" /> OLD REGISTER MAP. WAS BUGGED-->
+
+  <!--
+  <node id="ResetCountersW" address="0x6" permission="w" description="" />
+  <node id="PulseStretchR" address="0x17" permission="r" description="" />
+  <node id="PulseStretchW" address="0x7" permission="w" description="" />
+  <node id="TriggerHoldOffR" address="0x18" permission="r" description="" />
+  <node id="TriggerHoldOffW" address="0x8" permission="W" description="" />
+  <node id="AuxTriggerCountR" address="0x19" permission="r" description="" />
+-->
+</node>
+
+<node id="logic_clocks" address="0x8000" description="Clocks configuration">
+  <node id="LogicClocksCSR" address="0x0" permission="rw" description="" />
+  <node id="LogicRst" address="0x1" permission="w" description="" />
+</node>
+
+<node id="version" address="0x1" description="firmware version" permission="r">
+</node>
+
+<!--
+PulseStretchW			0x00000066     0xffffffff    0    1
+PulseDelayW 			0x00000067     0xffffffff    0    1
+PulseDelayR 			0x00000077     0xffffffff    1    0
+-->
+</node>
diff --git a/legacy/TLU_v1e/scripts/TLUconnection.xml b/legacy/TLU_v1e/scripts/TLUconnection.xml
new file mode 100644
index 00000000..fca67f50
--- /dev/null
+++ b/legacy/TLU_v1e/scripts/TLUconnection.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<connections>
+  <connection id="tlu" uri="ipbusudp-2.0://192.168.200.30:50001"
+   address_table="file://./TLUaddrmap.xml" />
+</connections>
diff --git a/legacy/TLU_v1e/scripts/datafiles/20171020_122611_tluData_1.root b/legacy/TLU_v1e/scripts/datafiles/20171020_122611_tluData_1.root
new file mode 100644
index 0000000000000000000000000000000000000000..71ed872acceb600852a81aea7df130f7b8c8590d
GIT binary patch
literal 6068
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

literal 0
HcmV?d00001

diff --git a/legacy/TLU_v1e/scripts/initTLU.py b/legacy/TLU_v1e/scripts/initTLU.py
new file mode 100644
index 00000000..eb1ae650
--- /dev/null
+++ b/legacy/TLU_v1e/scripts/initTLU.py
@@ -0,0 +1,184 @@
+#
+# Function to initialize TLU
+#
+# David Cussans, October 2015
+#
+# Nasty hack - use both PyChips and uHAL ( for block read ... )
+
+from PyChipsUser import *
+from FmcTluI2c import *
+
+import uhal
+
+import sys
+import time
+
+def startTLU( uhalDevice , pychipsBoard , writeTimestamps):
+
+    print "RESETTING FIFO"
+    pychipsBoard.write("EventFifoCSR",0x2)
+    eventFifoFillLevel = pychipsBoard.read("EventFifoFillLevel")
+    print "FIFO FILL LEVEL AFTER RESET= " , eventFifoFillLevel
+
+
+    if writeTimestamps:
+        print "ENABLING DATA RECORDING"
+        pychipsBoard.write("Enable_Record_Data",1)
+    else:
+        print "Disabling data recording"
+        pychipsBoard.write("Enable_Record_Data",0)
+
+    print "Pulsing T0"
+    pychipsBoard.write("PulseT0",1)
+
+    print "Turning off software trigger veto"
+    pychipsBoard.write("TriggerVetoW",0)
+
+    print "TLU is running"
+
+
+def stopTLU( uhalDevice , pychipsBoard ):
+
+    print "Turning on software trigger veto"
+    pychipsBoard.write("TriggerVetoW",1)
+
+    print "TLU triggers are stopped"
+
+def initTLU( uhalDevice , pychipsBoard , listenForTelescopeShutter , pulseDelay , pulseStretch , triggerPattern , DUTMask , ignoreDUTBusy , triggerInterval , thresholdVoltage ):
+
+    print "SETTING UP AIDA TLU"
+
+    fwVersion = uhalDevice.getNode("version").read()
+    uhalDevice.dispatch()
+    print "\tVersion (uHAL)= " , hex(fwVersion)
+
+    print "\tTurning on software trigger veto"
+    pychipsBoard.write("TriggerVetoW",1)
+
+    # Check the bus for I2C devices
+    pychipsBoardi2c = FmcTluI2c(pychipsBoard)
+
+    print "\tScanning I2C bus:"
+    scanResults = pychipsBoardi2c.i2c_scan()
+    #print scanResults
+    print '\t', ', '.join(scanResults), '\n'
+
+    boardId = pychipsBoardi2c.get_serial_number()
+    print "\tFMC-TLU serial number= " , boardId
+
+    resetClocks = 0
+    resetSerdes = 0
+
+# set DACs to -200mV
+    print "\tSETTING ALL DAC THRESHOLDS TO" , thresholdVoltage , "V"
+    pychipsBoardi2c.set_threshold_voltage(7, thresholdVoltage)
+
+    clockStatus = pychipsBoard.read("LogicClocksCSR")
+    print "\tCLOCK STATUS (should be 3 if all clocks locked)= " , hex(clockStatus)
+    assert ( clockStatus == 3 ) , "Clocks in TLU FPGA are not locked. No point in continuing. Re-prgramme or power cycle board"
+
+    if resetClocks:
+        print "Resetting clocks"
+        pychipsBoard.write("LogicRst", 1 )
+
+        clockStatus = pychipsBoard.read("LogicClocksCSR")
+        print "Clock status after reset = " , hex(clockStatus)
+
+        inputStatus = pychipsBoard.read("SerdesRstR")
+        print "Input status = " , hex(inputStatus)
+
+    if resetSerdes:
+        pychipsBoard.write("SerdesRstW", 0x00000003 )
+        inputStatus = pychipsBoard.read("SerdesRstR")
+        print "Input status during reset = " , hex(inputStatus)
+
+        pychipsBoard.write("SerdesRstW", 0x00000000 )
+        inputStatus = pychipsBoard.read("SerdesRstR")
+        print "Input status after reset = " , hex(inputStatus)
+
+        pychipsBoard.write("SerdesRstW", 0x00000004 )
+        inputStatus = pychipsBoard.read("SerdesRstR")
+        print "Input status during calibration = " , hex(inputStatus)
+
+        pychipsBoard.write("SerdesRstW", 0x00000000 )
+        inputStatus = pychipsBoard.read("SerdesRstR")
+        print "Input status after calibration = " , hex(inputStatus)
+
+
+    inputStatus = pychipsBoard.read("SerdesRstR")
+    print "\tINPUT STATUS= " , hex(inputStatus)
+
+    count0 = pychipsBoard.read("ThrCount0R")
+    print "\t  Count 0= " , count0
+
+    count1 = pychipsBoard.read("ThrCount1R")
+    print "\t  Count 1= " , count1
+
+    count2 = pychipsBoard.read("ThrCount2R")
+    print "\t  Count 2= " , count2
+
+    count3 = pychipsBoard.read("ThrCount3R")
+    print "\t  Count 3= " , count3
+
+# Stop internal triggers until setup complete
+    pychipsBoard.write("InternalTriggerIntervalW",0)
+
+    print "\tSETTING INPUT COINCIDENCE WINDOW TO",pulseStretch,"[Units= 160MHz clock cycles, Four 5-bit values (one per input) packed in to 32-bit word]"
+    pychipsBoard.write("PulseStretchW",int(pulseStretch))
+    pulseStretchR = pychipsBoard.read("PulseStretchR")
+    print "\t  Pulse stretch read back as:", hex(pulseStretchR)
+ #   assert (int(pulseStretch) == pulseStretchR) , "Pulse stretch read-back doesn't equal written value"
+
+    print "\tSETTING INPUT TRIGGER DELAY TO",pulseDelay , "[Units= 160MHz clock cycles, Four 5-bit values (one per input) packed in to 32-bit word]"
+    pychipsBoard.write("PulseDelayW",int(pulseDelay))
+    pulseDelayR = pychipsBoard.read("PulseDelayR")
+    print "\t  Pulse delay read back as:", hex(pulseDelayR)
+
+    print "\tSETTING TRIGGER PATTERN (for external triggers) TO 0x%08X. Two 16-bit patterns packed into 32 bit word  " %(triggerPattern)
+    pychipsBoard.write("TriggerPatternW",int(triggerPattern))
+    triggerPatternR = pychipsBoard.read("TriggerPatternR")
+    print "\t  Trigger pattern read back as: 0x%08X " % (triggerPatternR)
+
+    print "\tENABLING DUT(s): Mask= " , hex(DUTMask)
+    pychipsBoard.write("DUTMaskW",int(DUTMask))
+    DUTMaskR = pychipsBoard.read("DUTMaskR")
+    print "\t  DUTMask read back as:" , hex(DUTMaskR)
+
+    print "\tSETTING ALL DUTs IN AIDA MODE"
+    pychipsBoard.write("DUTInterfaceModeW", 0xFF)
+    DUTInterfaceModeR = pychipsBoard.read("DUTInterfaceModeR")
+    print "\t  DUT mode read back as:" , DUTInterfaceModeR
+
+    print "\tSET DUT MODE MODIFIER"
+    pychipsBoard.write("DUTInterfaceModeModifierW", 0xFF)
+    DUTInterfaceModeModifierR = pychipsBoard.read("DUTInterfaceModeModifierR")
+    print "\t  DUT mode modifier read back as:" , DUTInterfaceModeModifierR
+
+    if listenForTelescopeShutter:
+        print "\tSET IgnoreShutterVetoW TO LISTEN FOR VETO FROM SHUTTER"
+        pychipsBoard.write("IgnoreShutterVetoW",0)
+    else:
+        print "\tSET IgnoreShutterVetoW TO IGNORE VETO FROM SHUTTER"
+        pychipsBoard.write("IgnoreShutterVetoW",1)
+    IgnoreShutterVeto = pychipsBoard.read("IgnoreShutterVetoR")
+    print "\t  IgnoreShutterVeto read back as:" , IgnoreShutterVeto
+
+    print "\tSETTING IGNORE VETO BY DUT BUSY MASK TO" , hex(ignoreDUTBusy)
+    pychipsBoard.write("IgnoreDUTBusyW",int(ignoreDUTBusy))
+    IgnoreDUTBusy = pychipsBoard.read("IgnoreDUTBusyR")
+    print "\t  IgnoreDUTBusy read back as:" , hex(IgnoreDUTBusy)
+
+#print "Enabling handshake: No-handshake"
+#board.write("HandshakeTypeW",1)
+
+
+    print "\tSETTING INTERNAL TRIGGER INTERVAL TO" , triggerInterval , "(zero= no internal triggers)"
+    if triggerInterval == 0:
+        internalTriggerFreq = 0
+    else:
+        internalTriggerFreq = 160000.0/triggerInterval
+    print "\tINTERNAL TRIGGER FREQUENCY= " , internalTriggerFreq , " kHz"
+    pychipsBoard.write("InternalTriggerIntervalW",triggerInterval)  #0->Internal pulse generator disabled. Any other value will generate pulses with a frequency of n*6.25ns
+    trigIntervalR = pychipsBoard.read("InternalTriggerIntervalR")
+    print "\t  Trigger interval read back as:", trigIntervalR
+    print "AIDA TLU SETUP COMPLETED"
diff --git a/legacy/TLU_v1e/scripts/localClock.txt b/legacy/TLU_v1e/scripts/localClock.txt
new file mode 100644
index 00000000..0a7b2d94
--- /dev/null
+++ b/legacy/TLU_v1e/scripts/localClock.txt
@@ -0,0 +1,394 @@
+# Si538x/4x Registers Export
+# 
+# Part: Si5345
+# Project File: P:\cad\designs\fmc-mtlu\trunk\circuit_board\Cadence\worklib\fmc_tlu_toplevel_c\physical\ClockGen\TLU_Si5345-RevB-NEWTLU00-Project.slabtimeproj
+# Design ID: TLU1E_01
+# Includes Pre/Post Download Control Register Writes: Yes
+# Die Revision: A2
+# Creator: ClockBuilder Pro v2.12.1 [2016-12-15]
+# Created On: 2017-08-24 13:37:41 GMT+01:00
+Address,Data
+0x0B24,0xD8
+0x0B25,0x00
+0x000B,0x68
+0x0016,0x02
+0x0017,0x1C
+0x0018,0x88
+0x0019,0xDD
+0x001A,0xDF
+0x002B,0x02
+0x002C,0x07
+0x002D,0x15
+0x002E,0x37
+0x002F,0x00
+0x0030,0x37
+0x0031,0x00
+0x0032,0x37
+0x0033,0x00
+0x0034,0x00
+0x0035,0x00
+0x0036,0x37
+0x0037,0x00
+0x0038,0x37
+0x0039,0x00
+0x003A,0x37
+0x003B,0x00
+0x003C,0x00
+0x003D,0x00
+0x003F,0x77
+0x0040,0x04
+0x0041,0x0C
+0x0042,0x0C
+0x0043,0x0C
+0x0044,0x00
+0x0045,0x0C
+0x0046,0x32
+0x0047,0x32
+0x0048,0x32
+0x0049,0x00
+0x004A,0x32
+0x004B,0x32
+0x004C,0x32
+0x004D,0x00
+0x004E,0x55
+0x004F,0x05
+0x0051,0x03
+0x0052,0x03
+0x0053,0x03
+0x0054,0x00
+0x0055,0x03
+0x0056,0x03
+0x0057,0x03
+0x0058,0x00
+0x0059,0x3F
+0x005A,0xCC
+0x005B,0xCC
+0x005C,0xCC
+0x005D,0x00
+0x005E,0xCC
+0x005F,0xCC
+0x0060,0xCC
+0x0061,0x00
+0x0062,0xCC
+0x0063,0xCC
+0x0064,0xCC
+0x0065,0x00
+0x0066,0x00
+0x0067,0x00
+0x0068,0x00
+0x0069,0x00
+0x0092,0x00
+0x0093,0x00
+0x0095,0x00
+0x0096,0x00
+0x0098,0x00
+0x009A,0x02
+0x009B,0x30
+0x009D,0x00
+0x009E,0x20
+0x00A0,0x00
+0x00A2,0x02
+0x00A8,0x89
+0x00A9,0x70
+0x00AA,0x07
+0x00AB,0x00
+0x00AC,0x00
+0x0102,0x01
+0x0108,0x06
+0x0109,0x09
+0x010A,0x33
+0x010B,0x00
+0x010D,0x06
+0x010E,0x09
+0x010F,0x33
+0x0110,0x00
+0x0112,0x06
+0x0113,0x09
+0x0114,0x33
+0x0115,0x00
+0x0117,0x06
+0x0118,0x09
+0x0119,0x33
+0x011A,0x00
+0x011C,0x06
+0x011D,0x09
+0x011E,0x33
+0x011F,0x00
+0x0121,0x06
+0x0122,0x09
+0x0123,0x33
+0x0124,0x00
+0x0126,0x06
+0x0127,0x09
+0x0128,0x33
+0x0129,0x00
+0x012B,0x06
+0x012C,0x09
+0x012D,0x33
+0x012E,0x00
+0x0130,0x06
+0x0131,0x09
+0x0132,0x33
+0x0133,0x00
+0x013A,0x01
+0x013B,0xCC
+0x013C,0x00
+0x013D,0x00
+0x013F,0x00
+0x0140,0x00
+0x0141,0x40
+0x0142,0xFF
+0x0202,0x00
+0x0203,0x00
+0x0204,0x00
+0x0205,0x00
+0x0206,0x00
+0x0208,0x14
+0x0209,0x00
+0x020A,0x00
+0x020B,0x00
+0x020C,0x00
+0x020D,0x00
+0x020E,0x01
+0x020F,0x00
+0x0210,0x00
+0x0211,0x00
+0x0212,0x14
+0x0213,0x00
+0x0214,0x00
+0x0215,0x00
+0x0216,0x00
+0x0217,0x00
+0x0218,0x01
+0x0219,0x00
+0x021A,0x00
+0x021B,0x00
+0x021C,0x14
+0x021D,0x00
+0x021E,0x00
+0x021F,0x00
+0x0220,0x00
+0x0221,0x00
+0x0222,0x01
+0x0223,0x00
+0x0224,0x00
+0x0225,0x00
+0x0226,0x00
+0x0227,0x00
+0x0228,0x00
+0x0229,0x00
+0x022A,0x00
+0x022B,0x00
+0x022C,0x00
+0x022D,0x00
+0x022E,0x00
+0x022F,0x00
+0x0231,0x01
+0x0232,0x01
+0x0233,0x01
+0x0234,0x01
+0x0235,0x00
+0x0236,0x00
+0x0237,0x00
+0x0238,0x00
+0x0239,0xA9
+0x023A,0x00
+0x023B,0x00
+0x023C,0x00
+0x023D,0x00
+0x023E,0xA0
+0x024A,0x00
+0x024B,0x00
+0x024C,0x00
+0x024D,0x00
+0x024E,0x00
+0x024F,0x00
+0x0250,0x00
+0x0251,0x00
+0x0252,0x00
+0x0253,0x00
+0x0254,0x00
+0x0255,0x00
+0x0256,0x00
+0x0257,0x00
+0x0258,0x00
+0x0259,0x00
+0x025A,0x00
+0x025B,0x00
+0x025C,0x00
+0x025D,0x00
+0x025E,0x00
+0x025F,0x00
+0x0260,0x00
+0x0261,0x00
+0x0262,0x00
+0x0263,0x00
+0x0264,0x00
+0x0268,0x00
+0x0269,0x00
+0x026A,0x00
+0x026B,0x54
+0x026C,0x4C
+0x026D,0x55
+0x026E,0x31
+0x026F,0x45
+0x0270,0x5F
+0x0271,0x30
+0x0272,0x31
+0x0302,0x00
+0x0303,0x00
+0x0304,0x00
+0x0305,0x80
+0x0306,0x54
+0x0307,0x00
+0x0308,0x00
+0x0309,0x00
+0x030A,0x00
+0x030B,0x80
+0x030C,0x00
+0x030D,0x00
+0x030E,0x00
+0x030F,0x00
+0x0310,0x00
+0x0311,0x00
+0x0312,0x00
+0x0313,0x00
+0x0314,0x00
+0x0315,0x00
+0x0316,0x00
+0x0317,0x00
+0x0318,0x00
+0x0319,0x00
+0x031A,0x00
+0x031B,0x00
+0x031C,0x00
+0x031D,0x00
+0x031E,0x00
+0x031F,0x00
+0x0320,0x00
+0x0321,0x00
+0x0322,0x00
+0x0323,0x00
+0x0324,0x00
+0x0325,0x00
+0x0326,0x00
+0x0327,0x00
+0x0328,0x00
+0x0329,0x00
+0x032A,0x00
+0x032B,0x00
+0x032C,0x00
+0x032D,0x00
+0x032E,0x00
+0x032F,0x00
+0x0330,0x00
+0x0331,0x00
+0x0332,0x00
+0x0333,0x00
+0x0334,0x00
+0x0335,0x00
+0x0336,0x00
+0x0337,0x00
+0x0338,0x00
+0x0339,0x1F
+0x033B,0x00
+0x033C,0x00
+0x033D,0x00
+0x033E,0x00
+0x033F,0x00
+0x0340,0x00
+0x0341,0x00
+0x0342,0x00
+0x0343,0x00
+0x0344,0x00
+0x0345,0x00
+0x0346,0x00
+0x0347,0x00
+0x0348,0x00
+0x0349,0x00
+0x034A,0x00
+0x034B,0x00
+0x034C,0x00
+0x034D,0x00
+0x034E,0x00
+0x034F,0x00
+0x0350,0x00
+0x0351,0x00
+0x0352,0x00
+0x0353,0x00
+0x0354,0x00
+0x0355,0x00
+0x0356,0x00
+0x0357,0x00
+0x0358,0x00
+0x0359,0x00
+0x035A,0x00
+0x035B,0x00
+0x035C,0x00
+0x035D,0x00
+0x035E,0x00
+0x035F,0x00
+0x0360,0x00
+0x0361,0x00
+0x0362,0x00
+0x0487,0x00
+0x0502,0x01
+0x0508,0x14
+0x0509,0x23
+0x050A,0x0C
+0x050B,0x0B
+0x050C,0x03
+0x050D,0x3F
+0x050E,0x17
+0x050F,0x2B
+0x0510,0x09
+0x0511,0x08
+0x0512,0x03
+0x0513,0x3F
+0x0515,0x00
+0x0516,0x00
+0x0517,0x00
+0x0518,0x00
+0x0519,0xA4
+0x051A,0x02
+0x051B,0x00
+0x051C,0x00
+0x051D,0x00
+0x051E,0x00
+0x051F,0x80
+0x0521,0x21
+0x052A,0x05
+0x052B,0x01
+0x052C,0x0F
+0x052D,0x03
+0x052E,0x19
+0x052F,0x19
+0x0531,0x00
+0x0532,0x42
+0x0533,0x03
+0x0534,0x00
+0x0535,0x00
+0x0536,0x08
+0x0537,0x00
+0x0538,0x00
+0x0539,0x00
+0x0802,0x35
+0x0803,0x05
+0x0804,0x00
+0x090E,0x02
+0x0943,0x00
+0x0949,0x07
+0x094A,0x07
+0x0A02,0x00
+0x0A03,0x01
+0x0A04,0x01
+0x0A05,0x01
+0x0B44,0x2F
+0x0B46,0x00
+0x0B47,0x00
+0x0B48,0x08
+0x0B4A,0x1E
+0x0514,0x01
+0x001C,0x01
+0x0B24,0xDB
+0x0B25,0x02
diff --git a/legacy/TLU_v1e/scripts/localConf.conf b/legacy/TLU_v1e/scripts/localConf.conf
new file mode 100644
index 00000000..dc4f66f1
--- /dev/null
+++ b/legacy/TLU_v1e/scripts/localConf.conf
@@ -0,0 +1,86 @@
+[Producer.fmctlu]
+verbose= 1
+confid= 20170626
+delayStart= 1000
+
+# HDMI pin direction:
+# 4-bits to determine direction of HDMI pins
+# 1-bit for the clock pair
+# 0= pins are not driving signals, 1 pins drive signals (outputs)
+HDMI1_set= 0x7
+HDMI2_set= 0x7
+HDMI3_set= 0x7
+HDMI4_set= 0x7
+HDMI1_clk = 1
+HDMI2_clk = 1
+HDMI3_clk = 1
+HDMI4_clk = 1
+
+# Enable/disable differential LEMO CLOCK
+LEMOclk = 1
+
+# Set delay and stretch for trigger pulses
+in0_STR = 1
+in0_DEL = 0
+in1_STR = 1
+in1_DEL = 0
+in2_STR = 1
+in2_DEL = 0
+in3_STR = 1
+in3_DEL = 0
+in4_STR = 1
+in4_DEL = 0
+in5_STR = 1
+in5_DEL = 0
+#
+trigMaskHi = 0x00000000
+trigMaskLo = 0x00000002
+#
+#### DAC THRESHOLD
+DACThreshold0 = -0.12
+DACThreshold1 = -0.12
+DACThreshold2 = -0.12
+DACThreshold3 = -0.12
+DACThreshold4 = -0.12
+DACThreshold5 = -0.12
+
+# Define which DUTs are ON
+DutMask = 1
+
+# Define mode of DUT (00 EUDET, 11 AIDA)
+DUTMaskMode= 0xFFFFFFFF
+
+# Allow asynchronous veto
+DUTMaskModeModifier= 0x0
+
+# Ignore busy from a specific DUT
+DUTIgnoreBusy = 0x0
+
+# Ignore the SHUTTER veto on a specific DUT
+DUTIgnoreShutterVeto = 0x0
+
+# Generate internal triggers (in Hz, 0= no triggers)
+InternalTriggerFreq = 10
+
+
+
+[LogCollector.log]
+# Currently, all LogCollectors have a hardcoded runtime name: log
+# nothing
+
+
+[DataCollector.my_dc]
+EUDAQ_MON=my_mon
+# send assambled event to the monitor with runtime name my_mon;
+EUDAQ_FW=native
+# the format of data file
+EUDAQ_FW_PATTERN=$12D_run$6R$X
+# the name pattern of data file
+# the $12D will be converted a data/time string with 12 digits.
+# the $6R will be converted a run number string with 6 digits.
+# the $X will be converted the suffix name of data file.
+
+[Monitor.my_mon]
+EX0_ENABLE_PRINT=0
+EX0_ENABLE_STD_PRINT=0
+EX0_ENABLE_STD_CONVERTER=1
diff --git a/legacy/TLU_v1e/scripts/localIni.ini b/legacy/TLU_v1e/scripts/localIni.ini
new file mode 100644
index 00000000..45920564
--- /dev/null
+++ b/legacy/TLU_v1e/scripts/localIni.ini
@@ -0,0 +1,43 @@
+[Producer.fmctlu]
+initid= 20170703
+verbose = 1
+ConnectionFile= "file://./../user/eudet/misc/fmctlu_connection.xml"
+DeviceName="fmctlu.udp"
+TLUmod= "1e"
+# number of HDMI inputs, leave 4 even if you only use fewer inputs
+nDUTs = 4
+nTrgIn = 6
+# 0= False (Internal Reference OFF), 1= True
+intRefOn = 0
+VRefInt = 2.5
+VRefExt = 1.3
+# I2C address of the bus expander on Enclustra FPGA
+I2C_COREEXP_Addr = 0x21
+# I2C address of the Si5345
+I2C_CLK_Addr = 0x68
+# I2C address of 1st AD5665R
+I2C_DAC1_Addr = 0x13
+# I2C address of 2nd AD5665R
+I2C_DAC2_Addr = 0x1F
+# address of unique Id number EEPROM
+I2C_ID_Addr = 0x50
+#I2C address of 1st expander PCA9539PW
+I2C_EXP1_Addr = 0x74
+#I2C address of 2st expander PCA9539PW
+I2C_EXP2_Addr = 0x75
+
+##CONFCLOCK 0= skip clock configuration, 1= configure si5345
+CONFCLOCK= 0
+CLOCK_CFG_FILE = /users/phpgb/workspace/myFirmware/AIDA/TLU_v1e/scripts/localClock.txt
+
+
+[LogCollector.log]
+# Currently, all LogCollectors have a hardcoded runtime name: log
+EULOG_GUI_LOG_FILE_PATTERN = myexample_$12D.log
+# the $12D will be converted a data/time string with 12 digits.
+
+[DataCollector.my_dc]
+# nothing
+
+[Monitor.my_mon]
+# nothing
diff --git a/legacy/TLU_v1e/scripts/startTLU_v1e.py b/legacy/TLU_v1e/scripts/startTLU_v1e.py
new file mode 100644
index 00000000..1961e017
--- /dev/null
+++ b/legacy/TLU_v1e/scripts/startTLU_v1e.py
@@ -0,0 +1,235 @@
+# -*- coding: utf-8 -*-
+# miniTLU test script
+
+#from PyChipsUser import *
+#from FmcTluI2c import *
+import uhal
+import sys
+import time
+from datetime import datetime
+import threading
+# from ROOT import TFile, TTree
+# from ROOT import gROOT
+from datetime import datetime
+
+from TLU_v1e import TLU
+# Use to have interactive shell
+import cmd
+
+# Use to have config file parser
+import ConfigParser
+
+# Use root
+from ROOT import TFile, TTree, gROOT, AddressOf
+from ROOT import *
+import numpy as numpy
+
+
+## Define class that creates the command user inteface
+class MyPrompt(cmd.Cmd):
+
+    # def do_initialise(self, args):
+    #     """Processes the INI file and writes its values to the TLU. To use a specific file type:\n
+    #     parseIni path/to/filename.ini\n
+    #     (without quotation marks)"""
+    # 	print "COMMAND RECEIVED: PARSE INI"
+    # 	parsed_cfg= self.open_cfg_file(args, "/users/phpgb/workspace/myFirmware/AIDA/TLU_v1e/scripts/localIni.ini")
+    #     try:
+    #         theID = parsed_cfg.getint("Producer.fmctlu", "initid")
+    #         print theID
+    #         theSTRING= parsed_cfg.get("Producer.fmctlu", "ConnectionFile")
+    #         print theSTRING
+    #         #TLU= TLU("tlu", theSTRING, parsed_cfg)
+    #     except IOError:
+    #         print "\t Could not retrieve INI data."
+    #         return
+
+
+    def do_configure(self, args):
+        """Processes the CONF file and writes its values to the TLU. To use a specific file type:\n
+        parseIni path/to/filename.conf\n
+        (without quotation marks)"""
+    	print "==== COMMAND RECEIVED: PARSE CONFIG"
+    	#self.testme()
+        parsed_cfg= self.open_cfg_file(args, "./localConf.conf")
+        try:
+            theID = parsed_cfg.getint("Producer.fmctlu", "confid")
+            print "\t", theID
+            TLU.configure(parsed_cfg)
+        except IOError:
+            print "\t Could not retrieve CONF data."
+            return
+
+    def do_id(self, args):
+        """Interrogates the TLU and prints it unique ID on screen"""
+        TLU.getSN()
+        return
+
+    def do_triggers(self, args):
+        """Interrogates the TLU and prints the number of triggers seen by the input discriminators"""
+        TLU.getChStatus()
+        TLU.getAllChannelsCounts()
+        TLU.getPostVetoTrg()
+        return
+
+    def do_startRun(self, args):
+        """Starts the TLU run. If a number is specified, this number will be appended to the file name as Run_#"""
+    	print "==== COMMAND RECEIVED: STARTING TLU RUN"
+    	#startTLU( uhalDevice = self.hw, pychipsBoard = self.board,  writeTimestamps = ( options.writeTimestamps == "True" ) )
+        arglist = args.split()
+        if len(arglist) == 0:
+            print "\tno run# specified, using 1"
+            runN= 1
+        else:
+            runN= arglist[0]
+
+        logdata= True
+
+        #TLU.start(logdata)
+        if (TLU.isRunning): #Prevent double start
+            print "  Run already in progress"
+            return
+        else:
+            now = datetime.now().strftime('%Y%m%d_%H%M%S')
+            default_filename = "./datafiles/"+ now + "_tluData_" + str(runN) + ".root"
+            rootFname= default_filename
+            print "OPENING ROOT FILE:", rootFname
+            self.root_file = TFile( rootFname, 'RECREATE' )
+            # Create a root "tree"
+            root_tree = TTree( 'T', 'TLU Data' )
+            #highWord =0
+            #lowWord =0
+            #evtNumber=0
+            #timeStamp=0
+            #evtType=0
+            #trigsFired=0
+            #bufPos = 0
+
+            #https://root-forum.cern.ch/t/long-integer/1961/2
+            gROOT.ProcessLine(
+            "struct MyStruct {\
+               UInt_t     raw0;\
+               UInt_t     raw1;\
+               UInt_t     raw2;\
+               UInt_t     raw3;\
+               UInt_t     raw4;\
+               UInt_t     raw5;\
+               UInt_t     evtNumber;\
+               ULong64_t     tluTimeStamp;\
+               UChar_t     tluEvtType;\
+               UChar_t     tluTrigFired;\
+            };" );
+
+            mystruct= MyStruct()
+
+
+            # Create a branch for each piece of data
+            root_tree.Branch('EVENTS', mystruct, 'raw0/i:raw1/i:raw2/i:raw3/i:raw4/i:raw5/i:evtNumber/i:tluTimeStamp/l:tluEvtType/b:tluTrigFired/b' )
+            # root_tree.Branch( 'tluHighWord'  , highWord  , "HighWord/l")
+            # root_tree.Branch( 'tluLowWord'   , lowWord   , "LowWord/l")
+            # root_tree.Branch( 'tluExtWord'   , extWord   , "ExtWord/l")
+            # root_tree.Branch( 'tluTimeStamp' , timeStamp , "TimeStamp/l")
+            # root_tree.Branch( 'tluBufPos'    , bufPos    , "Bufpos/s")
+            # root_tree.Branch( 'tluEvtNumber' , evtNumber , "EvtNumber/i")
+            # root_tree.Branch( 'tluEvtType'   , evtType   , "EvtType/b")
+            # root_tree.Branch( 'tluTrigFired' , trigsFired, "TrigsFired/b")
+            #self.root_file.Write()
+
+            daq_thread= threading.Thread(target = TLU.start, args=(logdata, runN, mystruct, root_tree))
+            daq_thread.start()
+
+    def do_endRun(self, args):
+    	"""Stops the TLU run"""
+    	print "==== COMMAND RECEIVED: STOP TLU RUN"
+        if TLU.isRunning:
+            TLU.isRunning= False
+            TLU.stop(False, False)
+            self.root_file.Write()
+            self.root_file.Close()
+        else:
+            print "  No run to stop"
+
+
+    def do_quit(self, args):
+        """Quits the program."""
+        print "==== COMMAND RECEIVED: QUITTING TLU CONSOLE"
+        if TLU.isRunning:
+            TLU.isRunning= False
+            TLU.stop(False, False)
+            self.root_file.Write()
+            self.root_file.Close()
+            print "Terminating run"
+	return True
+
+    def testme(self):
+        print "This is a test"
+
+    def open_cfg_file(self, args, default_file):
+        # Parse the user arguments, attempts to opent the file and performs a (minimal)
+        # check to verify the file exists (but not that its content is correct)
+
+        arglist = args.split()
+        if len(arglist) == 0:
+            print "\tno file specified, using default"
+            fileName= default_file
+            print "\t", fileName
+        else:
+            fileName= arglist[0]
+        if len(arglist) > 1:
+            print "\tinvalid: too many arguments. Max 1."
+            return
+
+        parsed_file = ConfigParser.RawConfigParser()
+        try:
+            with open(fileName) as f:
+                parsed_file.readfp(f)
+                print "\t", parsed_file.sections()
+        except IOError:
+            print "\t Error while parsing the specified file."
+            return
+        return parsed_file
+
+# # Override methods in Cmd object ##
+#     def preloop(self):
+#         """Initialization before prompting user for commands.
+#            Despite the claims in the Cmd documentaion, Cmd.preloop() is not a stub.
+#         """
+#         cmd.Cmd.preloop(self)  # # sets up command completion
+#         self._hist = []  # # No history yet
+#         self._locals = {}  # # Initialize execution namespace for user
+#         self._globals = {}
+#         print "\nINITIALIZING"
+#         now = datetime.now().strftime('%Y-%m-%dT%H_%M_%S')
+#         default_filename = './rootfiles/tluData_' + now + '.root'
+#         print "SETTING UP AIDA TLU TO SUPPLY CLOCK AND TRIGGER TO TORCH READOUT\n"
+#         self.manager = uhal.ConnectionManager("file://./connection.xml")
+#         self.hw = self.manager.getDevice("minitlu")
+#         self.device_id = self.hw.id()
+#
+#         # Point to TLU in Pychips
+#         self.bAddrTab = AddressTable("./aida_mini_tlu_addr_map.txt")
+#
+#         # Assume DIP-switch controlled address. Switches at 2
+#         self.board = ChipsBusUdp(self.bAddrTab,"192.168.200.32",50001)
+
+
+#################################################
+if __name__ == "__main__":
+    print "TLU v1E MAIN"
+    prompt = MyPrompt()
+    prompt.prompt = '>> '
+
+    parsed_ini= prompt.open_cfg_file("", "./localIni.ini")
+    TLU= TLU("tlu", "file://./TLUconnection.xml", parsed_ini)
+
+    ###TLU.configure(parsed_cfg)
+    ###logdata= True
+    ###TLU.start(logdata)
+    ###time.sleep(5)
+    ###TLU.stop(False, False)
+
+    # Start interactive prompt
+    print "=+=================================================================="
+    print "==========================TLU TEST CONSOLE=========================="
+    print "+==================================================================="
+    prompt.cmdloop("Type 'help' for a list of commands.")
diff --git a/legacy/TLU_v1e/scripts/startTLU_v1e.sh b/legacy/TLU_v1e/scripts/startTLU_v1e.sh
new file mode 100644
index 00000000..f0bb3872
--- /dev/null
+++ b/legacy/TLU_v1e/scripts/startTLU_v1e.sh
@@ -0,0 +1,25 @@
+#!/bin/bash
+
+echo "=========================="
+CURRENT_DIR=${0%/*}
+echo "CURRENT DIRECTORY: " $CURRENT_DIR
+
+echo "============"
+echo "SETTING PATHS"
+#export PYTHONPATH=$CURRENT_DIR/../../../../../Python_Scripts/PyChips_1_5_0_pre2A/src:$PYTHONPATH
+#export PYTHONPATH=~/Python_Scripts/PyChips_1_5_0_pre2A/src:$PYTHONPATH
+export PYTHONPATH=../../packages:$PYTHONPATH
+echo "PYTHON PATH= " $PYTHONPATH
+export LD_LIBRARY_PATH=/opt/cactus/lib:$LD_LIBRARY_PATH
+echo "LD_LIBRARY_PATH= " $LD_LIBRARY_PATH
+export PATH=/usr/bin/:/opt/cactus/bin:$PATH
+echo "PATH= " $PATH
+
+cd $CURRENT_DIR
+
+echo "============"
+echo "STARTING PYTHON SCRIPT FOR TLU"
+#python $CURRENT_DIR/startTLU_v8.py $@
+
+python startTLU_v1e.py $@
+#python testTLU_script.py
diff --git a/legacy/TLU_v1e/scripts/startTLU_v6.py b/legacy/TLU_v1e/scripts/startTLU_v6.py
new file mode 100644
index 00000000..b7948f20
--- /dev/null
+++ b/legacy/TLU_v1e/scripts/startTLU_v6.py
@@ -0,0 +1,232 @@
+#
+# Script to setup AIDA TLU for TPix3 telescope <--> TORCH synchronization
+#
+# David Cussans, December 2012
+#
+# Nasty hack - use both PyChips and uHAL ( for block read ... )
+
+from PyChipsUser import *
+from FmcTluI2c import *
+
+import uhal
+
+import sys
+
+import time
+
+from datetime import datetime
+
+from optparse import OptionParser
+
+# For single character non-blocking input:
+import select
+import tty
+import termios
+
+from initTLU import *
+
+def isData():
+    return select.select([sys.stdin], [], [], 0) == ([sys.stdin], [], [])
+
+now = datetime.now().strftime('%Y-%m-%dT%H_%M_%S')
+default_filename = 'tluData_' + now + '.root'
+parser = OptionParser()
+
+parser.add_option('-r','--rootFname',dest='rootFname',
+                       default=default_filename,help='Path of output file')
+parser.add_option('-o','--writeTimestamps',dest='writeTimestamps',
+                       default="True",help='Set True to write timestamps to ROOT file')
+parser.add_option('-p','--printTimestamps',dest='printTimestamps',
+                       default="True",help='Set True to print timestamps to screen (nothing printed unless also output to file) ')
+parser.add_option('-s','--listenForTelescopeShutter',dest='listenForTelescopeShutter',
+                       default=False,help='Set True to veto triggers when shutter goes high')
+parser.add_option('-d','--pulseDelay',dest='pulseDelay', type=int,
+                       default=0x00,help='Delay added to input triggers. Four 5-bit numbers packed into 32-bt word, Units of 6.125ns')
+parser.add_option('-w','--pulseStretch',dest='pulseStretch',type=int,
+                       default=0x00,help='Width added to input triggers. Four 5-bit numbers packed into 32-bt word. Units of 6.125ns')
+parser.add_option('-t','--triggerPattern',dest='triggerPattern',type=int,
+                       default=0xFFFEFFFE,help='Pattern match to generate trigger. Two 16-bit words packed into 32-bit word.')
+parser.add_option('-m','--DUTMask',dest='DUTMask',type=int,
+                       default=0x01,help='Three-bit mask selecting which DUTs are active.')
+parser.add_option('-y','--ignoreDUTBusy',dest='ignoreDUTBusy',type=int,
+                       default=0x0F,help='Three-bit mask selecting which DUTs can veto triggers by setting BUSY high. Low = can veto, high = ignore busy.')
+parser.add_option('-i','--triggerInterval',dest='triggerInterval',type=int,
+                       default=0,help='Interval between internal trigers ( in units of 6.125ns ). Set to zero to turn off internal triggers')
+parser.add_option('-v','--thresholdVoltage',dest='thresholdVoltage',type=float,
+                       default=-0.2,help='Threshold voltage for TLU inputs ( units of volts)')
+
+(options, args) = parser.parse_args(sys.argv[1:])
+
+from ROOT import TFile, TTree
+from ROOT import gROOT
+
+print "SETTING UP AIDA TLU TO SUPPLY CLOCK AND TRIGGER TO TORCH READOUT\n"
+
+# Point to board in uHAL
+manager = uhal.ConnectionManager("file://./connection.xml")
+hw = manager.getDevice("minitlu")
+device_id = hw.id()
+
+# Point to TLU in Pychips
+bAddrTab = AddressTable("./aida_mini_tlu_addr_map.txt")
+
+# Assume DIP-switch controlled address. Switches at 2
+board = ChipsBusUdp(bAddrTab,"192.168.200.32",50001)
+
+# Open Root file
+print "OPENING ROOT FILE:", options.rootFname
+f = TFile( options.rootFname, 'RECREATE' )
+
+# Create a root "tree"
+tree = TTree( 'T', 'TLU Data' )
+highWord =0
+lowWord =0
+evtNumber=0
+timeStamp=0
+evtType=0
+trigsFired=0
+bufPos = 0
+
+# Create a branch for each piece of data
+tree.Branch( 'tluHighWord'  , highWord  , "HighWord/l")
+tree.Branch( 'tluLowWord'   , lowWord   , "LowWord/l")
+tree.Branch( 'tluTimeStamp' , timeStamp , "TimeStamp/l")
+tree.Branch( 'tluBufPos'    , bufPos    , "Bufpos/s")
+tree.Branch( 'tluEvtNumber' , evtNumber , "EvtNumber/i")
+tree.Branch( 'tluEvtType'   , evtType   , "EvtType/b")
+tree.Branch( 'tluTrigFired' , trigsFired, "TrigsFired/b")
+
+# Initialize TLU registers
+initTLU( uhalDevice = hw, pychipsBoard = board, listenForTelescopeShutter = options.listenForTelescopeShutter, pulseDelay = options.pulseDelay, pulseStretch = options.pulseStretch, triggerPattern = options.triggerPattern , DUTMask = options.DUTMask, ignoreDUTBusy = options.ignoreDUTBusy , triggerInterval = options.triggerInterval, thresholdVoltage = options.thresholdVoltage )
+
+loopWait = 0.1
+oldEvtNumber = 0
+
+oldPreVetotriggerCount = board.read("PreVetoTriggersR")
+oldPostVetotriggerCount = board.read("PostVetoTriggersR")
+
+oldThresholdCounter0 =0
+oldThresholdCounter1 =0
+oldThresholdCounter2 =0
+oldThresholdCounter3 =0
+
+print "STARTING POLLING LOOP"
+
+eventFifoFillLevel = 0
+loopRunning = True
+runStarted = False
+
+oldTime = time.time()
+
+# Save old terminal settings
+oldTermSettings = termios.tcgetattr(sys.stdin)
+tty.setcbreak(sys.stdin.fileno())
+
+while loopRunning:
+
+    if isData():
+        c = sys.stdin.read(1)
+        print "\tGOT INPUT:", c
+        if c == 't':
+            loopRunning = False
+            print "\tTERMINATING LOOP"
+        elif c == 'c':
+            runStarted = True
+            print "\tSTARTING RUN"
+            startTLU( uhalDevice = hw, pychipsBoard = board,  writeTimestamps = ( options.writeTimestamps == "True" ) )
+        elif c == 'f':
+            # runStarted = True
+            print "\tSTOPPING TRIGGERS"
+            stopTLU( uhalDevice = hw, pychipsBoard = board )
+
+
+    if runStarted:
+
+        eventFifoFillLevel = hw.getNode("eventBuffer.EventFifoFillLevel").read()
+
+        preVetotriggerCount = hw.getNode("triggerLogic.PreVetoTriggersR").read()
+        postVetotriggerCount = hw.getNode("triggerLogic.PostVetoTriggersR").read()
+
+        timestampHigh = hw.getNode("Event_Formatter.CurrentTimestampHR").read()
+        timestampLow  = hw.getNode("Event_Formatter.CurrentTimestampLR").read()
+
+        thresholdCounter0 = hw.getNode("triggerInputs.ThrCount0R").read()
+        thresholdCounter1 = hw.getNode("triggerInputs.ThrCount1R").read()
+        thresholdCounter2 = hw.getNode("triggerInputs.ThrCount2R").read()
+        thresholdCounter3 = hw.getNode("triggerInputs.ThrCount3R").read()
+
+        hw.dispatch()
+
+        newTime = time.time()
+        timeDelta = newTime - oldTime
+        oldTime = newTime
+        #print "time delta = " , timeDelta
+        preVetoFreq = (preVetotriggerCount-oldPreVetotriggerCount)/timeDelta
+        postVetoFreq = (postVetotriggerCount-oldPostVetotriggerCount)/timeDelta
+        oldPreVetotriggerCount = preVetotriggerCount
+        oldPostVetotriggerCount = postVetotriggerCount
+
+        deltaCounts0 = thresholdCounter0 - oldThresholdCounter0
+        oldThresholdCounter0 = thresholdCounter0
+        deltaCounts1 = thresholdCounter1 - oldThresholdCounter1
+        oldThresholdCounter1 = thresholdCounter1
+        deltaCounts2 = thresholdCounter2 - oldThresholdCounter2
+        oldThresholdCounter2 = thresholdCounter2
+        deltaCounts3 = thresholdCounter3 - oldThresholdCounter3
+        oldThresholdCounter3 = thresholdCounter3
+
+        print "pre , post  veto triggers , pre , post frequency = " , preVetotriggerCount , postVetotriggerCount , preVetoFreq , postVetoFreq
+
+        print "CURRENT TIMESTAMP HIGH, LOW (hex) = " , hex(timestampHigh) , hex(timestampLow)
+
+        print "Input counts 0,1,2,3 = "      , thresholdCounter0 , thresholdCounter1 , thresholdCounter2 , thresholdCounter3
+        print "Input freq (Hz) 0,1,2,3 = " , deltaCounts0/timeDelta , deltaCounts1/timeDelta , deltaCounts2/timeDelta , deltaCounts3/timeDelta
+
+        nEvents = int(eventFifoFillLevel)//4  # only read out whole events ( 4 x 32-bit words )
+        wordsToRead =  nEvents*4
+
+        print "FIFO FILL LEVEL= " , eventFifoFillLevel
+
+        print "# EVENTS IN FIFO = ",nEvents
+        print "WORDS TO READ FROM FIFO  = ",wordsToRead
+
+        # get timestamp data and fifo fill in same outgoing packet.
+        timestampData = hw.getNode("eventBuffer.EventFifoData").readBlock(wordsToRead)
+
+        hw.dispatch()
+
+    #    print timestampData
+        for bufPos in range (0, nEvents ):
+            lowWord  = timestampData[bufPos*4 + 1] + 0x100000000* timestampData[ (bufPos*4) + 0] # timestamp
+
+            highWord = timestampData[bufPos*4 + 3] + 0x100000000* timestampData[ (bufPos*4) + 2] # evt number
+            evtNumber = timestampData[bufPos*4 + 3]
+
+            if evtNumber != ( oldEvtNumber + 1 ):
+                print "***WARNING *** Non sqeuential event numbers *** , evt,oldEvt = ",  evtNumber , oldEvtNumber
+
+            oldEvtNumber = evtNumber
+
+            timeStamp = lowWord & 0xFFFFFFFFFFFF
+
+            evtType = timestampData[ (bufPos*4) + 0] >> 28
+
+            trigsFired = (timestampData[ (bufPos*4) + 0] >> 16) & 0xFFF
+
+            if (options.printTimestamps == "True" ):
+                print "bufferPos, highWord , lowWord , event-number , timestamp , evtType = %x %016x %016x %08x %012x %01x %03x" % ( bufPos , highWord , lowWord, evtNumber , timeStamp , evtType , trigsFired)
+
+            # Fill root branch - see example in http://wlav.web.cern.ch/wlav/pyroot/tpytree.html : write raw data and decoded data for now.
+            tree.Fill()
+
+    time.sleep( loopWait)
+
+# Fixme - at the moment infinite loop.
+preVetotriggerCount = board.read("PreVetoTriggersR")
+postVetotriggerCount = board.read("PostVetoTriggersR")
+print "EXIT POLLING LOOP"
+print "\nTRIGGER COUNT AT THE END OF RUN [pre, post]:" , preVetotriggerCount , postVetotriggerCount
+
+termios.tcsetattr(sys.stdin, termios.TCSADRAIN, oldTermSettings)
+f.Write()
+f.Close()
diff --git a/legacy/TLU_v1e/scripts/test.py b/legacy/TLU_v1e/scripts/test.py
new file mode 100644
index 00000000..ac682018
--- /dev/null
+++ b/legacy/TLU_v1e/scripts/test.py
@@ -0,0 +1,34 @@
+import matplotlib.pyplot as plt
+import numpy as np
+import matplotlib.mlab as mlab
+
+print "TEST.py"
+myFile= "./500ns_23ns.txt"
+
+with open(myFile) as f:
+    nsDeltas = map(float, f)
+
+P= 1000000000 #display in ns
+nsDeltas = [x * P for x in nsDeltas]
+centerRange= 25
+windowsns= 5
+minRange= centerRange-windowsns
+maxRange= centerRange+windowsns
+plt.hist(nsDeltas, 60, range=[minRange, maxRange], facecolor='blue', align='mid', alpha= 0.75)
+#plt.hist(nsDeltas, 100, normed=True, facecolor='blue', align='mid', alpha=0.75)
+#plt.xlim((min(nsDeltas), max(nsDeltas)))
+plt.xlabel('Time (ns)')
+plt.ylabel('Entries')
+plt.title('Histogram DeltaTime')
+plt.grid(True)
+
+#Superimpose Gauss
+mean = np.mean(nsDeltas)
+variance = np.var(nsDeltas)
+sigma = np.sqrt(variance)
+x = np.linspace(min(nsDeltas), max(nsDeltas), 100)
+plt.plot(x, mlab.normpdf(x, mean, sigma))
+print (mean, sigma)
+
+#Display plot
+plt.show()
diff --git a/legacy/TLU_v1e/scripts/testTLU_script.py b/legacy/TLU_v1e/scripts/testTLU_script.py
new file mode 100644
index 00000000..9d8b334b
--- /dev/null
+++ b/legacy/TLU_v1e/scripts/testTLU_script.py
@@ -0,0 +1,79 @@
+# miniTLU test script
+
+from FmcTluI2c import *
+import uhal
+import sys
+import time
+from I2CuHal import I2CCore
+from miniTLU import MiniTLU
+from datetime import datetime
+
+if __name__ == "__main__":
+    print "\tTEST TLU SCRIPT"
+    miniTLU= MiniTLU("minitlu", "file://./connection.xml")
+    #(self, target, wclk, i2cclk, name="i2c", delay=None)
+    TLU_I2C= I2CCore(miniTLU.hw, 10, 5, "i2c_master", None)
+    TLU_I2C.state()
+
+
+    #READ CONTENT OF EEPROM ON 24AA02E48 (0xFA - 0XFF)
+    mystop= 1
+    time.sleep(0.1)
+    myaddr= [0xfa]
+    TLU_I2C.write( 0x50, myaddr, mystop)
+    res=TLU_I2C.read( 0x50, 6)
+    print "Checkin EEPROM:"
+    result="\t"
+    for iaddr in res:
+        result+="%02x "%(iaddr)
+    print result
+
+    #SCAN I2C ADDRESSES
+    #WRITE PROM
+    #WRITE DAC
+
+
+    #Convert required threshold voltage to DAC code
+    #def convert_voltage_to_dac(self, desiredVoltage, Vref=1.300):
+    print("Writing DAC setting:")
+    Vref= 1.300
+    desiredVoltage= 3.3
+    channel= 0
+    i2cSlaveAddrDac = 0x1F
+    vrefOn= 0
+    Vdaq = ( desiredVoltage + Vref ) / 2
+    dacCode = 0xFFFF * Vdaq / Vref
+    dacCode= 0x391d
+    print "\tVreq:", desiredVoltage
+    print "\tDAC code:"  , dacCode
+    print "\tCH:", channel
+    print "\tIntRef:", vrefOn
+
+    #Set DAC value
+    #def set_dac(self,channel,value , vrefOn = 0 , i2cSlaveAddrDac = 0x1F):
+    if channel<0 or channel>7:
+        print "set_dac ERROR: channel",channel,"not in range 0-7 (bit mask)"
+        ##return -1
+    if dacCode<0 or dacCode>0xFFFF:
+        print "set_dac ERROR: value",dacCode ,"not in range 0-0xFFFF"
+        ##return -1
+    # AD5665R chip with A0,A1 tied to ground
+    #i2cSlaveAddrDac = 0x1F   # seven bit address, binary 00011111
+
+    # print "I2C address of DAC = " , hex(i2cSlaveAddrDac)
+    # dac = RawI2cAccess(self.i2cBusProps, i2cSlaveAddrDac)
+    # # if we want to enable internal voltage reference:
+
+    if vrefOn:
+        # enter vref-on mode:
+        print "\tTurning internal reference ON"
+        #dac.write([0x38,0x00,0x01])
+        TLU_I2C.write( i2cSlaveAddrDac, [0x38,0x00,0x01], 0)
+    else:
+        print "\tTurning internal reference OFF"
+        #dac.write([0x38,0x00,0x00])
+        TLU_I2C.write( i2cSlaveAddrDac, [0x38,0x00,0x00], 0)
+    # Now set the actual value
+    sequence=[( 0x18 + ( channel &0x7 ) ) , int(dacCode/256)&0xff , int(dacCode)&0xff]
+    print "\tWriting byte sequence:", sequence
+    TLU_I2C.write( i2cSlaveAddrDac, sequence, 0)
diff --git a/legacy/TLU_v1e/scripts/test_T0.py b/legacy/TLU_v1e/scripts/test_T0.py
new file mode 100644
index 00000000..cf81b33d
--- /dev/null
+++ b/legacy/TLU_v1e/scripts/test_T0.py
@@ -0,0 +1,92 @@
+#
+# Script to exercise AIDA mini-TLU
+#
+# David Cussans, December 2012
+# 
+# Nasty hack - use both PyChips and uHAL ( for block read ... )
+
+from PyChipsUser import *
+from FmcTluI2c import *
+
+import sys
+import time
+
+
+# Point to TLU in Pychips
+bAddrTab = AddressTable("./aida_mini_tlu_addr_map.txt")
+# Assume DIP-switch controlled address. Switches at 2 
+board = ChipsBusUdp(bAddrTab,"192.168.200.32",50001)
+
+# Check the bus for I2C devices
+boardi2c = FmcTluI2c(board)
+
+firmwareID=board.read("FirmwareId")
+
+print "Firmware (from PyChips) = " , hex(firmwareID)
+
+print "Scanning I2C bus:"
+scanResults = boardi2c.i2c_scan()
+print scanResults
+
+boardId = boardi2c.get_serial_number()
+print "FMC-TLU serial number = " , boardId
+
+resetClocks = 0
+ 
+
+
+clockStatus = board.read("LogicClocksCSR")
+print "Clock status = " , hex(clockStatus)
+
+if resetClocks:
+    print "Resetting clocks"
+    board.write("LogicRst", 1 )
+
+    clockStatus = board.read("LogicClocksCSR")
+    print "Clock status after reset = " , hex(clockStatus)
+
+
+board.write("InternalTriggerIntervalW",0)
+
+print "Enabling DUT 0 and 1"
+board.write("DUTMaskW",3)
+DUTMask = board.read("DUTMaskR")
+print "DUTMaskR = " , DUTMask
+
+print "Ignore veto on DUT 0 and 1"
+board.write("IgnoreDUTBusyW",3)
+IgnoreDUTBusy = board.read("IgnoreDUTBusyR")
+print "IgnoreDUTBusyR = " , IgnoreDUTBusy
+
+print "Turning off software trigger veto"
+board.write("TriggerVetoW",0)
+
+print "Reseting FIFO"
+board.write("EventFifoCSR",0x2)
+eventFifoFillLevel = board.read("EventFifoFillLevel")
+print "FIFO fill level after resetting FIFO = " , eventFifoFillLevel
+
+print "Enabling data recording"
+board.write("Enable_Record_Data",1)
+
+#print "Enabling handshake: No-handshake"
+#board.write("HandshakeTypeW",1)
+
+#TriggerInterval = 400000
+TriggerInterval = 0
+print "Setting internal trigger interval to " , TriggerInterval
+board.write("InternalTriggerIntervalW",TriggerInterval)  #0->Internal pulse generator disabled. Any other value will generate pulses with a frequency of n*6.25ns
+trigInterval = board.read("InternalTriggerIntervalR")
+print "Trigger interval read back as ", trigInterval
+
+print "Setting TPix_maskexternal to ignore external shutter and T0"
+board.write("TPix_maskexternal",0x0003)
+
+numLoops = 500000
+oldEvtNumber = 0
+
+for iLoop in range(0,numLoops):
+
+    board.write("TPix_T0", 0x0001)
+
+#   time.sleep( 1.0)
diff --git a/legacy/miniTLU/.ftpconfig b/legacy/miniTLU/.ftpconfig
new file mode 100644
index 00000000..100a0405
--- /dev/null
+++ b/legacy/miniTLU/.ftpconfig
@@ -0,0 +1,20 @@
+{
+    "protocol": "sftp",
+    "host": "fortis.phy.bris.ac.uk",
+    "port": 22,
+    "user": "phpgb",
+    "pass": "",
+    "promptForPass": true,
+    "remote": "/users/phpgb/worklib/fmc-mtlu/firmware/scripts/",
+    "local": "",
+    "agent": "",
+    "privatekey": "",
+    "passphrase": "",
+    "hosthash": "",
+    "ignorehost": true,
+    "connTimeout": 10000,
+    "keepalive": 10000,
+    "keyboardInteractive": false,
+    "watch": [],
+    "watchTimeout": 500
+}
diff --git a/legacy/miniTLU/FmcTluI2c.py b/legacy/miniTLU/FmcTluI2c.py
new file mode 100644
index 00000000..04bf5985
--- /dev/null
+++ b/legacy/miniTLU/FmcTluI2c.py
@@ -0,0 +1,132 @@
+import time
+#from PyChipsUser import *
+from I2cBusProperties import *
+from RawI2cAccess import *
+
+
+class FmcTluI2c:
+
+
+    ############################
+    ### configure i2c connection
+    ############################
+    def __init__(self,board):
+        self.board = board
+        i2cClockPrescale = 0x30
+        self.i2cBusProps = I2cBusProperties(self.board, i2cClockPrescale)
+        return
+
+
+    ##########################
+    ### scan all i2c addresses
+    ##########################
+    def i2c_scan(self):
+        list=[]
+        for islave in range(128):
+            i2cscan = RawI2cAccess(self.i2cBusProps, islave)
+            try:
+                i2cscan.write([0x00])
+                device="slave address "+hex(islave)+" "
+                if islave==0x1f:
+                    device+="(DAC)"
+                elif islave==0x50:
+                    device+="(serial number PROM)"
+                elif islave>=0x54 and islave<=0x57:
+                    device+="(sp601 onboard EEPROM)"
+                else:
+                    device+="(???)"
+                    pass
+                list.append(device)
+                pass
+            except:
+                pass
+            pass
+        return list
+
+
+    ###################
+    ### write to EEPROM
+    ###################
+    def eeprom_write(self,address,value):
+        if address<0 or address>127:
+            print "eeprom_write ERROR: address",address,"not in range 0-127"
+            return
+        if value<0 or value>255:
+            print "eeprom_write ERROR: value",value,"not in range 0-255"
+            return
+        i2cSlaveAddr = 0x50   # seven bit address, binary 1010000
+        prom = RawI2cAccess(self.i2cBusProps, i2cSlaveAddr)
+        prom.write([address,value])
+        time.sleep(0.01) # write cycle time is 5ms. let's wait 10 to make sure.
+        return
+
+
+    ####################
+    ### read from EEPROM
+    ####################
+    def eeprom_read(self,address):
+        if address<0 or address>255:
+            print "eeprom_write ERROR: address",address,"not in range 0-127"
+            return
+        i2cSlaveAddr = 0x50   # seven bit address, binary 1010000
+        prom = RawI2cAccess(self.i2cBusProps, i2cSlaveAddr)
+        prom.write([address])
+        return prom.read(1)[0]
+
+
+    ######################
+    ### read serial number
+    ######################
+    def get_serial_number(self):
+        result=""
+        for iaddr in [0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff]:
+            result+="%02x "%(self.eeprom_read(iaddr))
+            pass
+        return result
+
+
+    #################
+    ### set DAC value
+    #################
+    def set_dac(self,channel,value , vrefOn = 0 , i2cSlaveAddrDac = 0x1F):
+        if channel<0 or channel>7:
+            print "set_dac ERROR: channel",channel,"not in range 0-7 (bit mask)"
+            return -1
+        if value<0 or value>0xFFFF:
+            print "set_dac ERROR: value",value,"not in range 0-0xFFFF"
+            return -1
+        # AD5665R chip with A0,A1 tied to ground
+        #i2cSlaveAddrDac = 0x1F   # seven bit address, binary 00011111
+        print "I2C address of DAC = " , hex(i2cSlaveAddrDac)
+        dac = RawI2cAccess(self.i2cBusProps, i2cSlaveAddrDac)
+        # if we want to enable internal voltage reference:
+        if vrefOn:
+            # enter vref-on mode:
+	    print "Turning internal reference ON"
+            dac.write([0x38,0x00,0x01])
+        else:
+	    print "Turning internal reference OFF"
+            dac.write([0x38,0x00,0x00])
+        # now set the actual value
+        sequence=[( 0x18 + ( channel &0x7 ) ) , (value/256)&0xff , value&0xff]
+        print sequence
+        dac.write(sequence)
+
+
+
+    ##################################################
+    ### convert required threshold voltage to DAC code
+    ##################################################
+    def convert_voltage_to_dac(self, desiredVoltage, Vref=1.300):
+        Vdaq = ( desiredVoltage + Vref ) / 2
+        dacCode = 0xFFFF * Vdaq / Vref
+        return int(dacCode)
+
+
+    ##################################################
+    ### calculate the DAC code required and set DAC
+    ##################################################
+    def set_threshold_voltage(self, channel , voltage ):
+        dacCode = self.convert_voltage_to_dac(voltage)
+        print " requested voltage, calculated DAC code = " , voltage , dacCode
+        self.set_dac(channel , dacCode)
diff --git a/legacy/miniTLU/I2CuHal.py b/legacy/miniTLU/I2CuHal.py
new file mode 100644
index 00000000..694c9efc
--- /dev/null
+++ b/legacy/miniTLU/I2CuHal.py
@@ -0,0 +1,1000 @@
+"""
+solidfpa.py provides functionality to control the front end boards currently
+being prototyped.
+
+For the ADC:
+    One or more LTM9007 ADCs can be controlled via the IPbus SPI block.
+    Each chip is really two four channel ADCs, with each controlled with a
+    separate chip select line. Bank A is channels 1, 4, 5, 8.
+    Bank B is 2, 3, 6, 7.
+
+    Control is via a simple SPI interface where 16 bits are transferred.
+    b0 is read/!write
+    b7:1 are the register address
+    b15:b8 are the data sent to/from the ADC
+
+    If the ADC.cehckwrite flag is True then all write commands will immediately
+    be confirmed by a read command to the same address.
+"""
+
+import time
+
+import uhal
+
+verbose = True
+"""
+class SoLidFPGA:
+
+    def __init__(self, board, nadc=4, verbose=False, minversion=None):
+        cm = uhal.ConnectionManager("file://solidfpga.xml")
+        self.target = cm.getDevice(board)
+        #self.config()
+        self.offsets = TimingOffsets(self.target)
+        self.trigger = Trigger(self.target)
+        self.databuffer = OutputBuffer(self.target)
+        self.spi = SPICore(self.target, 31.25e6, 100e3)
+        self.clock_i2c = I2CCore(self.target, 31.25e6, 40e3, "io.clock_i2c")
+        self.analog_i2c = I2CCore(self.target, 31.25e6, 40e3, "io.analog_i2c")
+        self.clockchip = Si5326(self.clock_i2c)
+        self.adcs = []
+        for i in range(1):
+            self.adcs.append(ADCLTM9007(self.spi, 2 * i, 2 * i + 1))
+        # For board Wim sent to Bristol for testing the MCP4725 address seems
+        # to be 0b1100001, whereas for the first test board the address was
+        # 0b1100111.
+        self.gdac = DACMCP4725(self.analog_i2c, 0b1100001, 4.45)
+        self.trimdacs = [
+                DACMCP4728(self.analog_i2c, 0b1100011, 4.45),
+                DACMCP4728(self.analog_i2c, 0b1100101, 4.45)
+        ]
+        self.temp = TempMCP9808(self.analog_i2c)
+        self.firmwareversion = None
+        self.minversion = minversion
+        self.config(7, 16)
+
+    def config(self, slip, tap):
+        # check ID
+        boardid = self.target.getNode("ctrl_reg.id").read()
+        stat = self.target.getNode("ctrl_reg.stat").read()
+        self.target.dispatch()
+        if verbose:
+            print "ID = 0x%x, stat = 0x%x" % (boardid, stat)
+        self.id = (boardid & 0xffff0000) >> 16
+        self.firmwareversion = boardid & 0x0000ffff
+        if self.minversion is not None:
+            msg = "Old version of firmware (v%d) running, require >= v%d." % (
+                    self.firmwareversion, self.minversion)
+            assert self.firmwareversion >= self.minversion, msg
+        self.spi.config()
+        self.clock_i2c.config()
+        self.analog_i2c.config()
+        # Check for 40 MHz clock lock
+        lock = self.target.getNode("ctrl_reg.stat.mmcm_locked").read()
+        self.target.dispatch()
+        #assert lock == 1, "No 40 MHz clock clock, code not yet moved to frontend.py"
+        if lock != 1:
+            # Config clock chip
+            self.clockchip.config("siclock/si5326.txt")
+            time.sleep(1.0)
+        lock = self.target.getNode("ctrl_reg.stat.mmcm_locked").read()
+        self.target.dispatch()
+        assert lock == 1, "No 40 MHz clock clock, Si53266 configuration must have failed."
+        # Reset clock
+        timing_rst = self.target.getNode("timing.csr.ctrl.rst")
+        timing_rst.write(0x1)
+        self.target.dispatch()
+        timing_rst.write(0x0)
+        self.target.dispatch()
+        lock = False
+        while not lock:
+            lock = self.target.getNode("ctrl_reg.stat.mmcm_locked").read()
+            self.target.dispatch()
+        clkcount = self.target.getNode("io.freq_ctr.freq.count").read()
+        self.target.dispatch()
+        freq = int(clkcount) / 8388.608 # not sure why, from Lukas
+        if verbose:
+            print "Frequency = %g MHz" % freq
+        assert freq > 39 and freq < 41
+        # Configure trigger block
+        self.trigger.config()
+        # Set timing offset on inputs from ADC
+        self.offsets.setoffset(slip, tap)
+        for adc in self.adcs:
+            adc.config()
+        print "Analog board temperature = %g C." % self.temp.temp()
+
+    def reset(self, slip=7, tap=16):
+        if verbose:
+            print "Resetting board."
+        # Soft reset
+        soft_rst = self.target.getNode("ctrl_reg.ctrl.soft_rst")
+        soft_rst.write(1)
+        soft_rst.write(0)
+        self.target.dispatch()
+        time.sleep(1.0)
+        if verbose:
+            print "Reset complete."
+        self.config(slip, tap)
+
+    def readvoltages(self):
+        bias = self.gdac.readbias()
+        print "Global bias = %g V" %  bias
+        trims = "Channel trims:\n"
+        ichan = 0
+        for dac in self.trimdacs:
+            voltages = dac.readvoltages()
+            for v in voltages:
+                trims += "    Chan %d, v = %g V\n" % (ichan, v)
+                ichan += 1
+        print trims
+
+    def bias(self, bias):
+        self.gdac.setbias(bias)
+
+    def trim(self, trim):
+        for i in range(4):
+            for trimdac in self.trimdacs:
+                trimdac.setvoltage(i, trim)
+
+    def trims(self, trims):
+        for chan in trims:
+            trim = trims[chan]
+            ndac = chan / 4
+            nchan = chan % 4
+            self.trimdacs[ndac].setvoltage(nchan, trim)
+
+# IPbus blocks
+class TimingOffsets:
+    #Timing offsets for the ADC data deserialisation.
+
+    def __init__(self, target):
+        self.target = target
+
+    def setoffset(self, slip=7, tap=16):
+        if verbose:
+            print "Setting timing offset with channel slip = %d and %d taps." % (slip, tap)
+        chan_slip = self.target.getNode("timing.csr.ctrl.chan_slip")
+        for i in range(slip):
+            chan_slip.write(1)
+            self.target.dispatch()
+        chan_slip.write(0)
+        self.target.dispatch()
+        chan_inc = self.target.getNode("timing.csr.ctrl.chan_inc")
+        for i in range(tap):
+            chan_inc.write(1)
+            self.target.dispatch()
+        chan_inc.write(0)
+        self.target.dispatch()
+
+class Trigger:
+
+    def __init__(self, target, nsamples=0x800):
+        self.target = target
+        self.nsamples = nsamples
+        self.capture = target.getNode("timing.csr.ctrl.chan_cap")
+        self.chanselect = target.getNode("ctrl_reg.ctrl.chan")
+        self.fifo = target.getNode("chan.fifo")
+
+    def config(self):
+        # Set up channels
+        for i in range(8):
+            self.target.getNode("ctrl_reg.ctrl.chan").write(i)
+            self.target.getNode("chan.csr.ctrl.en_sync").write(1)
+        self.target.dispatch()
+
+    def trigger(self):
+        data = []
+        self.capture.write(1)
+        self.capture.write(0)
+        self.target.dispatch()
+        for i in range(8):
+            self.chanselect.write(i)
+            wf = self.fifo.readBlock(self.nsamples)
+            self.target.dispatch()
+            data.append(wf)
+        return data
+
+class OutputBuffer:
+    #Output data block.
+
+    def __init__(self, target):
+        self.target = target
+"""
+
+
+################################################################################
+# /*
+#        I2C CORE
+# */
+################################################################################
+
+
+
+"""
+I2C core XML:
+
+<node description="I2C master controller" fwinfo="endpoint;width=3">
+    <node id="ps_lo" address="0x0" description="Prescale low byte"/>
+    <node id="ps_hi" address="0x1" description="Prescale low byte"/>
+    <node id="ctrl" address="0x2" description="Control"/>
+    <node id="data" address="0x3" description="Data"/>
+    <node id="cmd_stat" address="0x4" description="Command / status"/>
+</node>
+
+"""
+class I2CCore:
+    """I2C communication block."""
+
+    # Define bits in cmd_stat register
+    startcmd = 0x1 << 7
+    stopcmd = 0x1 << 6
+    readcmd = 0x1 << 5
+    writecmd = 0x1 << 4
+    ack = 0x1 << 3
+    intack = 0x1
+
+    recvdack = 0x1 << 7
+    busy = 0x1 << 6
+    arblost = 0x1 << 5
+    inprogress = 0x1 << 1
+    interrupt = 0x1
+
+    def __init__(self, target, wclk, i2cclk, name="i2c", delay=None):
+        self.target = target
+        self.name = name
+        self.delay = delay
+        self.prescale_low = self.target.getNode("%s.i2c_pre_lo" % name)
+        self.prescale_high = self.target.getNode("%s.i2c_pre_hi" % name)
+        self.ctrl = self.target.getNode("%s.i2c_ctrl" % name)
+        self.data = self.target.getNode("%s.i2c_rxtx" % name)
+        self.cmd_stat = self.target.getNode("%s.i2c_cmdstatus" % name)
+        self.wishboneclock = wclk
+        self.i2cclock = i2cclk
+        self.config()
+
+    def state(self):
+        status = {}
+        status["ps_low"] = self.prescale_low.read()
+        status["ps_hi"] = self.prescale_high.read()
+        status["ctrl"] = self.ctrl.read()
+        status["data"] = self.data.read()
+        status["cmd_stat"] = self.cmd_stat.read()
+        self.target.dispatch()
+        status["prescale"] = status["ps_hi"] << 8
+        status["prescale"] |= status["ps_low"]
+        for reg in status:
+            val = status[reg]
+            bval = bin(int(val))
+            if verbose:
+                print "reg %s = %d, 0x%x, %s" % (reg, val, val, bval)
+
+    def clearint(self):
+        self.ctrl.write(0x1)
+        self.target.dispatch()
+
+    def config(self):
+        #INITIALIZATION OF THE I2S MASTER CORE
+        #Disable core
+        self.ctrl.write(0x0 << 7)
+        self.target.dispatch()
+        #Write pre-scale register
+        #prescale = int(self.wishboneclock / (5.0 * self.i2cclock)) - 1
+        prescale = 0x30 #FOR NOW HARDWIRED, TO BE MODIFIED
+        self.prescale_low.write(prescale & 0xff)
+        self.prescale_high.write((prescale & 0xff00) >> 8)
+        #Enable core
+        self.ctrl.write(0x1 << 7)
+        self.target.dispatch()
+
+    def checkack(self):
+        inprogress = True
+        ack = False
+        while inprogress:
+            cmd_stat = self.cmd_stat.read()
+            self.target.dispatch()
+            inprogress = (cmd_stat & I2CCore.inprogress) > 0
+            ack = (cmd_stat & I2CCore.recvdack) == 0
+        return ack
+
+    def delayorcheckack(self):
+        ack = True
+        if self.delay is None:
+            ack = self.checkack()
+        else:
+            time.sleep(self.delay)
+            ack = self.checkack()#Remove this?
+        return ack
+
+################################################################################
+# /*
+#        I2C WRITE
+# */
+################################################################################
+
+
+
+    def write(self, addr, data, stop=True):
+        """Write data to the device with the given address."""
+        # Start transfer with 7 bit address and write bit (0)
+        nwritten = -1
+        addr &= 0x7f
+        addr = addr << 1
+        startcmd = 0x1 << 7
+        stopcmd = 0x1 << 6
+        writecmd = 0x1 << 4
+        #Set transmit register (write operation, LSB=0)
+        self.data.write(addr)
+        #Set Command Register to 0x90 (write, start)
+        self.cmd_stat.write(I2CCore.startcmd | I2CCore.writecmd)
+        self.target.dispatch()
+        ack = self.delayorcheckack()
+        if not ack:
+            self.cmd_stat.write(I2CCore.stopcmd)
+            self.target.dispatch()
+            return nwritten
+        nwritten += 1
+        for val in data:
+            val &= 0xff
+            #Write slave memory address
+            self.data.write(val)
+            #Set Command Register to 0x10 (write)
+            self.cmd_stat.write(I2CCore.writecmd)
+            self.target.dispatch()
+            ack = self.delayorcheckack()
+            if not ack:
+                self.cmd_stat.write(I2CCore.stopcmd)
+                self.target.dispatch()
+                return nwritten
+            nwritten += 1
+        if stop:
+            self.cmd_stat.write(I2CCore.stopcmd)
+            self.target.dispatch()
+        return nwritten
+
+################################################################################
+# /*
+#        I2C READ
+# */
+################################################################################
+
+
+
+    def read(self, addr, n):
+        """Read n bytes of data from the device with the given address."""
+        # Start transfer with 7 bit address and read bit (1)
+        data = []
+        addr &= 0x7f
+        addr = addr << 1
+        addr |= 0x1 # read bit
+        self.data.write(addr)
+        self.cmd_stat.write(I2CCore.startcmd | I2CCore.writecmd)
+        self.target.dispatch()
+        ack = self.delayorcheckack()
+        if not ack:
+            self.cmd_stat.write(I2CCore.stopcmd)
+            self.target.dispatch()
+            return data
+        for i in range(n):
+            self.cmd_stat.write(I2CCore.readcmd)
+            self.target.dispatch()
+            ack = self.delayorcheckack()
+            val = self.data.read()
+            self.target.dispatch()
+            data.append(val & 0xff)
+        self.cmd_stat.write(I2CCore.stopcmd)
+        self.target.dispatch()
+        return data
+
+################################################################################
+# /*
+#        I2C WRITE-READ
+# */
+################################################################################
+
+
+
+    def writeread(self, addr, data, n):
+        """Write data to device, then read n bytes back from it."""
+        nwritten = self.write(addr, data, stop=False)
+        readdata = []
+        if nwritten == len(data):
+            readdata = self.read(addr, n)
+        return nwritten, readdata
+
+"""
+SPI core XML:
+
+<node description="SPI master controller" fwinfo="endpoint;width=3">
+    <node id="d0" address="0x0" description="Data reg 0"/>
+    <node id="d1" address="0x1" description="Data reg 1"/>
+    <node id="d2" address="0x2" description="Data reg 2"/>
+    <node id="d3" address="0x3" description="Data reg 3"/>
+    <node id="ctrl" address="0x4" description="Control reg"/>
+    <node id="divider" address="0x5" description="Clock divider reg"/>
+    <node id="ss" address="0x6" description="Slave select reg"/>
+</node>
+"""
+class SPICore:
+
+    go_busy = 0x1 << 8
+    rising = 1
+    falling = 0
+
+
+    def __init__(self, target, wclk, spiclk, basename="io.spi"):
+        self.target = target
+        # Only a single data register is required since all transfers are
+        # 16 bit long
+        self.data = target.getNode("%s.d0" % basename)
+        self.control = target.getNode("%s.ctrl" % basename)
+        self.control_val = 0b0
+        self.divider = target.getNode("%s.divider" % basename)
+        self.slaveselect = target.getNode("%s.ss" % basename)
+        self.divider_val = int(wclk / spiclk / 2.0 - 1.0)
+        self.divider_val = 0x7f
+        self.configured = False
+
+    def config(self):
+        "Configure SPI interace for communicating with ADCs."
+        self.divider_val = int(self.divider_val) % 0xffff
+        if verbose:
+            print "Configuring SPI core, divider = 0x%x" % self.divider_val
+        self.divider.write(self.divider_val)
+        self.target.dispatch()
+        self.control_val = 0x0
+        self.control_val |= 0x0 << 13 # Automatic slave select
+        self.control_val |= 0x0 << 12 # No interrupt
+        self.control_val |= 0x0 << 11 # MSB first
+        # ADC samples data on rising edge of SCK
+        self.control_val |= 0x1 << 10 # change ouput on falling edge of SCK
+        # ADC changes output shortly after falling edge of SCK
+        self.control_val |= 0x0 << 9 # read input on rising edge
+        self.control_val |= 0x10 # 16 bit transfers
+        if verbose:
+            print "SPI control val = 0x%x = %s" % (self.control_val, bin(self.control_val))
+        self.configured = True
+
+    def transmit(self, chip, value):
+        if not self.configured:
+            self.config()
+        assert chip >= 0 and chip < 8
+        value &= 0xffff
+        self.data.write(value)
+        checkdata = self.data.read()
+        self.target.dispatch()
+        assert checkdata == value
+        self.control.write(self.control_val)
+        self.slaveselect.write(0xff ^ (0x1 << chip))
+        self.target.dispatch()
+        self.control.write(self.control_val | SPICore.go_busy)
+        self.target.dispatch()
+        busy = True
+        while busy:
+            status = self.control.read()
+            self.target.dispatch()
+            busy = status & SPICore.go_busy > 0
+        self.slaveselect.write(0xff)
+        data = self.data.read()
+        ss = self.slaveselect.read()
+        status = self.control.read()
+        self.target.dispatch()
+        #print "Received data: 0x%x, status = 0x%x, ss = 0x%x" % (data, status, ss)
+        return data
+"""
+        print "Data to send: 0x%x = %s" % (checkdata, bin(int(checkdata)))
+        ss = 0x1 << chip
+        nss = ss ^ 0xffff
+        print "chip = %d, nSS = 0x%x = %s" % (chip, nss, bin(nss))
+        ctrl = self.control.read()
+        self.target.dispatch()
+        busy = (ctrl & SPICore.go_busy) > 0
+        while busy:
+            ctrl = self.control.read()
+            self.target.dispatch()
+            busy = (ctrl & SPICore.go_busy) > 0
+        self.slaveselect.write(nss)
+        self.target.dispatch()
+        self.control.write(self.control_val)
+        self.target.dispatch()
+        self.control.write(self.control_val | SPICore.go_busy)
+        self.target.dispatch()
+        time.sleep(0.1)
+        ncheck = 0
+        finished = False
+        while not finished:
+            ctrl = self.control.read()
+            self.target.dispatch()
+            # Check if transfer is complete by reading the GO_BSY bit of CTRL
+            finished = (ctrl & SPICore.go_busy) == 0
+            ncheck += 1
+        #    assert ncheck < 10, "ctrl = 0x%x, %s finished = %s" % (ctrl, bin(int(ctrl)), str(finished))
+        #    time.sleep(0.1)
+        print "%d checks before busy not asserted." % ncheck
+        self.slaveselect.write(0xffff)
+        self.target.dispatch()
+        ss = self.slaveselect.read()
+        data = self.data.read()
+        self.target.dispatch()
+        print "After transmit, ss = 0x%x" % ss
+        print "Received 0x%x = %s" % (data, bin(int(data)))
+        time.sleep(0.1)
+        return data
+"""
+
+# External chips
+
+class Si5326:
+
+    def __init__(self, i2c, slaveaddr=0b1101000):
+        self.i2c = i2c
+        self.slaveaddr = slaveaddr
+
+    def config(self, fn):
+        if verbose:
+            print "Loading Si5326 configuration from %s" % fn
+        inp = open(fn, "r")
+        inmap = False
+        regvals = {}
+        for line in inp:
+            if inmap:
+                if "END_REGISTER_MAP" in line:
+                    inmap = False
+                    continue
+                line = line.split(",")
+                reg = int(line[0])
+                val = line[1].strip().replace("h", "")
+                val = int(val, 16)
+                regvals[reg] = val
+            if "#REGISTER_MAP" in line:
+                inmap = True
+        inp.close()
+        if verbose:
+            print "Register map: %s" % str(regvals)
+        for reg in regvals:
+            n = self.i2c.write(self.slaveaddr, [reg, regvals[reg]])
+            assert n == 2, "Only wrote %d of 2 bytes over I2C." % n
+        if verbose:
+            print "Clock configured"
+
+lvdscurrents = {
+        3.5: 0b000,
+        4.0: 0b001,
+        4.5: 0b010,
+        3.0: 0b100,
+        2.5: 0b101,
+        2.1: 0b110,
+        1.75: 0b111
+}
+
+napchannels = {
+        1: 0b0001,
+        2: 0b0001,
+        3: 0b0010,
+        4: 0b0010,
+        5: 0b0100,
+        6: 0b0100,
+        7: 0b1000,
+        8: 0b1000
+}
+
+class ADCLTM9007:
+
+    def __init__(self, spicore, csA, csB, checkwrite=False):
+        self.checkwrite = checkwrite
+        self.spicore = spicore
+        self.csA = csA
+        self.csB = csB
+
+    def config(self):
+        self.reset()
+        self.testpattern(False)
+        self.setoutputmode(3.5, False, True, 1, 14)
+        self.setformat(False, False)
+
+    def writereg(self, bank, addr, data):
+        value = 0x0
+        value |= 0x0 << 15 # write bit
+        value |= (addr & 0x7f) << 8
+        value |= data & 0xff
+        #print "writereg sending 0x%x = %s" % (value, bin(value))
+        assert bank in ["A", "B"]
+        if bank == "A":
+            reply = self.spicore.transmit(self.csA, value)
+        else:
+            reply = self.spicore.transmit(self.csB, value)
+        if self.checkwrite:
+            readdata = self.readreg(bank, addr)
+            msg = "Incorrect data from bank %s register 0x%x: " (bank, addr)
+            msg += " after writing 0x%x, read 0x%x.\n" % (data, readdata)
+            assert readdata == data, msg
+
+
+    def writerega(self, addr, data):
+        self.writereg("A", addr, data)
+
+    def writeregb(self, addr, data):
+        self.writereg("B", addr, data)
+
+    def readreg(self, bank, addr):
+        value = 0x0
+        value |= 0x1 << 15
+        value |= (addr & 0x7f) << 8
+        #print "readreg sending 0x%x = %s" % (value, bin(value))
+        assert bank in ["A", "B"]
+        if bank == "A":
+            reply = self.spicore.transmit(self.csA, value)
+        else:
+            reply = self.spicore.transmit(self.csB, value)
+        reply16 = 0xff & reply
+        #print "Reply = 0x%x -> 0x%x" % (reply, reply16)
+        return reply16
+
+    def readrega(self, addr):
+        return self.readreg("A", addr)
+
+    def readregb(self, addr):
+        return self.readreg("B", addr)
+
+    def reset(self, bank=None):
+        """Reset ADC bank(s)."""
+        if verbose:
+            print "Resetting ADC."
+        rstcmd  = 0x1 << 7
+        if bank == "A" or bank is None:
+            if verbose:
+                print "Reset A"
+            self.writerega(0x0, rstcmd)
+            time.sleep(0.5)
+        if bank == "B" or bank is None:
+            if verbose:
+                print "Reset B"
+            self.writeregb(0x0, rstcmd)
+            time.sleep(0.5)
+
+    def testpattern(self, on, pattern=0x0, bank=None):
+        """Set bank(s)'s test pattern and en/disable it."""
+        pattern = int(pattern) & 0x3fff
+        if verbose:
+            if on:
+                print "Setting ADC test pattern = 0x%x = %s." % (pattern, bin(pattern))
+            else:
+                print "Setting ADC test pattern off."
+        msb = 0x0
+        if on:
+            msb = 0x1 << 7
+        msb |= ((pattern & 0x3f00) >> 8)
+        lsb = pattern & 0xff
+        if verbose:
+            print "msb = 0x%x = %s, lsb = 0x%x = %s" % (msb, bin(msb), lsb, bin(lsb))
+        if bank is None or bank == "A":
+            self.writerega(0x4, lsb)
+            self.writerega(0x3, msb)
+        if bank is None or bank == "B":
+            self.writeregb(0x4, lsb)
+            self.writeregb(0x3, msb)
+
+    def gettestpattern(self):
+        valA = self.readrega(0x3) << 8
+        valA |= self.readrega(0x4)
+        print "Test pattern on bank A: 0x%x, %s" % (valA, bin(valA))
+        valB = self.readregb(0x3) << 8
+        valB |= self.readregb(0x4)
+        print "Test pattern on bank B: 0x%x, %s" % (valB, bin(valB))
+
+    def getstatus(self):
+        print "Bank A:"
+        for reg in range(5):
+            val = self.readrega(reg)
+            print "    reg%d = 0x%x = %s" % (reg, val, bin(val))
+        print "Bank B:"
+        for reg in range(5):
+            val = self.readregb(reg)
+            print "    reg%d = 0x%x = %s" % (reg, val, bin(val))
+
+    def setoutputmode(self, lvdscurrent, lvdstermination, outenable, lanes, bits, bank=None):
+        """Configure bank(s)'s output mode."""
+        if verbose:
+            print "Setting ADC output mode."
+        mode = 0x0
+        assert lanes in [1, 2] and bits in [12, 14, 16]
+        if lanes == 1:
+            if bits == 12:
+                mode |= 0b110
+            elif bits == 14:
+                mode |= 0b101
+            else: # bits = 16
+                mode |= 0b111
+        else:   # lanes = 2
+            if bits == 12:
+                mode |= 0b010
+            elif bits == 14:
+                mode |= 001
+            else: # bits = 16
+                mode |= 0b111
+        if not outenable:
+            mode |= 0b1000
+        if lvdstermination:
+            mode |= (0x1 << 4)
+        mode |= (lvdscurrents[lvdscurrent] << 5)
+        if bank is None or bank == "A":
+            self.writerega(0x2, mode)
+        if bank is None or bank == "B":
+            self.writeregb(0x2, mode)
+
+    def setformat(self, randomiser, twoscomp, stabiliser=True, bank=None):
+        """Configure bank(s)'s output format."""
+        if verbose:
+            print "Setting ADC format."
+        if bank is None or bank == "A":
+            data = self.readrega(0x1)
+            if twoscomp:
+                data |= (0x1 << 5)
+            else:
+                data &= 0xff ^ (0x1 << 5)
+            if randomiser:
+                data |= (0x1 << 6)
+            else:
+                data &= 0xff ^ (0x1 << 6)
+            if not stabiliser:
+                data |= (0x1 << 7)
+            else:
+                data &= 0xff ^ (0x1 << 7)
+            self.writerega(0x1, data)
+        if bank is None or bank == "B":
+            data = self.readregb(0x1)
+            if twoscomp:
+                data |= (0x1 << 5)
+            else:
+                data &= 0xff ^ (0x1 << 5)
+            if randomiser:
+                data |= (0x1 << 6)
+            else:
+                data &= 0xff ^ (0x1 << 6)
+            if not stabiliser:
+                data |= (0x1 << 7)
+            else:
+                data &= 0xff ^ (0x1 << 7)
+            self.writeregb(0x1, data)
+
+    def setsleep(self, sleep, bank=None):
+        """Put ADC bank(s) to sleep."""
+        if verbose:
+            print "Setting ADC sleep mode"
+        if bank is None or bank == "A":
+            data = self.readrega(0x1)
+            if sleep:
+                data |= (0x1 << 4)
+            else:
+                data &= 0xff ^ (0x1 << 4)
+            self.writerega(0x1, data)
+        if bank is None or bank == "B":
+            data = self.readregb(0x1)
+            if sleep:
+                data |= (0x1 << 4)
+            else:
+                data &= 0xff ^ (0x1 << 4)
+            self.writeregb(0x1, data)
+
+    def nap(self, channels):
+        """Provide a list of channels to put down for a nap, all others will be not napping."""
+        if verbose:
+            print "Setting ADC channel nap."
+        dataa = self.readrega(0x1)
+        dataa &= 0xf0
+        datab = self.readregb(0x1)
+        datab &= 0xf0
+        for chan in channels:
+            assert chan < 9 and chan > 0
+            if chan in [1, 4, 5, 8]:
+                dataa |= napchannels[chan]
+            else:
+                datab |= napchannels[chan]
+        self.writerega(0x1, dataa)
+        self.writeregb(0x1, datab)
+
+class MCP472XPowerMode:
+
+    on = 0b00
+    off1k = 0b01
+    off100k = 0b10
+    off500k = 0b11
+
+class DACMCP4725:
+    """Global trim DAC"""
+
+    # Write modes
+    fast = 0b00
+    writeDAC = 0b10
+    writeDACEEPROM = 0b11
+
+    def __init__(self, i2ccore, addr=0b1100111, vdd=5.0):
+        self.i2ccore = i2ccore
+        self.slaveaddr = addr & 0x7f
+        self.vdd = float(vdd)
+
+    def setbias(self, bias):
+        # DAC voltage goes through potential divider to HV chip, where it is scaled up
+        r1 = 1.0
+        r2 = 2.4
+        divider = r2 / (r1 + r2)
+        voltage = bias / 30.0 / divider
+        self.setvoltage(voltage)
+
+    def setvoltage(self, voltage, powerdown=MCP472XPowerMode.on):
+        if voltage > self.vdd:
+            print "Overriding MCP4725 voltage: %g -> %g V (max of range)" % (voltage, self.vdd)
+            voltage = self.vdd
+        value = int(voltage / float(self.vdd) * 4096)
+        #print "%g -> %d" % (voltage, value)
+        self.setvalue(value, powerdown, self.writeDACEEPROM)
+
+    def setvalue(self, value, powerdown, mode):
+        value = int(value)
+        value &= 0xfff
+        if mode == self.fast:
+            data = []
+            data.append((powerdown << 4) | ((value & 0xf00) >> 8))
+            data.append(value & 0x0ff)
+            self.i2ccore.write(self.slaveaddr, data)
+        else:
+            data = []
+            data.append((mode << 5) | (powerdown << 1))
+            data.append((value & 0xff0) >> 4)
+            data.append((value & 0x00f) << 4)
+            #print "Writing %s" % str(data)
+            self.i2ccore.write(self.slaveaddr, data)
+
+    def status(self):
+        data = self.i2ccore.read(self.slaveaddr, 5)
+        assert len(data) == 5, "Only recieved %d of 5 expected bytes from MCP4725." % len(data)
+        dx = "0x"
+        db = ""
+        for val in data:
+            dx += "%02x" % val
+            db += "%s " % bin(val)
+        #print dx, db
+        ready = (data[0] & (0x1 << 7)) > 0
+        por = (data[0] & (0x1 << 6)) > 0 # power on reset?
+        powerdown = (data[0] & 0b110) >> 1
+        dacvalue = data[1] << 4
+        dacvalue |= (data[2] & 0xf0) >> 4
+        voltage = self.vdd * dacvalue / 2**12
+        #print dacvalue, voltage
+        return dacvalue, voltage, ready, por, powerdown
+
+    def readvoltage(self):
+        vals = self.status()
+        return vals[1]
+
+    def readbias(self):
+        v = self.readvoltage()
+        r1 = 1.0
+        r2 = 2.4
+        divider = r2 / (r1 + r2)
+        bias = v * 30.0 * divider
+        return bias
+
+# class MCP4728ChanStatus:
+#
+#     def __init__(self, data):
+#         assert len(data) == 3
+#         s = "0x"
+#         for val in data:
+#             s += "%02x" % val
+#         #print data, s
+#         self.ready = (data[0] & (0x1 << 7)) > 0
+#         self.por = (data[0] & (0x1 << 6)) > 0
+#         self.chan = (data[0] & (0b11 << 4)) >> 4
+#         self.addr = data[0] & 0x0f
+#         self.vref = (data[1] & (0b1 << 7)) > 0
+#         self.powerdown = (data[1] & (0b11 << 5)) >> 5
+#         self.gain = (data[1] & (0b1 << 4)) > 0
+#         self.value = (data[1] & 0x0f) << 8
+#         self.value |= data[2]
+#
+#     def __repr__(self):
+#         return "chan %d: vref = %s, powerdown = %d, value = %d" % (self.chan, str(self.vref), self.powerdown, self.value)
+
+# class MCP4728Channel:
+#
+#     def __init__(self, data):
+#         assert len(data) == 6
+#         self.output = MCP4728ChanStatus(data[:3])
+#         self.EEPROM = MCP4728ChanStatus(data[3:])
+#         self.chan = self.EEPROM.chan
+#         #print self.output
+
+# class DACMCP4728:
+#     """Channel trim DAC"""
+#
+#     # Commands
+#     writeDACEEPROM = 0b010
+#
+#     # write functions
+#     multiwrite = 0b00
+#     sequentialwrite = 0b10
+#     singlewrite = 0b11
+#
+#     # stuff
+#     vref = 0b0 << 7 # Uses external reference, ie Vdd
+#
+#     def __init__(self, i2ccore, addr, vdd=5.0):
+#         self.i2ccore = i2ccore
+#         self.slaveaddr = addr & 0x7f
+#         self.vdd = float(vdd)
+#
+#     def setvoltage(self, channel, voltage, powerdown=MCP472XPowerMode.on):
+#         value = int(voltage / self.vdd * 2**12)
+#         #print "%g V -> %d" % (voltage, value)
+#         self.setvalue(channel, value, powerdown)
+#
+#     def setvalue(self, channel, value, powerdown=MCP472XPowerMode.on):
+#         value = int(value) & 0xfff
+#         data = [] # data is an empty array that gets filled as below
+#         cmd = DACMCP4728.writeDACEEPROM << 5
+#         cmd |= DACMCP4728.singlewrite << 3
+#         cmd |= (channel & 0b11) << 1
+#         data.append(cmd) data gets appende the cmd string
+#         val = DACMCP4728.vref | ((powerdown & 0b11) << 5)
+#         val |= (value & 0xf00) >> 8
+#         data.append(val)
+#         data.append(value & 0xff)
+#         sx = "0x"
+#         sb = ""
+#         for val in data:
+#             sx += "%02x" % val
+#             sb += "%s " % bin(val)
+#         #print "Writing data to %s value: " % bin(self.slaveaddr), data, sx, sb
+#         nwritten = self.i2ccore.write(self.slaveaddr, data)
+#         assert nwritten == len(data), "Only wrote %d of %d bytes setting MCP4728." % (nwritten, len(data))
+#         time.sleep(0.2)
+#
+#     def status(self):
+#         data = self.i2ccore.read(self.slaveaddr, 24)
+#         assert len(data) == 24, "Only read %d of 24 bytes getting MCP4728 status." % len(data)
+#         #print data
+#         chans = []
+#         for chan in range(4):
+#             i = chan * 6
+#             chans.append(MCP4728Channel(data[i:i+6]))
+#         return chans
+#
+#     def readvoltages(self):
+#         chans = self.status()
+#         voltages = []
+#         for chan in chans:
+#             value = float(chan.output.value)
+#             voltage = self.vdd * value / 2**12
+#             voltages.append(voltage)
+#         return voltages
+
+class TempMCP9808:
+    """Temperture chip on analog board."""
+
+    regTemp = 0x5
+
+    def __init__(self, i2ccore, addr=0b0011000):
+        self.i2ccore = i2ccore
+        self.slaveaddr = addr & 0x7f
+# Here the chip needs a specific register written as a command before it knows
+# where to write to, which is the regaddr byte that is passed upself.
+
+    def readreg(self, regaddr):
+        n, data = self.i2ccore.writeread(self.slaveaddr, [regaddr], 2)
+        assert n == 1 # this is the one byte address for the registry
+        assert len(data) == 2 # this is teh length of the data read from the chip
+        val = data[0] << 8
+        val |= data[1]
+        return val
+
+    def temp(self):
+        val = self.readreg(TempMCP9808.regTemp)
+        return self.u16todeg(val)
+
+    def u16todeg(self, val):
+        val &= 0x1fff
+        neg = val & 0x1000 > 0
+        val &= 0x0fff
+        if neg:
+            return -float(0xfff - val) / 16.0
+        return float(val) / 16.0
diff --git a/legacy/miniTLU/I2cBusProperties.py b/legacy/miniTLU/I2cBusProperties.py
new file mode 100644
index 00000000..a23f30cd
--- /dev/null
+++ b/legacy/miniTLU/I2cBusProperties.py
@@ -0,0 +1,122 @@
+##########################################################
+#  I2cBusProperties - simple encapsulation of all items
+#                     required to control an I2C bus.
+#
+#  Carl Jeske, July 2010
+#  Refactored by Robert Frazier, May 2011
+##########################################################
+
+
+class I2cBusProperties(object):
+    """Encapsulates details of an I2C bus master in the form of a host device, a clock prescale value, and seven I2C master registers
+
+    Provide the ChipsBus instance to the device hosting your I2C core, a 16-bit clock prescaling
+    value for the Serial Clock Line (see I2C core docs for details), and the names of the seven
+    registers that define/control the bus (assuming these names are not the defaults specified
+    in the constructor below).  The seven registers consist of the two clock pre-scaling
+    registers (PRElo, PREhi), and five bus master registers (CONTROL, TRANSMIT, RECEIVE,
+    COMMAND and STATUS).
+
+    Usage:  You'll need to create an instance of this class to give to a concrete I2C bus instance, such
+            as OpenCoresI2cBus.  This I2cBusProperties class is simply a container to hold the properties
+            that define the bus; a class such as OpenCoresI2cBus will make use of these properties.
+
+            Access the items stored by this class via these (deliberately compact) variable names:
+
+                chipsBus     -- the ChipsBus device hosting the I2C core
+                preHiVal     -- the top byte of the clock prescale value
+                preLoVal     -- the bottom byte of the clock prescale value
+                preHiReg     -- the register the top byte of the clk prescale value (preHiVal) gets written to
+                preLoReg     -- the register the bottom byte of the clk prescale value (preLoVal) gets written to
+                ctrlReg      -- the I2C Control register
+                txReg        -- the I2C Transmit register
+                rxReg        -- the I2C Receive register
+                cmdReg       -- the I2C Command register
+                statusReg    -- the I2C Status register
+
+
+    Compatibility Notes: The seven register names are the registers typically required to operate an
+                         OpenCores or similar I2C Master (Lattice Semiconductor's I2C bus master works
+                         the same way as the OpenCores one). This software is not compatible with your
+                         I2C bus master if it doesn't use this register interface.
+    """
+
+    def __init__(self,
+                 chipsBusDevice,
+                 clkPrescaleU16,
+                 clkPrescaleLoByteReg = "i2c_pre_lo",
+                 clkPrescaleHiByteReg = "i2c_pre_hi",
+                 controlReg           = "i2c_ctrl",
+                 transmitReg          = "i2c_tx",
+                 receiveReg           = "i2c_rx",
+                 commandReg           = "i2c_cmd",
+                 statusReg            = "i2c_status"):
+
+        """Provide a host ChipsBus device that is controlling the I2C bus, and the names of five I2C control registers.
+
+        chipsBusDevice:  Provide a ChipsBus instance to the device where the I2C bus is being
+                controlled. The address table for this device must contain the five registers
+                that control the bus, as declared next...
+
+        clkPrescaleU16: A 16-bit value used to prescale the Serial Clock Line based on the host
+                master-clock.  This value gets split into two 8-bit values and ultimately will
+                get written to the two I2C clock-prescale registers as declared below.  See
+                the OpenCores or Lattice Semiconductor I2C documentation for more details.
+
+        clkPrescaleLoByteReg:  The register where the lower byte of the clock prescale value is set.  The default
+                name for this register is "i2c_pre_lo".
+
+        clkPrescaleHiByteReg:  The register where the higher byte of the clock prescale value is set.  The default
+                name for this register is "i2c_pre_hi"
+
+        controlReg:  The CONTROL register, used for enabling/disabling the I2C core, etc. This register is
+                usually read and write accessible. The default name for this register is "i2c_ctrl".
+
+        transmitReg:  The TRANSMIT register, used for holding the data to be transmitted via I2C, etc.  This
+                typically shares the same address as the RECEIVE register, but has write-only access.  The default
+                name for this register is "i2c_tx".
+
+        receiveReg:  The RECEIVE register - allows access to the byte received over the I2C bus.  This
+                typically shares the same address as the TRANSMIT register, but has read-only access.  The
+                default name for this register is "i2c_rx".
+
+        commandReg:  The COMMAND register - stores the command for the next I2C operation.  This typically
+                shares the same address as the STATUS register, but has write-only access.  The default name for
+                this register is "i2c_cmd".
+
+        statusReg:  The STATUS register - allows monitoring of the I2C operations.  This typically shares
+                the same address as the COMMAND register, but has read-only access.  The default name for this
+                register is "i2c_status".
+        """
+
+        object.__init__(self)
+        self.chipsBus = chipsBusDevice
+        self.preHiVal = ((clkPrescaleU16 & 0xff00) >> 8)
+        self.preLoVal = (clkPrescaleU16 & 0xff)
+        
+        # Check to see all the registers are in the address table
+        registers = [clkPrescaleLoByteReg, clkPrescaleHiByteReg, controlReg, transmitReg, receiveReg, commandReg, statusReg]
+        for reg in registers:
+            if not self.chipsBus.addrTable.checkItem(reg):
+                raise ChipsException("I2cBusProperties error: register '" + reg + "' is not present in the address table of the device hosting the I2C bus master!")
+
+        # Check that the registers we'll need to write to are indeed writable
+        writableRegisters = [clkPrescaleLoByteReg, clkPrescaleHiByteReg, controlReg, transmitReg, commandReg]
+        for wReg in writableRegisters:
+            if not self.chipsBus.addrTable.getItem(wReg).getWriteFlag():
+                raise ChipsException("I2cBusProperties error: register '" + wReg + "' does not have the necessary write permission!")
+
+        # Check that the registers we'll need to read from are indeed readable
+        readableRegisters = [clkPrescaleLoByteReg, clkPrescaleHiByteReg, controlReg, receiveReg, statusReg]
+        for rReg in readableRegisters:
+            if not self.chipsBus.addrTable.getItem(rReg).getReadFlag():
+                raise ChipsException("I2cBusProperties error: register '" + rReg + "' does not have the necessary read permission!")
+
+        # Store the various register name strings
+        self.preHiReg = clkPrescaleHiByteReg
+        self.preLoReg = clkPrescaleLoByteReg
+        self.ctrlReg = controlReg
+        self.txReg = transmitReg
+        self.rxReg = receiveReg
+        self.cmdReg = commandReg
+        self.statusReg = statusReg
diff --git a/legacy/miniTLU/RawI2cAccess.py b/legacy/miniTLU/RawI2cAccess.py
new file mode 100644
index 00000000..28461329
--- /dev/null
+++ b/legacy/miniTLU/RawI2cAccess.py
@@ -0,0 +1,261 @@
+# Created on Sep 10, 2012
+# @author: Kristian Harder, based on code by Carl Jeske
+
+from I2cBusProperties import I2cBusProperties
+from ChipsBus import ChipsBus
+from ChipsLog import chipsLog
+from ChipsException import ChipsException
+
+
+class RawI2cAccess:
+
+    def __init__(self, i2cBusProps, slaveAddr):
+
+        # For performing read/writes over an OpenCores-compatible I2C bus master
+        #
+        # An instance of this class is required to communicate with each
+        # I2C slave on the I2C bus.
+        #
+        # i2cBusProps: an instance of the class I2cBusProperties that contains
+        #    the relevant ChipsBus host and the I2C bus-master registers (if
+        #    they differ from the defaults specified by the I2cBusProperties
+        #    class).
+        #
+        #slaveAddr: The address of the I2C slave you wish to communicate with.
+        #
+
+        self._i2cProps = i2cBusProps   # The I2C Bus Properties
+        self._slaveAddr = 0x7f & slaveAddr  # 7-bit slave address
+
+
+    def resetI2cBus(self):
+
+        # Resets the I2C bus
+        #
+        # This function does the following:
+        #        1) Disables the I2C core
+        #        2) Sets the clock prescale registers
+        #        3) Enables the I2C core
+        #        4) Sets all writable bus-master registers to default values
+
+        try:
+            self._chipsBus().queueWrite(self._i2cProps.ctrlReg, 0x00)
+            #self._chipsBus().getNode(self._i2cProps.ctrlReg).write(0)
+            self._chipsBus().queueWrite(self._i2cProps.preHiReg,
+                                        self._i2cProps.preHiVal)
+            self._chipsBus().queueWrite(self._i2cProps.preLoReg,
+                                        self._i2cProps.preLoVal)
+            self._chipsBus().queueWrite(self._i2cProps.ctrlReg, 0x80)
+            self._chipsBus().queueWrite(self._i2cProps.txReg, 0x00)
+            self._chipsBus().queueWrite(self._i2cProps.cmdReg, 0x00)
+            self._chipsBus().queueRun()
+        except ChipsException, err:
+            raise ChipsException("I2C reset error:\n\t" + str(err))
+
+
+    def read(self, numBytes):
+
+        # Performs an I2C read. Returns the 8-bit read result(s).
+        #
+        # numBytes: number of bytes expected as response
+        #
+
+        try:
+            result = self._privateRead(numBytes)
+        except ChipsException, err:
+            raise ChipsException("I2C read error:\n\t" + str(err))
+        return result
+
+
+    def write(self, listDataU8):
+
+        # Performs an 8-bit I2C write.
+        #
+        # listDataU8:  The 8-bit data values to be written.
+        #
+
+        try:
+            self._privateWrite(listDataU8)
+        except ChipsException, err:
+            raise ChipsException("I2C write error:\n\t" + str(err))
+        return
+
+
+    def _chipsBus(self):
+
+        # Returns the instance of the ChipsBus device that's hosting
+        # the I2C bus master
+
+        return self._i2cProps.chipsBus
+
+
+    def _privateRead(self, numBytes):
+
+        # I2C read implementation.
+        #
+        #  Fast I2C read implementation,
+        # i.e. done with the fewest packets possible.
+
+
+        # transmit reg definitions
+        # bits 7-1: 7-bit slave address during address transfer
+        #           or first 7 bits of byte during data transfer
+        # bit 0: RW flag during address transfer or LSB during data transfer.
+        #        '1' = reading from slave
+        #        '0' = writing to slave
+
+        # command reg definitions
+        # bit 7:   Generate start condition
+        # bit 6:   Generate stop condition
+        # bit 5:   Read from slave
+        # bit 4:   Write to slave
+        # bit 3:   0 when acknowledgement is received
+        # bit 2:1: Reserved
+        # bit 0:   Interrupt acknowledge. When set, clears a pending interrupt
+
+        # Reset bus before beginning
+        self.resetI2cBus()
+
+        # Set slave address in bits 7:1, and set bit 0 to zero
+        # (i.e. we're writing an address to the bus)
+        self._chipsBus().queueWrite(self._i2cProps.txReg,
+                                    (self._slaveAddr << 1) | 0x01)
+        # Set start and write bit in command reg
+        self._chipsBus().queueWrite(self._i2cProps.cmdReg, 0x90)
+        # Run the queue
+        self._chipsBus().queueRun()
+        # Wait for transaction to finish.
+        self._i2cWaitUntilFinished()
+
+        result=[]
+        for ibyte in range(numBytes):
+            if ibyte==numBytes-1:
+                stop_bit=0x40
+                ack_bit=0x08
+            else:
+                stop_bit=0
+                ack_bit=0
+                pass
+            # Set read bit, acknowledge and stop bit in command reg
+            self._chipsBus().write(self._i2cProps.cmdReg, 0x20+ack_bit+stop_bit)
+            # Wait for transaction to finish.
+            # Don't expect an ACK, do expect bus free at finish.
+            if stop_bit:
+                self._i2cWaitUntilFinished(requireAcknowledgement = False,
+                                           requireBusIdleAtEnd = True)
+            else:
+                self._i2cWaitUntilFinished(requireAcknowledgement = False,
+                                           requireBusIdleAtEnd = False)
+                pass
+            result.append(self._chipsBus().read(self._i2cProps.rxReg))
+
+        return result
+
+
+    def _privateWrite(self, listDataU8):
+
+        # I2C write implementation.
+        #
+        #  Fast I2C write implementation,
+        # i.e. done with the fewest packets possible.
+
+        # transmit reg definitions
+        # bits 7-1: 7-bit slave address during address transfer
+        #           or first 7 bits of byte during data transfer
+        # bit 0: RW flag during address transfer or LSB during data transfer.
+        # '1' = reading from slave
+        # '0' = writing to slave
+
+        # command reg definitions
+        # bit 7: Generate start condition
+        # bit 6: Generate stop condition
+        # bit 5: Read from slave
+        # bit 4: Write to slave
+        # bit 3: 0 when acknowledgement is received
+        # bit 2:1: Reserved
+        # bit 0: Interrupt acknowledge. When set, clears a pending interrupt
+        # Reset bus before beginning
+        self.resetI2cBus()
+
+        # Set slave address in bits 7:1, and set bit 0 to zero (i.e. "write mode")
+        self._chipsBus().queueWrite(self._i2cProps.txReg,
+                                    (self._slaveAddr << 1) & 0xfe)
+        # Set start and write bit in command reg
+        self._chipsBus().queueWrite(self._i2cProps.cmdReg, 0x90)
+        # Run the queue
+        self._chipsBus().queueRun()
+        # Wait for transaction to finish.
+        self._i2cWaitUntilFinished()
+
+        for ibyte in range(len(listDataU8)):
+            dataU8 = listDataU8[ibyte]
+            if ibyte==len(listDataU8)-1:
+                stop_bit=0x40
+            else:
+                stop_bit=0x00
+                pass
+            # Set data to be written in transmit reg
+            self._chipsBus().queueWrite(self._i2cProps.txReg, (dataU8 & 0xff))
+            # Set write and stop bit in command reg
+            self._chipsBus().queueWrite(self._i2cProps.cmdReg, 0x10+stop_bit)
+            # Run the queue
+            self._chipsBus().queueRun()
+            # Wait for transaction to finish.
+            # Do expect an ACK and do expect bus to be free at finish
+            if stop_bit:
+                self._i2cWaitUntilFinished(requireAcknowledgement = True,
+                                           requireBusIdleAtEnd = True)
+            else:
+                self._i2cWaitUntilFinished(requireAcknowledgement = True,
+                                           requireBusIdleAtEnd = False)
+                pass
+            pass
+
+        return
+
+
+    def _i2cWaitUntilFinished(self, requireAcknowledgement = True,
+                              requireBusIdleAtEnd = False):
+
+        # Ensures the current bus transaction has finished successfully
+        # before allowing further I2C bus transactions
+
+        # This method monitors the status register
+        # and will not allow execution to continue until the
+        # I2C bus has completed properly.  It will throw an exception
+        # if it picks up bus problems or a bus timeout occurs.
+
+        maxRetry = 20
+        attempt = 1
+        while attempt <= maxRetry:
+
+            # Get the status
+            i2c_status = self._chipsBus().read(self._i2cProps.statusReg)
+
+            receivedAcknowledge = not bool(i2c_status & 0x80)
+            busy = bool(i2c_status & 0x40)
+            arbitrationLost = bool(i2c_status & 0x20)
+            transferInProgress = bool(i2c_status & 0x02)
+            interruptFlag = bool(i2c_status & 0x01)
+
+            if arbitrationLost:  # This is an instant error at any time
+                raise ChipsException("I2C error: Arbitration lost!")
+
+            if not transferInProgress:
+                break  # The transfer looks to have completed successfully, pending further checks
+
+            attempt += 1
+
+        # At this point, we've either had too many retries, or the
+        # Transfer in Progress (TIP) bit went low.  If the TIP bit
+        # did go low, then we do a couple of other checks to see if
+        # the bus operated as expected:
+
+        if attempt > maxRetry:
+            raise ChipsException("I2C error: Transaction timeout - the 'Transfer in Progress' bit remained high for too long!")
+
+        if requireAcknowledgement and not receivedAcknowledge:
+            raise ChipsException("I2C error: No acknowledge received!")
+
+        if requireBusIdleAtEnd and busy:
+            raise ChipsException("I2C error: Transfer finished but bus still busy!")
diff --git a/legacy/miniTLU/aida_mini_tlu_addr_map.txt b/legacy/miniTLU/aida_mini_tlu_addr_map.txt
new file mode 100644
index 00000000..1f4693a4
--- /dev/null
+++ b/legacy/miniTLU/aida_mini_tlu_addr_map.txt
@@ -0,0 +1,72 @@
+*RegName                RegAddr        RegMask       R    W
+*-------------------------------------------------------------
+FirmwareId              0x00000000     0xffffffff    1    0
+*
+* DUT interfaces base = 0x020
+DUTMaskW		0x00000020     0xffffffff    0    1
+IgnoreDUTBusyW		0x00000021     0xffffffff    0    1
+IgnoreShutterVetoW	0x00000022     0xffffffff    0    1
+DUTInterfaceModeW	0x00000023     0xffffffff    0    1
+DUTInterfaceModeModifierW 0x00000024     0xffffffff    0    1
+DUTMaskR		0x00000028     0xffffffff    1    0
+IgnoreDUTBusyR		0x00000029     0xffffffff    1    0
+IgnoreShutterVetoR	0x0000002A     0xffffffff    1    0
+DUTInterfaceModeR 	0x0000002B     0xffffffff    1    0
+DUTInterfaceModeModifierR 0x0000002C     0xffffffff    1    0
+*
+* trigger inputs = 0x040
+SerdesRstW               0x00000040     0xffffffff    0    1
+SerdesRstR               0x00000048     0xffffffff    1    0
+ThrCount0R               0x00000049     0xffffffff    1    0
+ThrCount1R               0x0000004a     0xffffffff    1    0
+ThrCount2R               0x0000004b     0xffffffff    1    0
+ThrCount3R               0x0000004c     0xffffffff    1    0
+*
+* trigger logic = 0x060  **Note the different read and write directions
+
+InternalTriggerIntervalW	0x00000062     0xffffffff    0    1
+TriggerPatternW 		0x00000063     0xffffffff    0    1
+TriggerVetoW 			0x00000064     0xffffffff    0    1
+PulseStretchW			0x00000066     0xffffffff    0    1
+PulseDelayW 			0x00000067     0xffffffff    0    1
+TriggerHoldOffW			0x00000068     0xffffffff    0    1
+
+PostVetoTriggersR       	0x00000070     0xffffffff    1    0
+PreVetoTriggersR        	0x00000071     0xffffffff    1    0
+InternalTriggerIntervalR	0x00000072     0xffffffff    1    0
+TriggerPatternR 		0x00000073     0xffffffff    1    0
+TriggerVetoR 			0x00000074     0xffffffff    1    0
+ExternalTriggerVetoR		0x00000075     0xffffffff    1    0
+PulseStretchR			0x00000076     0xffffffff    1    0
+PulseDelayR 			0x00000077     0xffffffff    1    0
+TriggerHoldOffR			0x00000078     0xffffffff    1    0
+AuxTriggerCountR 		0x00000079     0xffffffff    1    0
+*
+* event buffer = 0x080
+EventFifoData		0x00000080     0xffffffff    1    0
+EventFifoFillLevel	0x00000081     0xffffffff    1    0
+EventFifoCSR		0x00000082     0xffffffff    1    1
+EventFifoFillLevelFlags	0x00000083     0xffffffff    1    0
+*
+* logic clocks = 0x0A0
+LogicClocksCSR          0x000000A0     0xffffffff    1    1
+LogicRst                0x000000A1     0xffffffff    0    1
+*
+* I2C = 0x0C0
+i2c_pre_lo                0x000000C0     0x000000ff    1    1
+i2c_pre_hi                0x000000C1     0x000000ff    1    1
+i2c_ctrl                  0x000000C2     0x000000ff    1    1
+i2c_tx                    0x000000C3     0x000000ff    0    1
+i2c_rx                    0x000000C3     0x000000ff    1    0
+i2c_cmd                   0x000000C4     0x000000ff    0    1
+i2c_status                0x000000C4     0x000000ff    1    0
+*
+* Event formatter = 0x140
+Enable_Record_Data	0x00000140     0xffffffff    1    1
+ResetTimestampW		0x00000141     0xffffffff    0    1
+CurrentTimestampLR	0x00000142     0xffffffff    1    0
+CurrentTimestampHR	0x00000143     0xffffffff    1    0
+*
+* Shutter/T0 control = 0x160
+ShutterStateW			0x00000160     0xffffffff    0    1
+PulseT0				0x00000161     0xffffffff    0    1
diff --git a/legacy/miniTLU/connection.xml b/legacy/miniTLU/connection.xml
new file mode 100644
index 00000000..647c1ad3
--- /dev/null
+++ b/legacy/miniTLU/connection.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<connections>
+  <connection id="minitlu" uri="ipbusudp-2.0://192.168.200.32:50001" 
+   address_table="file://./miniTLU.xml" />
+</connections>
diff --git a/legacy/miniTLU/initTLU.py b/legacy/miniTLU/initTLU.py
new file mode 100644
index 00000000..eb1ae650
--- /dev/null
+++ b/legacy/miniTLU/initTLU.py
@@ -0,0 +1,184 @@
+#
+# Function to initialize TLU
+#
+# David Cussans, October 2015
+#
+# Nasty hack - use both PyChips and uHAL ( for block read ... )
+
+from PyChipsUser import *
+from FmcTluI2c import *
+
+import uhal
+
+import sys
+import time
+
+def startTLU( uhalDevice , pychipsBoard , writeTimestamps):
+
+    print "RESETTING FIFO"
+    pychipsBoard.write("EventFifoCSR",0x2)
+    eventFifoFillLevel = pychipsBoard.read("EventFifoFillLevel")
+    print "FIFO FILL LEVEL AFTER RESET= " , eventFifoFillLevel
+
+
+    if writeTimestamps:
+        print "ENABLING DATA RECORDING"
+        pychipsBoard.write("Enable_Record_Data",1)
+    else:
+        print "Disabling data recording"
+        pychipsBoard.write("Enable_Record_Data",0)
+
+    print "Pulsing T0"
+    pychipsBoard.write("PulseT0",1)
+
+    print "Turning off software trigger veto"
+    pychipsBoard.write("TriggerVetoW",0)
+
+    print "TLU is running"
+
+
+def stopTLU( uhalDevice , pychipsBoard ):
+
+    print "Turning on software trigger veto"
+    pychipsBoard.write("TriggerVetoW",1)
+
+    print "TLU triggers are stopped"
+
+def initTLU( uhalDevice , pychipsBoard , listenForTelescopeShutter , pulseDelay , pulseStretch , triggerPattern , DUTMask , ignoreDUTBusy , triggerInterval , thresholdVoltage ):
+
+    print "SETTING UP AIDA TLU"
+
+    fwVersion = uhalDevice.getNode("version").read()
+    uhalDevice.dispatch()
+    print "\tVersion (uHAL)= " , hex(fwVersion)
+
+    print "\tTurning on software trigger veto"
+    pychipsBoard.write("TriggerVetoW",1)
+
+    # Check the bus for I2C devices
+    pychipsBoardi2c = FmcTluI2c(pychipsBoard)
+
+    print "\tScanning I2C bus:"
+    scanResults = pychipsBoardi2c.i2c_scan()
+    #print scanResults
+    print '\t', ', '.join(scanResults), '\n'
+
+    boardId = pychipsBoardi2c.get_serial_number()
+    print "\tFMC-TLU serial number= " , boardId
+
+    resetClocks = 0
+    resetSerdes = 0
+
+# set DACs to -200mV
+    print "\tSETTING ALL DAC THRESHOLDS TO" , thresholdVoltage , "V"
+    pychipsBoardi2c.set_threshold_voltage(7, thresholdVoltage)
+
+    clockStatus = pychipsBoard.read("LogicClocksCSR")
+    print "\tCLOCK STATUS (should be 3 if all clocks locked)= " , hex(clockStatus)
+    assert ( clockStatus == 3 ) , "Clocks in TLU FPGA are not locked. No point in continuing. Re-prgramme or power cycle board"
+
+    if resetClocks:
+        print "Resetting clocks"
+        pychipsBoard.write("LogicRst", 1 )
+
+        clockStatus = pychipsBoard.read("LogicClocksCSR")
+        print "Clock status after reset = " , hex(clockStatus)
+
+        inputStatus = pychipsBoard.read("SerdesRstR")
+        print "Input status = " , hex(inputStatus)
+
+    if resetSerdes:
+        pychipsBoard.write("SerdesRstW", 0x00000003 )
+        inputStatus = pychipsBoard.read("SerdesRstR")
+        print "Input status during reset = " , hex(inputStatus)
+
+        pychipsBoard.write("SerdesRstW", 0x00000000 )
+        inputStatus = pychipsBoard.read("SerdesRstR")
+        print "Input status after reset = " , hex(inputStatus)
+
+        pychipsBoard.write("SerdesRstW", 0x00000004 )
+        inputStatus = pychipsBoard.read("SerdesRstR")
+        print "Input status during calibration = " , hex(inputStatus)
+
+        pychipsBoard.write("SerdesRstW", 0x00000000 )
+        inputStatus = pychipsBoard.read("SerdesRstR")
+        print "Input status after calibration = " , hex(inputStatus)
+
+
+    inputStatus = pychipsBoard.read("SerdesRstR")
+    print "\tINPUT STATUS= " , hex(inputStatus)
+
+    count0 = pychipsBoard.read("ThrCount0R")
+    print "\t  Count 0= " , count0
+
+    count1 = pychipsBoard.read("ThrCount1R")
+    print "\t  Count 1= " , count1
+
+    count2 = pychipsBoard.read("ThrCount2R")
+    print "\t  Count 2= " , count2
+
+    count3 = pychipsBoard.read("ThrCount3R")
+    print "\t  Count 3= " , count3
+
+# Stop internal triggers until setup complete
+    pychipsBoard.write("InternalTriggerIntervalW",0)
+
+    print "\tSETTING INPUT COINCIDENCE WINDOW TO",pulseStretch,"[Units= 160MHz clock cycles, Four 5-bit values (one per input) packed in to 32-bit word]"
+    pychipsBoard.write("PulseStretchW",int(pulseStretch))
+    pulseStretchR = pychipsBoard.read("PulseStretchR")
+    print "\t  Pulse stretch read back as:", hex(pulseStretchR)
+ #   assert (int(pulseStretch) == pulseStretchR) , "Pulse stretch read-back doesn't equal written value"
+
+    print "\tSETTING INPUT TRIGGER DELAY TO",pulseDelay , "[Units= 160MHz clock cycles, Four 5-bit values (one per input) packed in to 32-bit word]"
+    pychipsBoard.write("PulseDelayW",int(pulseDelay))
+    pulseDelayR = pychipsBoard.read("PulseDelayR")
+    print "\t  Pulse delay read back as:", hex(pulseDelayR)
+
+    print "\tSETTING TRIGGER PATTERN (for external triggers) TO 0x%08X. Two 16-bit patterns packed into 32 bit word  " %(triggerPattern)
+    pychipsBoard.write("TriggerPatternW",int(triggerPattern))
+    triggerPatternR = pychipsBoard.read("TriggerPatternR")
+    print "\t  Trigger pattern read back as: 0x%08X " % (triggerPatternR)
+
+    print "\tENABLING DUT(s): Mask= " , hex(DUTMask)
+    pychipsBoard.write("DUTMaskW",int(DUTMask))
+    DUTMaskR = pychipsBoard.read("DUTMaskR")
+    print "\t  DUTMask read back as:" , hex(DUTMaskR)
+
+    print "\tSETTING ALL DUTs IN AIDA MODE"
+    pychipsBoard.write("DUTInterfaceModeW", 0xFF)
+    DUTInterfaceModeR = pychipsBoard.read("DUTInterfaceModeR")
+    print "\t  DUT mode read back as:" , DUTInterfaceModeR
+
+    print "\tSET DUT MODE MODIFIER"
+    pychipsBoard.write("DUTInterfaceModeModifierW", 0xFF)
+    DUTInterfaceModeModifierR = pychipsBoard.read("DUTInterfaceModeModifierR")
+    print "\t  DUT mode modifier read back as:" , DUTInterfaceModeModifierR
+
+    if listenForTelescopeShutter:
+        print "\tSET IgnoreShutterVetoW TO LISTEN FOR VETO FROM SHUTTER"
+        pychipsBoard.write("IgnoreShutterVetoW",0)
+    else:
+        print "\tSET IgnoreShutterVetoW TO IGNORE VETO FROM SHUTTER"
+        pychipsBoard.write("IgnoreShutterVetoW",1)
+    IgnoreShutterVeto = pychipsBoard.read("IgnoreShutterVetoR")
+    print "\t  IgnoreShutterVeto read back as:" , IgnoreShutterVeto
+
+    print "\tSETTING IGNORE VETO BY DUT BUSY MASK TO" , hex(ignoreDUTBusy)
+    pychipsBoard.write("IgnoreDUTBusyW",int(ignoreDUTBusy))
+    IgnoreDUTBusy = pychipsBoard.read("IgnoreDUTBusyR")
+    print "\t  IgnoreDUTBusy read back as:" , hex(IgnoreDUTBusy)
+
+#print "Enabling handshake: No-handshake"
+#board.write("HandshakeTypeW",1)
+
+
+    print "\tSETTING INTERNAL TRIGGER INTERVAL TO" , triggerInterval , "(zero= no internal triggers)"
+    if triggerInterval == 0:
+        internalTriggerFreq = 0
+    else:
+        internalTriggerFreq = 160000.0/triggerInterval
+    print "\tINTERNAL TRIGGER FREQUENCY= " , internalTriggerFreq , " kHz"
+    pychipsBoard.write("InternalTriggerIntervalW",triggerInterval)  #0->Internal pulse generator disabled. Any other value will generate pulses with a frequency of n*6.25ns
+    trigIntervalR = pychipsBoard.read("InternalTriggerIntervalR")
+    print "\t  Trigger interval read back as:", trigIntervalR
+    print "AIDA TLU SETUP COMPLETED"
diff --git a/legacy/miniTLU/miniTLU.py b/legacy/miniTLU/miniTLU.py
new file mode 100644
index 00000000..e874a6f5
--- /dev/null
+++ b/legacy/miniTLU/miniTLU.py
@@ -0,0 +1,462 @@
+import uhal;
+from FmcTluI2c import *
+from I2CuHal import I2CCore
+
+class MiniTLU:
+    """docstring for miniTLU"""
+    def __init__(self, dev_name, man_file):
+        self.dev_name = dev_name
+        self.manager= uhal.ConnectionManager(man_file)
+        self.hw = self.manager.getDevice(self.dev_name)
+        self.nChannels= 4
+        self.VrefInt= 2.5 #Internal DAC voltage reference
+        self.VrefExt= 1.3 #External DAC voltage reference
+        self.intRefOn= False #Internal reference is OFF by default
+
+        self.fwVersion = self.hw.getNode("version").read()
+        self.hw.dispatch()
+        print "uHAL VERSION= " , hex(self.fwVersion)
+
+        # Instantiate a I2C core to configure the DACs
+        self.TLU_I2C= I2CCore(self.hw, 10, 5, "i2c_master", None)
+        self.TLU_I2C.state()
+
+
+    def initialize(self):
+        print "miniTLU INITIALIZING..."
+        # We need to pass it listenForTelescopeShutter , pulseDelay , pulseStretch , triggerPattern , DUTMask , ignoreDUTBusy , triggerInterval , thresholdVoltage
+
+        print "\tTurning on software trigger veto"
+        cmd = int("0x1",16)
+        self.setTriggerVetoStatus(cmd)
+
+        #READ CONTENT OF EPROM VIA I2C
+        self.getSN()
+
+        #SET DACs
+        targetV= 1.1
+        intRef= False
+        self.setDACintRef(intRef)
+        DACchannel= 7
+        self.writeThreshold(targetV, DACchannel)
+
+        #Check clock status
+        self.checkClkStatus()
+
+        resetClocks = 0
+        resetSerdes = 0
+        if resetClocks:
+            self.resetClocks()
+        if resetSerdes:
+            self.resetSerdes()
+
+        # Get inputs status and counters
+        self.getChStatus()
+        self.getAllChannelsCounts()
+
+        # Stop internal triggers until setup complete
+        cmd = int("0x0",16)
+        self.setInternalTrg(cmd)
+
+        # Set pulse stretch
+        pulseStretch= 0x000FFFFF
+        self.setPulseStretch(pulseStretch)
+
+        # Set pulse delay
+        pulseDelay= 0x0
+        #self.setPulseDelay(pulseDelay) #NEED TO FIX ADDRESS TABLE
+
+        # Set trigger pattern
+        triggerPattern= 0x0
+        self.setTrgPattern(triggerPattern)
+
+        # Set DUTs
+        DUTMask= 0x1
+        self.setDUTmask(DUTMask)
+
+        # # Set mode
+        DUTMode= 0x0
+        self.setMode(DUTMode)
+
+        # # Set modifier
+        modifier = int("0xFF",16) 
+        self.setModeModifier(modifier)
+
+        # Set veto shutter
+        setVetoShutters=0
+        self.setVetoShutters(setVetoShutters)
+
+        # Set veto by DUT
+        ignoreDUTBusy=0x0
+        self.setVetoDUT(ignoreDUTBusy)
+
+        # Set trigger interval (use 0 to disable internal triggers)
+        triggerInterval=0
+        self.setInternalTrg(triggerInterval)
+
+        print "miniTLU INITIALIZED"
+
+    def setModeModifier(self, modifier):
+        print "\tDUT MODE MODIFIER:",modifier
+        self.hw.getNode("DUTInterfaces.DUTInterfaceModeModifierW").write(modifier)
+        self.hw.dispatch()
+        self.getModeModifier()
+
+    def getModeModifier(self):
+        DUTInterfaceModeModifierR = self.hw.getNode("DUTInterfaces.DUTInterfaceModeModifierR").read()
+        self.hw.dispatch()
+        print "\t  DUT mode modifier read back as:" , hex(DUTInterfaceModeModifierR)
+        return DUTInterfaceModeModifierR
+
+    def resetClock(self):
+        print "\tClocks reset"
+        cmd = int("0x1",16)
+        self.hw.getNode("logic_clocks.LogicRst").write(cmd)
+        self.hw.dispatch()
+
+    def getClockStatus(self):
+        clockStatus = self.hw.getNode("logic_clocks.LogicClocksCSR").read()
+        self.hw.dispatch()
+        print "\t  Clock status=" , hex(clockStatus)
+        return clockStatus
+
+    def readEEPROM(self, startadd, bytes):
+        mystop= 1
+        time.sleep(0.1)
+        myaddr= [startadd]#0xfa
+        self.TLU_I2C.write( 0x50, [startadd], mystop)
+        res= self.TLU_I2C.read( 0x50, bytes)
+        return res
+
+    def getSN(self):
+        epromcontent=self.readEEPROM(0xfa, 6)
+        print "\tFMC-TLU serial number (EEPROM):"
+        result="\t  "
+        for iaddr in epromcontent:
+            result+="%02x "%(iaddr)
+        print result
+        return epromcontent
+
+    def writeThreshold(self, Vtarget, channel):
+        #Writes the threshold. The DAC voltage differs from the threshold voltage because
+        #the range is shifted to be symmetrical around 0V.
+
+        #Check if the DACs are using the internal reference
+        if (self.intRefOn):
+            Vref= self.VrefInt
+        else:
+            Vref= self.VrefExt
+
+        #Calculate offset voltage (because of the following shifter)
+        Vdac= ( Vtarget + Vref ) / 2
+        print"\tTHRESHOLD setting:"
+        if channel==7:
+            print "\t  CH: ALL"
+        else:
+            print "\t  CH:", channel
+        print "\t  Target V:", Vtarget
+        dacValue = 0xFFFF * Vtarget / Vref
+        self.writeDAC(int(dacValue), channel)
+
+    def writeDAC(self, dacCode, channel):
+        #Vtarget is the required voltage, channel is the DAC channel to target
+        #intRef indicates whether to use the external voltage reference (True)
+        #or the internal one (False).
+
+        i2cSlaveAddrDac = 0x1F
+
+        print "\t  DAC value:"  , dacCode
+        if channel<0 or channel>7:
+            print "writeDAC ERROR: channel",channel,"not in range 0-7 (bit mask)"
+            ##return -1
+        if dacCode<0:
+            print "writeDAC ERROR: value",dacCode,"<0. Default to 0"
+            dacCode=0
+        elif dacCode>0xFFFF :
+            print "writeDAC ERROR: value",dacCode,">0xFFFF. Default to 0xFFFF"
+            dacCode=0xFFFF
+
+        sequence=[( 0x18 + ( channel &0x7 ) ) , int(dacCode/256)&0xff , int(dacCode)&0xff]
+        print "\t  Writing DAC string:", sequence
+        self.TLU_I2C.write( i2cSlaveAddrDac, sequence, 0)
+
+    # def readDAC(self, channel):
+    #     #TO BE DONE
+    #     i2cSlaveAddrDac = 0x1F
+    #     bytes= 3
+    #     if channel<0 or channel>7:
+    #         print "writeDAC ERROR: channel",channel,"not in range 0-7 (bit mask)"
+    #         ##return -1
+    #     cmdDAC=[( 0x18 + ( channel &0x7 ) ) ]
+    #     self.TLU_I2C.write( i2cSlaveAddrDac, cmdDAC, 0)
+    #     res= self.TLU_I2C.read( i2cSlaveAddrDac, bytes)
+    #     print res
+
+    def setDACintRef(self, intRef=False):
+        i2cSlaveAddrDac = 0x1F
+        self.intRefOn= intRef
+        if intRef:
+            print "\tDAC internal reference ON"
+            cmdDAC= [0x38,0x00,0x01]
+        else:
+            print "\tDAC internal reference OFF"
+            cmdDAC= [0x38,0x00,0x00]
+        self.TLU_I2C.write( i2cSlaveAddrDac, cmdDAC, 0)
+
+    # def getDACintRef(self):
+    #     #TO BE FIXED!
+    #     bytes= 3
+    #     i2cSlaveAddrDac = 0x1F
+    #     cmdDAC= [0x78]
+    #     self.TLU_I2C.write( i2cSlaveAddrDac, cmdDAC, 0)
+    #     res= self.TLU_I2C.read( i2cSlaveAddrDac, bytes)
+    #     print res
+
+    def setTrgPattern(self, triggerPattern):
+        triggerPattern &= 0xffffffff
+        print "\tTRIGGER PATTERN (for external triggers) SET TO 0x%08X. Two 16-bit patterns packed into 32 bit word  " %(triggerPattern)
+        self.hw.getNode("triggerLogic.TriggerPatternW").write(triggerPattern)
+        self.hw.dispatch()
+        self.getTrgPattern()
+
+    def getTrgPattern(self):
+        triggerPatternR = self.hw.getNode("triggerLogic.TriggerPatternR").read()
+        self.hw.dispatch()
+        print "\t  Trigger pattern read back as: 0x%08X " % (triggerPatternR)
+        return triggerPatternR
+
+    def setDUTmask(self, DUTMask):
+        print "\tDUT MASK ENABLING: Mask= " , hex(DUTMask)
+        self.hw.getNode("DUTInterfaces.DutMaskW").write(DUTMask)
+        self.hw.dispatch()
+        self.getDUTmask()
+
+    def getDUTmask(self):
+        DUTMaskR = self.hw.getNode("DUTInterfaces.DutMaskR").read()
+        self.hw.dispatch()
+        print "\t  DUTMask read back as:" , hex(DUTMaskR)
+        return DUTMaskR
+
+    def setVetoShutters(self, newState):
+        if newState:
+            print "\tIgnoreShutterVetoW SET TO LISTEN FOR VETO FROM SHUTTER"
+            cmd= int("0x0",16)
+        else:
+            print "\tIgnoreShutterVetoW SET TO IGNORE VETO FROM SHUTTER"
+            cmd= int("0x1",16)
+        self.hw.getNode("DUTInterfaces.IgnoreShutterVetoW").write(cmd)
+        self.hw.dispatch()
+        self.getVetoShutters()
+
+    def getVetoShutters(self):
+        IgnoreShutterVeto = self.hw.getNode("DUTInterfaces.IgnoreShutterVetoR").read()
+        self.hw.dispatch()
+        print "\t  IgnoreShutterVeto read back as:" , IgnoreShutterVeto
+        return IgnoreShutterVeto
+
+    def setVetoDUT(self, ignoreDUTBusy):
+        print "\tVETO IGNORE BY DUT BUSY MASK SET TO" , hex(ignoreDUTBusy)
+        self.hw.getNode("DUTInterfaces.IgnoreDUTBusyW").write(ignoreDUTBusy)
+        self.hw.dispatch()
+        self.getVetoDUT()
+
+    def getVetoDUT(self):
+        IgnoreDUTBusyR = self.hw.getNode("DUTInterfaces.IgnoreDUTBusyR").read()
+        self.hw.dispatch()
+        print "\t  IgnoreDUTBusy read back as:" , hex(IgnoreDUTBusyR)
+        return IgnoreDUTBusyR
+
+    def setInternalTrg(self, triggerInterval):
+        print "\tTRIGGERS INTERNAL:"
+        if triggerInterval == 0:
+            internalTriggerFreq = 0
+            print "\t  disabled"
+        else:
+            internalTriggerFreq = 160000.0/triggerInterval
+            print "\t  Setting:", internalTriggerFreq, "Hz"
+        self.hw.getNode("triggerLogic.InternalTriggerIntervalW").write(int(internalTriggerFreq))
+        self.hw.dispatch()
+        self.getInternalTrg()
+
+    def getInternalTrg(self):
+        trigIntervalR = self.hw.getNode("triggerLogic.InternalTriggerIntervalR").read()
+        self.hw.dispatch()
+        print "\t  Trigger frequency read back as:", trigIntervalR, "Hz"
+        return trigIntervalR
+
+    def checkClkStatus(self):
+        clockStatus = self.hw.getNode("logic_clocks.LogicClocksCSR").read()
+        self.hw.dispatch()
+        print "\tCLOCK STATUS [expected 3]"
+        print "\t ", hex(clockStatus)
+        assert ( clockStatus == 3 ) , "Clocks in TLU FPGA are not locked. No point in continuing. Re-prgramme or power cycle board"
+        return clockStatus
+
+    def setPulseStretch(self, pulseStretch):
+        print "\tINPUT COINCIDENCE WINDOW SET TO", hex(pulseStretch) ,"[Units= 160MHz clock cycles, Four 5-bit values (one per input) packed in to 32-bit word]"
+        self.hw.getNode("triggerLogic.InternalTriggerIntervalW").write(pulseStretch)
+        self.hw.dispatch()
+        self.getPulseStretch()
+
+    def getPulseStretch(self):
+        pulseStretchR = self.hw.getNode("triggerLogic.InternalTriggerIntervalR").read()
+        self.hw.dispatch()
+        print "\t  Pulse stretch read back as:", hex(pulseStretchR)
+        return pulseStretchR
+
+    def getChCount(self, channel):
+        regString= "triggerInputs.ThrCount"+ str(channel)+"R"
+        count = self.hw.getNode(regString).read()
+        self.hw.dispatch()
+        print "\t  Ch", channel, "Count:" , count
+        return count
+
+    def getChStatus(self):
+        inputStatus= self.hw.getNode("triggerInputs.SerdesRstR").read()
+        self.hw.dispatch()
+        print "\t  Input status= " , hex(inputStatus)
+        return inputStatus
+
+    def setChStatus(self, cmd):
+        self.hw.getNode("triggerInputs.SerdesRstW").write(cmd)
+        inputStatus= self.hw.getNode("triggerInputs.SerdesRstR").read()
+        self.hw.dispatch()
+        print "\tINPUT STATUS SET TO= " , hex(inputStatus)
+
+    def resetSerdes(self):
+        cmd = int("0x3",16)
+        self.setChStatus(cmd)
+        inputStatus= self.getChStatus()
+        print "\t  Input status during reset = " , hex(inputStatus)
+
+        cmd = int("0x0",16)
+        self.setChStatus(cmd)
+        inputStatus= self.getChStatus()
+        print "\t  Input status after reset = " , hex(inputStatus)
+
+        cmd = int("0x4",16)
+        self.setChStatus(cmd)
+        inputStatus= self.getChStatus()
+        print "\t  Input status during calibration = " , hex(inputStatus)
+
+        cmd = int("0x0",16)
+        self.setChStatus(cmd)
+        inputStatus= self.getChStatus()
+        print "\t  Input status after calibration = " , hex(inputStatus)
+
+    def resetClocks(self):
+        #Reset clocks
+        self.resetClock()
+        #Get clock status after reset
+        self.getClockStatus()
+        #Get serdes status
+        self.getChStatus()
+
+    def getAllChannelsCounts(self):
+        chCounts=[]
+        for ch in range (0,self.nChannels):
+            chCounts.append(int(self.getChCount(ch)))
+        return chCounts
+
+    def setPulseDelay(self, pulseDelay):
+        print "\tTRIGGER DELAY SET TO", pulseDelay, "[Units= 160MHz clock, Four 5-bit values (one per input) packed in to 32-bit word]"
+        self.hw.getNode("triggerLogic.PulseDelayW").write(pulseDelay)
+        self.hw.dispatch()
+        self.getPulseDelay()
+
+    def getPulseDelay(self):
+        pulseDelayR = self.hw.getNode("triggerLogic.PulseDelayR").read()
+        self.hw.dispatch()
+        print "\t  Pulse delay read back as:", hex(pulseDelayR)
+        return pulseDelayR
+
+    def setMode(self, mode):
+        print "\tDUT MODE SET TO: ", mode
+        self.hw.getNode("DUTInterfaces.DUTInterfaceModeW").write(mode)
+        self.hw.dispatch()
+        self.getMode()
+
+    def getMode(self):
+        DUTInterfaceModeR = self.hw.getNode("DUTInterfaces.DUTInterfaceModeR").read()
+        self.hw.dispatch()
+        print "\t  DUT mode read back as:" , DUTInterfaceModeR
+        return DUTInterfaceModeR
+
+    def setFifoCSR(self, cmd):
+        self.hw.getNode("eventBuffer.EventFifoCSR").write(cmd)
+        self.hw.dispatch()
+        self.getFifoCSR()
+
+    def getFifoCSR(self):
+        FifoCSR= self.hw.getNode("eventBuffer.EventFifoCSR").read()
+        self.hw.dispatch()
+        print "\t  FIFO CSR read back as:", hex(FifoCSR)
+        return FifoCSR
+
+    def getFifoLevel(self):
+        FifoFill= self.hw.getNode("eventBuffer.EventFifoFillLevel").read()
+        self.hw.dispatch()
+        print "\t  FIFO level read back as:", hex(FifoFill)
+        return FifoFill
+
+    def setRecordDataStatus(self, status=False):
+        self.hw.getNode("Event_Formatter.Enable_Record_Data").write(status)
+        self.hw.dispatch()
+        self.getRecordDataStatus()
+
+    def getRecordDataStatus(self):
+        RecordStatus= self.hw.getNode("Event_Formatter.Enable_Record_Data").read()
+        self.hw.dispatch()
+        print "\t  Data recording:", RecordStatus
+        return RecordStatus
+
+    def pulseT0(self):
+        cmd = int("0x1",16)
+        self.hw.getNode("Shutter.PulseT0").write(cmd)
+        self.hw.dispatch()
+        print "\tPulsing T0"
+
+    def setTriggerVetoStatus(self, status=False):
+        self.hw.getNode("triggerLogic.TriggerVetoW").write(status)
+        self.hw.dispatch()
+        self.getTriggerVetoStatus()
+
+    def getTriggerVetoStatus(self):
+        trgVetoStatus= self.hw.getNode("triggerLogic.TriggerVetoR").read()
+        self.hw.dispatch()
+        print "\t  Trigger veto status read back as:", trgVetoStatus
+        return trgVetoStatus
+
+    def start(self, logtimestamps=False):
+        print "miniTLU STARTING..."
+
+        print "\tFIFO RESET:"
+        FIFOcmd= 0x2
+        self.setFifoCSR(FIFOcmd)
+
+        eventFifoFillLevel= self.getFifoLevel()
+
+        if logtimestamps:
+            print "\tData recording set: ON"
+            self.setRecordDataStatus(True)
+        else:
+            print "\tData recording set: OFF"
+            self.setRecordDataStatus(False)
+
+        # Pulse T0
+        self.pulseT0()
+
+        print "\tTurning off software trigger veto"
+        cmd = int("0x0",16)
+        self.setTriggerVetoStatus(cmd)
+
+        print "miniTLU RUNNING"
+
+    def stop(self):
+        print "miniTLU STOPPING..."
+
+        print "\tTurning on software trigger veto"
+        cmd = int("0x1",16)
+        self.setTriggerVetoStatus(cmd)
+
+        print "miniTLU STOPPED"
diff --git a/legacy/miniTLU/miniTLU.xml b/legacy/miniTLU/miniTLU.xml
new file mode 100644
index 00000000..78196f08
--- /dev/null
+++ b/legacy/miniTLU/miniTLU.xml
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<node id="miniTLU">
+
+<node id="DUTInterfaces" address="0x020" description="DUT Interfaces control registers">
+  <node id="DutMaskW"           address="0x0" permission="w" description="" />
+  <node id="IgnoreDUTBusyW"     address="0x1" permission="w" description="" />
+  <node id="IgnoreShutterVetoW" address="0x2" permission="w" description="" />
+  <node id="DUTInterfaceModeW"  address="0x3" permission="w" description="" />
+
+  <node id="DUTInterfaceModeModifierW"  address="0x4" permission="w" description="" />
+  <node id="DUTInterfaceModeR"  address="0xB" permission="r" description="" />
+  <node id="DUTInterfaceModeModifierR"  address="0xC" permission="r" description="" />
+  <node id="DutMaskR"           address="0x8" permission="r" description="" />
+  <node id="IgnoreDUTBusyR"     address="0x9" permission="r" description="" />
+  <node id="IgnoreShutterVetoR" address="0xA" permission="r" description="" />
+</node>
+
+<node id="triggerInputs" address="0x040" description="Inputs configuration">
+  <node id="SerdesRstW" address="0x0" permission="w" description="" />
+  <node id="SerdesRstR" address="0x8" permission="r" description="" />
+  <node id="ThrCount0R" address="0x9" permission="r" description="" />
+  <node id="ThrCount1R" address="0xa" permission="r" description="" />
+  <node id="ThrCount2R" address="0xb" permission="r" description="" />
+  <node id="ThrCount3R" address="0xc" permission="r" description="" />
+</node>
+
+<!--PulseStretchW			0x00000066     0xffffffff    0    1
+PulseDelayW 			0x00000067     0xffffffff    0    1
+PulseDelayR 			0x00000077     0xffffffff    1    0
+-->
+<node id="triggerLogic" address="0x060" description="Trigger logic configuration">
+  <node id="PostVetoTriggersR" address="0x10" permission="r" description="" />
+  <node id="PreVetoTriggersR" address="0x11" permission="r" description="" />
+  <node id="InternalTriggerIntervalW" address="0x2" permission="w" description="" />
+  <node id="InternalTriggerIntervalR" address="0x12" permission="r" description="" />
+  <node id="TriggerPatternW" address="0x3" permission="w" description="" />
+  <node id="TriggerPatternR" address="0x13" permission="r" description="" />
+  <node id="TriggerVetoW" address="0x4" permission="w" description="" />
+  <node id="TriggerVetoR" address="0x14" permission="r" description="" />
+  <node id="ExternalTriggerVetoR" address="0x15" permission="r" description="" />
+  <node id="ResetCountersW" address="0x6" permission="w" description="" />
+  <node id="PulseStretchR" address="0x17" permission="r" description="" />
+  <node id="PulseStretchW" address="0x7" permission="w" description="" />
+  <node id="TriggerHoldOffR" address="0x18" permission="r" description="" />
+  <node id="TriggerHoldOffW" address="0x8" permission="W" description="" />
+  <node id="AuxTriggerCountR" address="0x19" permission="r" description="" />
+</node>
+
+<node id="eventBuffer" address="0x080" description="Event buffer">
+  <node id="EventFifoData" address="0x0" mode="non-incremental" size="32000" permission="r" description="" />
+  <node id="EventFifoFillLevel" address="0x1" permission="r" description="" />
+  <node id="EventFifoCSR" address="0x2" permission="rw" description="" />
+  <node id="EventFifoFillLevelFlags" address="0x3" permission="r" description="" />
+</node>
+
+
+<node id="logic_clocks" address="0x0A0" description="Clocks configuration">
+  <node id="LogicClocksCSR" address="0x0" permission="rw" description="" />
+  <node id="LogicRst" address="0x1" permission="w" description="" />
+</node>
+
+<node id="i2c_master"      address="0x0C0" description="I2C Master interface">
+  <node id="i2c_pre_lo"    address="0x0" mask="0x000000ff" permission="rw" description="" />
+  <node id="i2c_pre_hi"    address="0x1" mask="0x000000ff" permission="rw" description="" />
+  <node id="i2c_ctrl"      address="0x2" mask="0x000000ff" permission="rw" description="" />
+  <node id="i2c_rxtx"      address="0x3" mask="0x000000ff" permission="rw" description="" />
+  <node id="i2c_cmdstatus" address="0x4" mask="0x000000ff" permission="rw" description="" />
+</node>
+
+<node id="Event_Formatter"      address="0x140" description="Event formatter configuration">
+  <node id="Enable_Record_Data" address="0x0" permission="rw" description="" />
+  <node id="ResetTimestampW"    address="0x1" permission="w" description="" />
+  <node id="CurrentTimestampLR" address="0x2" permission="r" description="" />
+  <node id="CurrentTimestampHR" address="0x3" permission="r" description="" />
+</node>
+
+<node id="Shutter"    address="0x160" description="Shutter/T0 control">
+  <node id="ShutterStateW" address="0x0" permission="w" description=""/>
+  <node id="PulseT0"  address="0x1" permission="w" description=""/>
+</node>
+
+<node id="version" address="0x0" description="firmware version" permission="r">
+</node>
+
+
+</node>
diff --git a/legacy/miniTLU/miniTLU_old.xml b/legacy/miniTLU/miniTLU_old.xml
new file mode 100644
index 00000000..ec0373c4
--- /dev/null
+++ b/legacy/miniTLU/miniTLU_old.xml
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<node id="miniTLU">
+
+<node id="DUTInterfaces" address="0x020" description="DUT Interfaces control registers">
+  <node id="DutMaskW"           address="0x0" permission="w" description="" />
+  <node id="IgnoreDUTBusyW"     address="0x1" permission="w" description="" />
+  <node id="IgnoreShutterVetoW" address="0x2" permission="w" description="" />
+  <node id="DutMaskR"           address="0x4" permission="r" description="" />
+  <node id="IgnoreDUTBusyR"     address="0x5" permission="r" description="" />
+  <node id="IgnoreShutterVetoR" address="0x6" permission="r" description="" />
+</node>
+
+<node id="triggerInputs" address="0x040" description="Inputs configuration">
+  <node id="SerdesRst" address="0x0" permission="w" description="" />
+  <node id="SerdesRstR" address="0x8" permission="r" description="" />
+  <node id="ThrCount0R" address="0x9" permission="r" description="" />
+  <node id="ThrCount1R" address="0xa" permission="r" description="" />
+  <node id="ThrCount2R" address="0xb" permission="r" description="" />
+  <node id="ThrCount3R" address="0xc" permission="r" description="" />
+</node>
+
+<node id="triggerLogic" address="0x060" description="Trigger logic configuration">
+  <node id="PostVetoTriggersR" address="0x10" permission="r" description="" />
+  <node id="PreVetoTriggersR" address="0x11" permission="r" description="" />
+  <node id="InternalTriggerIntervalW" address="0x2" permission="w" description="" />
+  <node id="InternalTriggerIntervalR" address="0x12" permission="r" description="" />
+  <node id="TriggerPatternW" address="0x3" permission="w" description="" />
+  <node id="TriggerPatternR" address="0x13" permission="r" description="" />
+  <node id="TriggerVetoW" address="0x4" permission="w" description="" />
+  <node id="TriggerVetoR" address="0x14" permission="r" description="" />
+  <node id="ExternalTriggerVetoR" address="0x15" permission="r" description="" />
+  <node id="ResetCountersW" address="0x6" permission="w" description="" />
+  <node id="PulseStretchR" address="0x17" permission="r" description="" />
+  <node id="PulseStretchW" address="0x7" permission="w" description="" />
+  <node id="TriggerHoldOffR" address="0x18" permission="r" description="" />
+  <node id="TriggerHoldOffW" address="0x8" permission="r" description="" />
+  <node id="AuxTriggerCountR" address="0x19" permission="r" description="" />
+</node>
+
+<node id="eventBuffer" address="0x080" description="Event buffer">
+  <node id="EventFifoData" address="0x0" mode="non-incremental" size="32000" permission="r" description="" />
+  <node id="EventFifoFillLevel" address="0x1" permission="r" description="" />
+  <node id="EventFifoCSR" address="0x2" permission="rw" description="" />
+  <node id="EventFifoFillLevelFlags" address="0x3" permission="r" description="" />
+</node>
+
+<node id="logic_clocks" address="0x0A0" description="Clocks configuration">
+  <node id="LogicClocksCSR" address="0x0" permission="rw" description="" />
+  <node id="LogicRst" address="0x1" permission="w" description="" />
+</node>
+
+<node id="i2c_master" address="0x0C0" description="I2C Master interface">
+  <node id="i2c_pre_lo" address="0x0" mask="0x000000ff" permission="rw" description="" />
+  <node id="i2c_pre_hi" address="0x1" mask="0x000000ff" permission="rw" description="" />
+  <node id="i2c_ctrl" address="0x2" mask="0x000000ff" permission="rw" description="" />
+  <node id="i2c_rxtx" address="0x3" mask="0x000000ff" permission="rw" description="" />
+  <node id="i2c_cmdstatus" address="0x4" mask="0x000000ff" permission="rw" description="" />
+</node>
+
+
+
+<node id="Event_Formatter" address="0x140" description="Event formatter configuration">
+  <node id="Enable_Record_Data" address="0x0" permission="rw" description="" />
+  <node id="ResetTimestampW" address="0x1" permission="w" description="" />
+  <node id="CurrentTimestampLR" address="0x2" permission="r" description="" />
+  <node id="CurrentTimestampHR" address="0x3" permission="r" description="" />
+</node>
+
+<node id="version" address="0x0" description="firmware version" permission="r">
+</node>
+
+
+</node>
diff --git a/legacy/miniTLU/startTLU_v6.py b/legacy/miniTLU/startTLU_v6.py
new file mode 100644
index 00000000..b7948f20
--- /dev/null
+++ b/legacy/miniTLU/startTLU_v6.py
@@ -0,0 +1,232 @@
+#
+# Script to setup AIDA TLU for TPix3 telescope <--> TORCH synchronization
+#
+# David Cussans, December 2012
+#
+# Nasty hack - use both PyChips and uHAL ( for block read ... )
+
+from PyChipsUser import *
+from FmcTluI2c import *
+
+import uhal
+
+import sys
+
+import time
+
+from datetime import datetime
+
+from optparse import OptionParser
+
+# For single character non-blocking input:
+import select
+import tty
+import termios
+
+from initTLU import *
+
+def isData():
+    return select.select([sys.stdin], [], [], 0) == ([sys.stdin], [], [])
+
+now = datetime.now().strftime('%Y-%m-%dT%H_%M_%S')
+default_filename = 'tluData_' + now + '.root'
+parser = OptionParser()
+
+parser.add_option('-r','--rootFname',dest='rootFname',
+                       default=default_filename,help='Path of output file')
+parser.add_option('-o','--writeTimestamps',dest='writeTimestamps',
+                       default="True",help='Set True to write timestamps to ROOT file')
+parser.add_option('-p','--printTimestamps',dest='printTimestamps',
+                       default="True",help='Set True to print timestamps to screen (nothing printed unless also output to file) ')
+parser.add_option('-s','--listenForTelescopeShutter',dest='listenForTelescopeShutter',
+                       default=False,help='Set True to veto triggers when shutter goes high')
+parser.add_option('-d','--pulseDelay',dest='pulseDelay', type=int,
+                       default=0x00,help='Delay added to input triggers. Four 5-bit numbers packed into 32-bt word, Units of 6.125ns')
+parser.add_option('-w','--pulseStretch',dest='pulseStretch',type=int,
+                       default=0x00,help='Width added to input triggers. Four 5-bit numbers packed into 32-bt word. Units of 6.125ns')
+parser.add_option('-t','--triggerPattern',dest='triggerPattern',type=int,
+                       default=0xFFFEFFFE,help='Pattern match to generate trigger. Two 16-bit words packed into 32-bit word.')
+parser.add_option('-m','--DUTMask',dest='DUTMask',type=int,
+                       default=0x01,help='Three-bit mask selecting which DUTs are active.')
+parser.add_option('-y','--ignoreDUTBusy',dest='ignoreDUTBusy',type=int,
+                       default=0x0F,help='Three-bit mask selecting which DUTs can veto triggers by setting BUSY high. Low = can veto, high = ignore busy.')
+parser.add_option('-i','--triggerInterval',dest='triggerInterval',type=int,
+                       default=0,help='Interval between internal trigers ( in units of 6.125ns ). Set to zero to turn off internal triggers')
+parser.add_option('-v','--thresholdVoltage',dest='thresholdVoltage',type=float,
+                       default=-0.2,help='Threshold voltage for TLU inputs ( units of volts)')
+
+(options, args) = parser.parse_args(sys.argv[1:])
+
+from ROOT import TFile, TTree
+from ROOT import gROOT
+
+print "SETTING UP AIDA TLU TO SUPPLY CLOCK AND TRIGGER TO TORCH READOUT\n"
+
+# Point to board in uHAL
+manager = uhal.ConnectionManager("file://./connection.xml")
+hw = manager.getDevice("minitlu")
+device_id = hw.id()
+
+# Point to TLU in Pychips
+bAddrTab = AddressTable("./aida_mini_tlu_addr_map.txt")
+
+# Assume DIP-switch controlled address. Switches at 2
+board = ChipsBusUdp(bAddrTab,"192.168.200.32",50001)
+
+# Open Root file
+print "OPENING ROOT FILE:", options.rootFname
+f = TFile( options.rootFname, 'RECREATE' )
+
+# Create a root "tree"
+tree = TTree( 'T', 'TLU Data' )
+highWord =0
+lowWord =0
+evtNumber=0
+timeStamp=0
+evtType=0
+trigsFired=0
+bufPos = 0
+
+# Create a branch for each piece of data
+tree.Branch( 'tluHighWord'  , highWord  , "HighWord/l")
+tree.Branch( 'tluLowWord'   , lowWord   , "LowWord/l")
+tree.Branch( 'tluTimeStamp' , timeStamp , "TimeStamp/l")
+tree.Branch( 'tluBufPos'    , bufPos    , "Bufpos/s")
+tree.Branch( 'tluEvtNumber' , evtNumber , "EvtNumber/i")
+tree.Branch( 'tluEvtType'   , evtType   , "EvtType/b")
+tree.Branch( 'tluTrigFired' , trigsFired, "TrigsFired/b")
+
+# Initialize TLU registers
+initTLU( uhalDevice = hw, pychipsBoard = board, listenForTelescopeShutter = options.listenForTelescopeShutter, pulseDelay = options.pulseDelay, pulseStretch = options.pulseStretch, triggerPattern = options.triggerPattern , DUTMask = options.DUTMask, ignoreDUTBusy = options.ignoreDUTBusy , triggerInterval = options.triggerInterval, thresholdVoltage = options.thresholdVoltage )
+
+loopWait = 0.1
+oldEvtNumber = 0
+
+oldPreVetotriggerCount = board.read("PreVetoTriggersR")
+oldPostVetotriggerCount = board.read("PostVetoTriggersR")
+
+oldThresholdCounter0 =0
+oldThresholdCounter1 =0
+oldThresholdCounter2 =0
+oldThresholdCounter3 =0
+
+print "STARTING POLLING LOOP"
+
+eventFifoFillLevel = 0
+loopRunning = True
+runStarted = False
+
+oldTime = time.time()
+
+# Save old terminal settings
+oldTermSettings = termios.tcgetattr(sys.stdin)
+tty.setcbreak(sys.stdin.fileno())
+
+while loopRunning:
+
+    if isData():
+        c = sys.stdin.read(1)
+        print "\tGOT INPUT:", c
+        if c == 't':
+            loopRunning = False
+            print "\tTERMINATING LOOP"
+        elif c == 'c':
+            runStarted = True
+            print "\tSTARTING RUN"
+            startTLU( uhalDevice = hw, pychipsBoard = board,  writeTimestamps = ( options.writeTimestamps == "True" ) )
+        elif c == 'f':
+            # runStarted = True
+            print "\tSTOPPING TRIGGERS"
+            stopTLU( uhalDevice = hw, pychipsBoard = board )
+
+
+    if runStarted:
+
+        eventFifoFillLevel = hw.getNode("eventBuffer.EventFifoFillLevel").read()
+
+        preVetotriggerCount = hw.getNode("triggerLogic.PreVetoTriggersR").read()
+        postVetotriggerCount = hw.getNode("triggerLogic.PostVetoTriggersR").read()
+
+        timestampHigh = hw.getNode("Event_Formatter.CurrentTimestampHR").read()
+        timestampLow  = hw.getNode("Event_Formatter.CurrentTimestampLR").read()
+
+        thresholdCounter0 = hw.getNode("triggerInputs.ThrCount0R").read()
+        thresholdCounter1 = hw.getNode("triggerInputs.ThrCount1R").read()
+        thresholdCounter2 = hw.getNode("triggerInputs.ThrCount2R").read()
+        thresholdCounter3 = hw.getNode("triggerInputs.ThrCount3R").read()
+
+        hw.dispatch()
+
+        newTime = time.time()
+        timeDelta = newTime - oldTime
+        oldTime = newTime
+        #print "time delta = " , timeDelta
+        preVetoFreq = (preVetotriggerCount-oldPreVetotriggerCount)/timeDelta
+        postVetoFreq = (postVetotriggerCount-oldPostVetotriggerCount)/timeDelta
+        oldPreVetotriggerCount = preVetotriggerCount
+        oldPostVetotriggerCount = postVetotriggerCount
+
+        deltaCounts0 = thresholdCounter0 - oldThresholdCounter0
+        oldThresholdCounter0 = thresholdCounter0
+        deltaCounts1 = thresholdCounter1 - oldThresholdCounter1
+        oldThresholdCounter1 = thresholdCounter1
+        deltaCounts2 = thresholdCounter2 - oldThresholdCounter2
+        oldThresholdCounter2 = thresholdCounter2
+        deltaCounts3 = thresholdCounter3 - oldThresholdCounter3
+        oldThresholdCounter3 = thresholdCounter3
+
+        print "pre , post  veto triggers , pre , post frequency = " , preVetotriggerCount , postVetotriggerCount , preVetoFreq , postVetoFreq
+
+        print "CURRENT TIMESTAMP HIGH, LOW (hex) = " , hex(timestampHigh) , hex(timestampLow)
+
+        print "Input counts 0,1,2,3 = "      , thresholdCounter0 , thresholdCounter1 , thresholdCounter2 , thresholdCounter3
+        print "Input freq (Hz) 0,1,2,3 = " , deltaCounts0/timeDelta , deltaCounts1/timeDelta , deltaCounts2/timeDelta , deltaCounts3/timeDelta
+
+        nEvents = int(eventFifoFillLevel)//4  # only read out whole events ( 4 x 32-bit words )
+        wordsToRead =  nEvents*4
+
+        print "FIFO FILL LEVEL= " , eventFifoFillLevel
+
+        print "# EVENTS IN FIFO = ",nEvents
+        print "WORDS TO READ FROM FIFO  = ",wordsToRead
+
+        # get timestamp data and fifo fill in same outgoing packet.
+        timestampData = hw.getNode("eventBuffer.EventFifoData").readBlock(wordsToRead)
+
+        hw.dispatch()
+
+    #    print timestampData
+        for bufPos in range (0, nEvents ):
+            lowWord  = timestampData[bufPos*4 + 1] + 0x100000000* timestampData[ (bufPos*4) + 0] # timestamp
+
+            highWord = timestampData[bufPos*4 + 3] + 0x100000000* timestampData[ (bufPos*4) + 2] # evt number
+            evtNumber = timestampData[bufPos*4 + 3]
+
+            if evtNumber != ( oldEvtNumber + 1 ):
+                print "***WARNING *** Non sqeuential event numbers *** , evt,oldEvt = ",  evtNumber , oldEvtNumber
+
+            oldEvtNumber = evtNumber
+
+            timeStamp = lowWord & 0xFFFFFFFFFFFF
+
+            evtType = timestampData[ (bufPos*4) + 0] >> 28
+
+            trigsFired = (timestampData[ (bufPos*4) + 0] >> 16) & 0xFFF
+
+            if (options.printTimestamps == "True" ):
+                print "bufferPos, highWord , lowWord , event-number , timestamp , evtType = %x %016x %016x %08x %012x %01x %03x" % ( bufPos , highWord , lowWord, evtNumber , timeStamp , evtType , trigsFired)
+
+            # Fill root branch - see example in http://wlav.web.cern.ch/wlav/pyroot/tpytree.html : write raw data and decoded data for now.
+            tree.Fill()
+
+    time.sleep( loopWait)
+
+# Fixme - at the moment infinite loop.
+preVetotriggerCount = board.read("PreVetoTriggersR")
+postVetotriggerCount = board.read("PostVetoTriggersR")
+print "EXIT POLLING LOOP"
+print "\nTRIGGER COUNT AT THE END OF RUN [pre, post]:" , preVetotriggerCount , postVetotriggerCount
+
+termios.tcsetattr(sys.stdin, termios.TCSADRAIN, oldTermSettings)
+f.Write()
+f.Close()
diff --git a/legacy/miniTLU/startTLU_v6.sh b/legacy/miniTLU/startTLU_v6.sh
new file mode 100755
index 00000000..beef09b1
--- /dev/null
+++ b/legacy/miniTLU/startTLU_v6.sh
@@ -0,0 +1,24 @@
+#!/bin/bash
+
+echo "=========================="
+CURRENT_DIR=${0%/*}
+echo "CURRENT DIRECTORY: " $CURRENT_DIR
+
+echo "============"
+echo "SETTING PATHS"
+#export PYTHONPATH=$CURRENT_DIR/../../../../PyChips_1_5_0_pre2A/src
+export PYTHONPATH=$CURRENT_DIR/../../../../Python_Scripts/PyChips_1_5_0_pre2A/src:$PYTHONPATH
+echo "PYTHON PATH= " $PYTHONPATH
+export LD_LIBRARY_PATH=/opt/cactus/lib:$LD_LIBRARY_PATH
+echo "LD_LIBRARY_PATH= " $LD_LIBRARY_PATH
+export PATH=/usr/bin/:/opt/cactus/bin:$PATH
+echo "PATH= " $PATH
+
+cd $CURRENT_DIR
+
+echo "============"
+echo "STARTING PYTHON SCRIPT"
+#python $CURRENT_DIR/startTLU_v8.py $@
+
+python startTLU_v8.py $@
+#python testTLU_script.py
diff --git a/legacy/miniTLU/startTLU_v8.py b/legacy/miniTLU/startTLU_v8.py
new file mode 100644
index 00000000..2ad4aace
--- /dev/null
+++ b/legacy/miniTLU/startTLU_v8.py
@@ -0,0 +1,70 @@
+# miniTLU test script
+
+#from PyChipsUser import *
+from FmcTluI2c import *
+import uhal
+import sys
+import time
+# from ROOT import TFile, TTree
+# from ROOT import gROOT
+from datetime import datetime
+
+from miniTLU import MiniTLU
+# Use to have interactive shell
+import cmd
+
+class MyPrompt(cmd.Cmd):
+
+
+    def do_startRun(self, args):
+	"""Starts the TLU run"""
+	print "COMMAND RECEIVED: STARTING TLU RUN"
+	startTLU( uhalDevice = self.hw, pychipsBoard = self.board,  writeTimestamps = ( options.writeTimestamps == "True" ) )
+	#print self.hw
+
+    def do_stopRun(self, args):
+	"""Stops the TLU run"""
+	print "COMMAND RECEIVED: STOP TLU RUN"
+	#stopTLU( uhalDevice = hw, pychipsBoard = board )
+
+    def do_quit(self, args):
+        """Quits the program."""
+        print "COMMAND RECEIVED: QUITTING SCRIPT."
+        #raise SystemExit
+	return True
+
+# # Override methods in Cmd object ##
+#     def preloop(self):
+#         """Initialization before prompting user for commands.
+#            Despite the claims in the Cmd documentaion, Cmd.preloop() is not a stub.
+#         """
+#         cmd.Cmd.preloop(self)  # # sets up command completion
+#         self._hist = []  # # No history yet
+#         self._locals = {}  # # Initialize execution namespace for user
+#         self._globals = {}
+#         print "\nINITIALIZING"
+#         now = datetime.now().strftime('%Y-%m-%dT%H_%M_%S')
+#         default_filename = './rootfiles/tluData_' + now + '.root'
+#         print "SETTING UP AIDA TLU TO SUPPLY CLOCK AND TRIGGER TO TORCH READOUT\n"
+#         self.manager = uhal.ConnectionManager("file://./connection.xml")
+#         self.hw = self.manager.getDevice("minitlu")
+#         self.device_id = self.hw.id()
+#
+#         # Point to TLU in Pychips
+#         self.bAddrTab = AddressTable("./aida_mini_tlu_addr_map.txt")
+#
+#         # Assume DIP-switch controlled address. Switches at 2
+#         self.board = ChipsBusUdp(self.bAddrTab,"192.168.200.32",50001)
+
+
+#################################################
+if __name__ == "__main__":
+    miniTLU= MiniTLU("minitlu", "file://./connection.xml")
+    miniTLU.initialize()
+
+    logdata= False
+    miniTLU.start(logdata)
+    miniTLU.stop()
+    # prompt = MyPrompt()
+    # prompt.prompt = '>> '
+    # prompt.cmdloop("Welcome to miniTLU test console.\nType HELP for a list of commands.")
diff --git a/legacy/miniTLU/testTLU_script.py b/legacy/miniTLU/testTLU_script.py
new file mode 100644
index 00000000..9d8b334b
--- /dev/null
+++ b/legacy/miniTLU/testTLU_script.py
@@ -0,0 +1,79 @@
+# miniTLU test script
+
+from FmcTluI2c import *
+import uhal
+import sys
+import time
+from I2CuHal import I2CCore
+from miniTLU import MiniTLU
+from datetime import datetime
+
+if __name__ == "__main__":
+    print "\tTEST TLU SCRIPT"
+    miniTLU= MiniTLU("minitlu", "file://./connection.xml")
+    #(self, target, wclk, i2cclk, name="i2c", delay=None)
+    TLU_I2C= I2CCore(miniTLU.hw, 10, 5, "i2c_master", None)
+    TLU_I2C.state()
+
+
+    #READ CONTENT OF EEPROM ON 24AA02E48 (0xFA - 0XFF)
+    mystop= 1
+    time.sleep(0.1)
+    myaddr= [0xfa]
+    TLU_I2C.write( 0x50, myaddr, mystop)
+    res=TLU_I2C.read( 0x50, 6)
+    print "Checkin EEPROM:"
+    result="\t"
+    for iaddr in res:
+        result+="%02x "%(iaddr)
+    print result
+
+    #SCAN I2C ADDRESSES
+    #WRITE PROM
+    #WRITE DAC
+
+
+    #Convert required threshold voltage to DAC code
+    #def convert_voltage_to_dac(self, desiredVoltage, Vref=1.300):
+    print("Writing DAC setting:")
+    Vref= 1.300
+    desiredVoltage= 3.3
+    channel= 0
+    i2cSlaveAddrDac = 0x1F
+    vrefOn= 0
+    Vdaq = ( desiredVoltage + Vref ) / 2
+    dacCode = 0xFFFF * Vdaq / Vref
+    dacCode= 0x391d
+    print "\tVreq:", desiredVoltage
+    print "\tDAC code:"  , dacCode
+    print "\tCH:", channel
+    print "\tIntRef:", vrefOn
+
+    #Set DAC value
+    #def set_dac(self,channel,value , vrefOn = 0 , i2cSlaveAddrDac = 0x1F):
+    if channel<0 or channel>7:
+        print "set_dac ERROR: channel",channel,"not in range 0-7 (bit mask)"
+        ##return -1
+    if dacCode<0 or dacCode>0xFFFF:
+        print "set_dac ERROR: value",dacCode ,"not in range 0-0xFFFF"
+        ##return -1
+    # AD5665R chip with A0,A1 tied to ground
+    #i2cSlaveAddrDac = 0x1F   # seven bit address, binary 00011111
+
+    # print "I2C address of DAC = " , hex(i2cSlaveAddrDac)
+    # dac = RawI2cAccess(self.i2cBusProps, i2cSlaveAddrDac)
+    # # if we want to enable internal voltage reference:
+
+    if vrefOn:
+        # enter vref-on mode:
+        print "\tTurning internal reference ON"
+        #dac.write([0x38,0x00,0x01])
+        TLU_I2C.write( i2cSlaveAddrDac, [0x38,0x00,0x01], 0)
+    else:
+        print "\tTurning internal reference OFF"
+        #dac.write([0x38,0x00,0x00])
+        TLU_I2C.write( i2cSlaveAddrDac, [0x38,0x00,0x00], 0)
+    # Now set the actual value
+    sequence=[( 0x18 + ( channel &0x7 ) ) , int(dacCode/256)&0xff , int(dacCode)&0xff]
+    print "\tWriting byte sequence:", sequence
+    TLU_I2C.write( i2cSlaveAddrDac, sequence, 0)
diff --git a/legacy/miniTLU/test_T0.py b/legacy/miniTLU/test_T0.py
new file mode 100644
index 00000000..cf81b33d
--- /dev/null
+++ b/legacy/miniTLU/test_T0.py
@@ -0,0 +1,92 @@
+#
+# Script to exercise AIDA mini-TLU
+#
+# David Cussans, December 2012
+# 
+# Nasty hack - use both PyChips and uHAL ( for block read ... )
+
+from PyChipsUser import *
+from FmcTluI2c import *
+
+import sys
+import time
+
+
+# Point to TLU in Pychips
+bAddrTab = AddressTable("./aida_mini_tlu_addr_map.txt")
+# Assume DIP-switch controlled address. Switches at 2 
+board = ChipsBusUdp(bAddrTab,"192.168.200.32",50001)
+
+# Check the bus for I2C devices
+boardi2c = FmcTluI2c(board)
+
+firmwareID=board.read("FirmwareId")
+
+print "Firmware (from PyChips) = " , hex(firmwareID)
+
+print "Scanning I2C bus:"
+scanResults = boardi2c.i2c_scan()
+print scanResults
+
+boardId = boardi2c.get_serial_number()
+print "FMC-TLU serial number = " , boardId
+
+resetClocks = 0
+ 
+
+
+clockStatus = board.read("LogicClocksCSR")
+print "Clock status = " , hex(clockStatus)
+
+if resetClocks:
+    print "Resetting clocks"
+    board.write("LogicRst", 1 )
+
+    clockStatus = board.read("LogicClocksCSR")
+    print "Clock status after reset = " , hex(clockStatus)
+
+
+board.write("InternalTriggerIntervalW",0)
+
+print "Enabling DUT 0 and 1"
+board.write("DUTMaskW",3)
+DUTMask = board.read("DUTMaskR")
+print "DUTMaskR = " , DUTMask
+
+print "Ignore veto on DUT 0 and 1"
+board.write("IgnoreDUTBusyW",3)
+IgnoreDUTBusy = board.read("IgnoreDUTBusyR")
+print "IgnoreDUTBusyR = " , IgnoreDUTBusy
+
+print "Turning off software trigger veto"
+board.write("TriggerVetoW",0)
+
+print "Reseting FIFO"
+board.write("EventFifoCSR",0x2)
+eventFifoFillLevel = board.read("EventFifoFillLevel")
+print "FIFO fill level after resetting FIFO = " , eventFifoFillLevel
+
+print "Enabling data recording"
+board.write("Enable_Record_Data",1)
+
+#print "Enabling handshake: No-handshake"
+#board.write("HandshakeTypeW",1)
+
+#TriggerInterval = 400000
+TriggerInterval = 0
+print "Setting internal trigger interval to " , TriggerInterval
+board.write("InternalTriggerIntervalW",TriggerInterval)  #0->Internal pulse generator disabled. Any other value will generate pulses with a frequency of n*6.25ns
+trigInterval = board.read("InternalTriggerIntervalR")
+print "Trigger interval read back as ", trigInterval
+
+print "Setting TPix_maskexternal to ignore external shutter and T0"
+board.write("TPix_maskexternal",0x0003)
+
+numLoops = 500000
+oldEvtNumber = 0
+
+for iLoop in range(0,numLoops):
+
+    board.write("TPix_T0", 0x0001)
+
+#   time.sleep( 1.0)
diff --git a/legacy/packages/AD5665R.py b/legacy/packages/AD5665R.py
new file mode 100644
index 00000000..d7d507de
--- /dev/null
+++ b/legacy/packages/AD5665R.py
@@ -0,0 +1,45 @@
+# -*- coding: utf-8 -*-
+import uhal
+from I2CuHal import I2CCore
+import StringIO
+
+
+class AD5665R:
+    #Class to configure the DAC modules
+
+    def __init__(self, i2c, slaveaddr=0x1F):
+        self.i2c = i2c
+        self.slaveaddr = slaveaddr
+
+
+    def setIntRef(self, intRef=False, verbose=False):
+        mystop=True
+        if intRef:
+            cmdDAC= [0x38,0x00,0x01]
+        else:
+            cmdDAC= [0x38,0x00,0x00]
+        self.i2c.write( self.slaveaddr, cmdDAC, mystop)
+        if verbose:
+            print "DAC int ref:", intRef
+
+
+    def writeDAC(self, dacCode, channel, verbose=False):
+        #Vtarget is the required voltage, channel is the DAC channel to target
+        #intRef indicates whether to use the external voltage reference (True)
+        #or the internal one (False).
+
+        print "\tDAC value:"  , hex(dacCode)
+        if channel<0 or channel>7:
+            print "writeDAC ERROR: channel",channel,"not in range 0-7 (bit mask)"
+            return -1
+        if dacCode<0:
+            print "writeDAC ERROR: value",dacCode,"<0. Default to 0"
+            dacCode=0
+        elif dacCode>0xFFFF :
+            print "writeDAC ERROR: value",dacCode,">0xFFFF. Default to 0xFFFF"
+            dacCode=0xFFFF
+
+        sequence=[( 0x18 + ( channel &0x7 ) ) , int(dacCode/256)&0xff , int(dacCode)&0xff]
+        print "\tWriting DAC string:", sequence
+        mystop= False
+        self.i2c.write( self.slaveaddr, sequence, mystop)
diff --git a/legacy/packages/E24AA025E48T.py b/legacy/packages/E24AA025E48T.py
new file mode 100644
index 00000000..32cc429c
--- /dev/null
+++ b/legacy/packages/E24AA025E48T.py
@@ -0,0 +1,20 @@
+# -*- coding: utf-8 -*-
+import uhal
+from I2CuHal import I2CCore
+import StringIO
+
+class E24AA025E48T:
+    #Class to configure the EEPROM
+
+    def __init__(self, i2c, slaveaddr=0x50):
+        self.i2c = i2c
+        self.slaveaddr = slaveaddr
+
+
+    def readEEPROM(self, startadd, nBytes):
+        #Read EEPROM memory locations
+        mystop= False
+        myaddr= [startadd]#0xfa
+        self.i2c.write( self.slaveaddr, [startadd], mystop)
+        res= self.i2c.read( self.slaveaddr, nBytes)
+        return res
diff --git a/legacy/packages/FmcTluI2c.py b/legacy/packages/FmcTluI2c.py
new file mode 100644
index 00000000..04bf5985
--- /dev/null
+++ b/legacy/packages/FmcTluI2c.py
@@ -0,0 +1,132 @@
+import time
+#from PyChipsUser import *
+from I2cBusProperties import *
+from RawI2cAccess import *
+
+
+class FmcTluI2c:
+
+
+    ############################
+    ### configure i2c connection
+    ############################
+    def __init__(self,board):
+        self.board = board
+        i2cClockPrescale = 0x30
+        self.i2cBusProps = I2cBusProperties(self.board, i2cClockPrescale)
+        return
+
+
+    ##########################
+    ### scan all i2c addresses
+    ##########################
+    def i2c_scan(self):
+        list=[]
+        for islave in range(128):
+            i2cscan = RawI2cAccess(self.i2cBusProps, islave)
+            try:
+                i2cscan.write([0x00])
+                device="slave address "+hex(islave)+" "
+                if islave==0x1f:
+                    device+="(DAC)"
+                elif islave==0x50:
+                    device+="(serial number PROM)"
+                elif islave>=0x54 and islave<=0x57:
+                    device+="(sp601 onboard EEPROM)"
+                else:
+                    device+="(???)"
+                    pass
+                list.append(device)
+                pass
+            except:
+                pass
+            pass
+        return list
+
+
+    ###################
+    ### write to EEPROM
+    ###################
+    def eeprom_write(self,address,value):
+        if address<0 or address>127:
+            print "eeprom_write ERROR: address",address,"not in range 0-127"
+            return
+        if value<0 or value>255:
+            print "eeprom_write ERROR: value",value,"not in range 0-255"
+            return
+        i2cSlaveAddr = 0x50   # seven bit address, binary 1010000
+        prom = RawI2cAccess(self.i2cBusProps, i2cSlaveAddr)
+        prom.write([address,value])
+        time.sleep(0.01) # write cycle time is 5ms. let's wait 10 to make sure.
+        return
+
+
+    ####################
+    ### read from EEPROM
+    ####################
+    def eeprom_read(self,address):
+        if address<0 or address>255:
+            print "eeprom_write ERROR: address",address,"not in range 0-127"
+            return
+        i2cSlaveAddr = 0x50   # seven bit address, binary 1010000
+        prom = RawI2cAccess(self.i2cBusProps, i2cSlaveAddr)
+        prom.write([address])
+        return prom.read(1)[0]
+
+
+    ######################
+    ### read serial number
+    ######################
+    def get_serial_number(self):
+        result=""
+        for iaddr in [0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff]:
+            result+="%02x "%(self.eeprom_read(iaddr))
+            pass
+        return result
+
+
+    #################
+    ### set DAC value
+    #################
+    def set_dac(self,channel,value , vrefOn = 0 , i2cSlaveAddrDac = 0x1F):
+        if channel<0 or channel>7:
+            print "set_dac ERROR: channel",channel,"not in range 0-7 (bit mask)"
+            return -1
+        if value<0 or value>0xFFFF:
+            print "set_dac ERROR: value",value,"not in range 0-0xFFFF"
+            return -1
+        # AD5665R chip with A0,A1 tied to ground
+        #i2cSlaveAddrDac = 0x1F   # seven bit address, binary 00011111
+        print "I2C address of DAC = " , hex(i2cSlaveAddrDac)
+        dac = RawI2cAccess(self.i2cBusProps, i2cSlaveAddrDac)
+        # if we want to enable internal voltage reference:
+        if vrefOn:
+            # enter vref-on mode:
+	    print "Turning internal reference ON"
+            dac.write([0x38,0x00,0x01])
+        else:
+	    print "Turning internal reference OFF"
+            dac.write([0x38,0x00,0x00])
+        # now set the actual value
+        sequence=[( 0x18 + ( channel &0x7 ) ) , (value/256)&0xff , value&0xff]
+        print sequence
+        dac.write(sequence)
+
+
+
+    ##################################################
+    ### convert required threshold voltage to DAC code
+    ##################################################
+    def convert_voltage_to_dac(self, desiredVoltage, Vref=1.300):
+        Vdaq = ( desiredVoltage + Vref ) / 2
+        dacCode = 0xFFFF * Vdaq / Vref
+        return int(dacCode)
+
+
+    ##################################################
+    ### calculate the DAC code required and set DAC
+    ##################################################
+    def set_threshold_voltage(self, channel , voltage ):
+        dacCode = self.convert_voltage_to_dac(voltage)
+        print " requested voltage, calculated DAC code = " , voltage , dacCode
+        self.set_dac(channel , dacCode)
diff --git a/legacy/packages/I2CuHal.py b/legacy/packages/I2CuHal.py
new file mode 100644
index 00000000..b51169a7
--- /dev/null
+++ b/legacy/packages/I2CuHal.py
@@ -0,0 +1,281 @@
+# -*- coding: utf-8 -*-
+"""
+
+"""
+
+import time
+
+import uhal
+
+verbose = True
+
+
+
+################################################################################
+# /*
+#        I2C CORE
+# */
+################################################################################
+
+
+
+
+class I2CCore:
+    """I2C communication block."""
+
+    # Define bits in cmd_stat register
+    startcmd = 0x1 << 7
+    stopcmd = 0x1 << 6
+    readcmd = 0x1 << 5
+    writecmd = 0x1 << 4
+    ack = 0x1 << 3
+    intack = 0x1
+
+    recvdack = 0x1 << 7
+    busy = 0x1 << 6
+    arblost = 0x1 << 5
+    inprogress = 0x1 << 1
+    interrupt = 0x1
+
+    def __init__(self, target, wclk, i2cclk, name="i2c", delay=None):
+        self.target = target
+        self.name = name
+        self.delay = delay
+        self.prescale_low = self.target.getNode("%s.i2c_pre_lo" % name)
+        self.prescale_high = self.target.getNode("%s.i2c_pre_hi" % name)
+        self.ctrl = self.target.getNode("%s.i2c_ctrl" % name)
+        self.data = self.target.getNode("%s.i2c_rxtx" % name)
+        self.cmd_stat = self.target.getNode("%s.i2c_cmdstatus" % name)
+        self.wishboneclock = wclk
+        self.i2cclock = i2cclk
+        self.config()
+
+    def state(self):
+        status = {}
+        status["ps_low"] = self.prescale_low.read()
+        status["ps_hi"] = self.prescale_high.read()
+        status["ctrl"] = self.ctrl.read()
+        status["data"] = self.data.read()
+        status["cmd_stat"] = self.cmd_stat.read()
+        self.target.dispatch()
+        status["prescale"] = status["ps_hi"] << 8
+        status["prescale"] |= status["ps_low"]
+        for reg in status:
+            val = status[reg]
+            bval = bin(int(val))
+            if verbose:
+                print "\treg %s = %d, 0x%x, %s" % (reg, val, val, bval)
+
+    def clearint(self):
+        self.ctrl.write(0x1)
+        self.target.dispatch()
+
+    def config(self):
+        #INITIALIZATION OF THE I2S MASTER CORE
+        #Disable core
+        self.ctrl.write(0x0 << 7)
+        self.target.dispatch()
+        #Write pre-scale register
+        #prescale = int(self.wishboneclock / (5.0 * self.i2cclock)) - 1
+        prescale = 0x0100 #FOR NOW HARDWIRED, TO BE MODIFIED
+        #prescale = 0x2710 #FOR NOW HARDWIRED, TO BE MODIFIED
+        self.prescale_low.write(prescale & 0xff)
+        self.prescale_high.write((prescale & 0xff00) >> 8)
+        #Enable core
+        self.ctrl.write(0x1 << 7)
+        self.target.dispatch()
+
+    def checkack(self):
+        inprogress = True
+        ack = False
+        while inprogress:
+            cmd_stat = self.cmd_stat.read()
+            self.target.dispatch()
+            inprogress = (cmd_stat & I2CCore.inprogress) > 0
+            ack = (cmd_stat & I2CCore.recvdack) == 0
+        return ack
+
+    def delayorcheckack(self):
+        ack = True
+        if self.delay is None:
+            ack = self.checkack()
+        else:
+            time.sleep(self.delay)
+            ack = self.checkack()#Remove this?
+        return ack
+
+################################################################################
+# /*
+#        I2C WRITE
+# */
+################################################################################
+
+
+
+    def write(self, addr, data, stop=True):
+        """Write data to the device with the given address."""
+        # Start transfer with 7 bit address and write bit (0)
+        nwritten = -1
+        addr &= 0x7f
+        addr = addr << 1
+        startcmd = 0x1 << 7
+        stopcmd = 0x1 << 6
+        writecmd = 0x1 << 4
+        #Set transmit register (write operation, LSB=0)
+        self.data.write(addr)
+        #Set Command Register to 0x90 (write, start)
+        self.cmd_stat.write(I2CCore.startcmd | I2CCore.writecmd)
+        self.target.dispatch()
+        ack = self.delayorcheckack()
+        if not ack:
+            self.cmd_stat.write(I2CCore.stopcmd)
+            self.target.dispatch()
+            return nwritten
+        nwritten += 1
+        for val in data:
+            val &= 0xff
+            #Write slave memory address
+            self.data.write(val)
+            #Set Command Register to 0x10 (write)
+            self.cmd_stat.write(I2CCore.writecmd)
+            self.target.dispatch()
+            ack = self.delayorcheckack()
+            if not ack:
+                self.cmd_stat.write(I2CCore.stopcmd)
+                self.target.dispatch()
+                return nwritten
+            nwritten += 1
+        if stop:
+            self.cmd_stat.write(I2CCore.stopcmd)
+            self.target.dispatch()
+        return nwritten
+
+################################################################################
+# /*
+#        I2C READ
+# */
+################################################################################
+    def read(self, addr, n):
+        """Read n bytes of data from the device with the given address."""
+        # Start transfer with 7 bit address and read bit (1)
+        data = []
+        addr &= 0x7f
+        addr = addr << 1
+        addr |= 0x1 # read bit
+        self.data.write(addr)
+        self.cmd_stat.write(I2CCore.startcmd | I2CCore.writecmd)
+        self.target.dispatch()
+        ack = self.delayorcheckack()
+        if not ack:
+            self.cmd_stat.write(I2CCore.stopcmd)
+            self.target.dispatch()
+            return data
+        for i in range(n):
+            if i < (n-1):
+                self.cmd_stat.write(I2CCore.readcmd) # <---
+            else:
+                self.cmd_stat.write(I2CCore.readcmd | I2CCore.ack | I2CCore.stopcmd) # <--- This tells the slave that it is the last word
+	        self.target.dispatch()
+            ack = self.delayorcheckack()
+            val = self.data.read()
+            self.target.dispatch()
+            data.append(val & 0xff)
+        #self.cmd_stat.write(I2CCore.stopcmd)
+        #self.target.dispatch()
+        return data
+
+################################################################################
+# /*
+#        I2C WRITE-READ
+# */
+################################################################################
+
+
+
+    # def writeread(self, addr, data, n):
+    #     """Write data to device, then read n bytes back from it."""
+    #     nwritten = self.write(addr, data, stop=False)
+    #     readdata = []
+    #     if nwritten == len(data):
+    #         readdata = self.read(addr, n)
+    #     return nwritten, readdata
+
+"""
+SPI core XML:
+
+<node description="SPI master controller" fwinfo="endpoint;width=3">
+    <node id="d0" address="0x0" description="Data reg 0"/>
+    <node id="d1" address="0x1" description="Data reg 1"/>
+    <node id="d2" address="0x2" description="Data reg 2"/>
+    <node id="d3" address="0x3" description="Data reg 3"/>
+    <node id="ctrl" address="0x4" description="Control reg"/>
+    <node id="divider" address="0x5" description="Clock divider reg"/>
+    <node id="ss" address="0x6" description="Slave select reg"/>
+</node>
+"""
+class SPICore:
+
+    go_busy = 0x1 << 8
+    rising = 1
+    falling = 0
+
+
+    def __init__(self, target, wclk, spiclk, basename="io.spi"):
+        self.target = target
+        # Only a single data register is required since all transfers are
+        # 16 bit long
+        self.data = target.getNode("%s.d0" % basename)
+        self.control = target.getNode("%s.ctrl" % basename)
+        self.control_val = 0b0
+        self.divider = target.getNode("%s.divider" % basename)
+        self.slaveselect = target.getNode("%s.ss" % basename)
+        self.divider_val = int(wclk / spiclk / 2.0 - 1.0)
+        self.divider_val = 0x7f
+        self.configured = False
+
+    def config(self):
+        "Configure SPI interace for communicating with ADCs."
+        self.divider_val = int(self.divider_val) % 0xffff
+        if verbose:
+            print "Configuring SPI core, divider = 0x%x" % self.divider_val
+        self.divider.write(self.divider_val)
+        self.target.dispatch()
+        self.control_val = 0x0
+        self.control_val |= 0x0 << 13 # Automatic slave select
+        self.control_val |= 0x0 << 12 # No interrupt
+        self.control_val |= 0x0 << 11 # MSB first
+        # ADC samples data on rising edge of SCK
+        self.control_val |= 0x1 << 10 # change ouput on falling edge of SCK
+        # ADC changes output shortly after falling edge of SCK
+        self.control_val |= 0x0 << 9 # read input on rising edge
+        self.control_val |= 0x10 # 16 bit transfers
+        if verbose:
+            print "SPI control val = 0x%x = %s" % (self.control_val, bin(self.control_val))
+        self.configured = True
+
+    def transmit(self, chip, value):
+        if not self.configured:
+            self.config()
+        assert chip >= 0 and chip < 8
+        value &= 0xffff
+        self.data.write(value)
+        checkdata = self.data.read()
+        self.target.dispatch()
+        assert checkdata == value
+        self.control.write(self.control_val)
+        self.slaveselect.write(0xff ^ (0x1 << chip))
+        self.target.dispatch()
+        self.control.write(self.control_val | SPICore.go_busy)
+        self.target.dispatch()
+        busy = True
+        while busy:
+            status = self.control.read()
+            self.target.dispatch()
+            busy = status & SPICore.go_busy > 0
+        self.slaveselect.write(0xff)
+        data = self.data.read()
+        ss = self.slaveselect.read()
+        status = self.control.read()
+        self.target.dispatch()
+        #print "Received data: 0x%x, status = 0x%x, ss = 0x%x" % (data, status, ss)
+        return data
diff --git a/legacy/packages/I2cBusProperties.py b/legacy/packages/I2cBusProperties.py
new file mode 100644
index 00000000..a23f30cd
--- /dev/null
+++ b/legacy/packages/I2cBusProperties.py
@@ -0,0 +1,122 @@
+##########################################################
+#  I2cBusProperties - simple encapsulation of all items
+#                     required to control an I2C bus.
+#
+#  Carl Jeske, July 2010
+#  Refactored by Robert Frazier, May 2011
+##########################################################
+
+
+class I2cBusProperties(object):
+    """Encapsulates details of an I2C bus master in the form of a host device, a clock prescale value, and seven I2C master registers
+
+    Provide the ChipsBus instance to the device hosting your I2C core, a 16-bit clock prescaling
+    value for the Serial Clock Line (see I2C core docs for details), and the names of the seven
+    registers that define/control the bus (assuming these names are not the defaults specified
+    in the constructor below).  The seven registers consist of the two clock pre-scaling
+    registers (PRElo, PREhi), and five bus master registers (CONTROL, TRANSMIT, RECEIVE,
+    COMMAND and STATUS).
+
+    Usage:  You'll need to create an instance of this class to give to a concrete I2C bus instance, such
+            as OpenCoresI2cBus.  This I2cBusProperties class is simply a container to hold the properties
+            that define the bus; a class such as OpenCoresI2cBus will make use of these properties.
+
+            Access the items stored by this class via these (deliberately compact) variable names:
+
+                chipsBus     -- the ChipsBus device hosting the I2C core
+                preHiVal     -- the top byte of the clock prescale value
+                preLoVal     -- the bottom byte of the clock prescale value
+                preHiReg     -- the register the top byte of the clk prescale value (preHiVal) gets written to
+                preLoReg     -- the register the bottom byte of the clk prescale value (preLoVal) gets written to
+                ctrlReg      -- the I2C Control register
+                txReg        -- the I2C Transmit register
+                rxReg        -- the I2C Receive register
+                cmdReg       -- the I2C Command register
+                statusReg    -- the I2C Status register
+
+
+    Compatibility Notes: The seven register names are the registers typically required to operate an
+                         OpenCores or similar I2C Master (Lattice Semiconductor's I2C bus master works
+                         the same way as the OpenCores one). This software is not compatible with your
+                         I2C bus master if it doesn't use this register interface.
+    """
+
+    def __init__(self,
+                 chipsBusDevice,
+                 clkPrescaleU16,
+                 clkPrescaleLoByteReg = "i2c_pre_lo",
+                 clkPrescaleHiByteReg = "i2c_pre_hi",
+                 controlReg           = "i2c_ctrl",
+                 transmitReg          = "i2c_tx",
+                 receiveReg           = "i2c_rx",
+                 commandReg           = "i2c_cmd",
+                 statusReg            = "i2c_status"):
+
+        """Provide a host ChipsBus device that is controlling the I2C bus, and the names of five I2C control registers.
+
+        chipsBusDevice:  Provide a ChipsBus instance to the device where the I2C bus is being
+                controlled. The address table for this device must contain the five registers
+                that control the bus, as declared next...
+
+        clkPrescaleU16: A 16-bit value used to prescale the Serial Clock Line based on the host
+                master-clock.  This value gets split into two 8-bit values and ultimately will
+                get written to the two I2C clock-prescale registers as declared below.  See
+                the OpenCores or Lattice Semiconductor I2C documentation for more details.
+
+        clkPrescaleLoByteReg:  The register where the lower byte of the clock prescale value is set.  The default
+                name for this register is "i2c_pre_lo".
+
+        clkPrescaleHiByteReg:  The register where the higher byte of the clock prescale value is set.  The default
+                name for this register is "i2c_pre_hi"
+
+        controlReg:  The CONTROL register, used for enabling/disabling the I2C core, etc. This register is
+                usually read and write accessible. The default name for this register is "i2c_ctrl".
+
+        transmitReg:  The TRANSMIT register, used for holding the data to be transmitted via I2C, etc.  This
+                typically shares the same address as the RECEIVE register, but has write-only access.  The default
+                name for this register is "i2c_tx".
+
+        receiveReg:  The RECEIVE register - allows access to the byte received over the I2C bus.  This
+                typically shares the same address as the TRANSMIT register, but has read-only access.  The
+                default name for this register is "i2c_rx".
+
+        commandReg:  The COMMAND register - stores the command for the next I2C operation.  This typically
+                shares the same address as the STATUS register, but has write-only access.  The default name for
+                this register is "i2c_cmd".
+
+        statusReg:  The STATUS register - allows monitoring of the I2C operations.  This typically shares
+                the same address as the COMMAND register, but has read-only access.  The default name for this
+                register is "i2c_status".
+        """
+
+        object.__init__(self)
+        self.chipsBus = chipsBusDevice
+        self.preHiVal = ((clkPrescaleU16 & 0xff00) >> 8)
+        self.preLoVal = (clkPrescaleU16 & 0xff)
+        
+        # Check to see all the registers are in the address table
+        registers = [clkPrescaleLoByteReg, clkPrescaleHiByteReg, controlReg, transmitReg, receiveReg, commandReg, statusReg]
+        for reg in registers:
+            if not self.chipsBus.addrTable.checkItem(reg):
+                raise ChipsException("I2cBusProperties error: register '" + reg + "' is not present in the address table of the device hosting the I2C bus master!")
+
+        # Check that the registers we'll need to write to are indeed writable
+        writableRegisters = [clkPrescaleLoByteReg, clkPrescaleHiByteReg, controlReg, transmitReg, commandReg]
+        for wReg in writableRegisters:
+            if not self.chipsBus.addrTable.getItem(wReg).getWriteFlag():
+                raise ChipsException("I2cBusProperties error: register '" + wReg + "' does not have the necessary write permission!")
+
+        # Check that the registers we'll need to read from are indeed readable
+        readableRegisters = [clkPrescaleLoByteReg, clkPrescaleHiByteReg, controlReg, receiveReg, statusReg]
+        for rReg in readableRegisters:
+            if not self.chipsBus.addrTable.getItem(rReg).getReadFlag():
+                raise ChipsException("I2cBusProperties error: register '" + rReg + "' does not have the necessary read permission!")
+
+        # Store the various register name strings
+        self.preHiReg = clkPrescaleHiByteReg
+        self.preLoReg = clkPrescaleLoByteReg
+        self.ctrlReg = controlReg
+        self.txReg = transmitReg
+        self.rxReg = receiveReg
+        self.cmdReg = commandReg
+        self.statusReg = statusReg
diff --git a/legacy/packages/PCA9539PW.py b/legacy/packages/PCA9539PW.py
new file mode 100644
index 00000000..723b0ad4
--- /dev/null
+++ b/legacy/packages/PCA9539PW.py
@@ -0,0 +1,94 @@
+# -*- coding: utf-8 -*-
+import uhal
+from I2CuHal import I2CCore
+import StringIO
+
+class PCA9539PW:
+    #Class to configure the expander modules
+
+    def __init__(self, i2c, slaveaddr=0x74):
+        self.i2c = i2c
+        self.slaveaddr = slaveaddr
+
+
+    def writeReg(self, regN, regContent, verbose=False):
+        #Basic functionality to write to register.
+        if (regN < 0) | (regN > 7):
+            print "PCA9539PW - ERROR: register number should be in range [0:7]"
+            return
+        regContent= regContent & 0xFF
+        mystop=True
+        cmd= [regN, regContent]
+        self.i2c.write( self.slaveaddr, cmd, mystop)
+
+
+    def readReg(self, regN, nwords, verbose=False):
+        #Basic functionality to read from register.
+        if (regN < 0) | (regN > 7):
+            print "PCA9539PW - ERROR: register number should be in range [0:7]"
+            return
+        mystop=False
+        self.i2c.write( self.slaveaddr, [regN], mystop)
+        res= self.i2c.read( self.slaveaddr, nwords)
+        return res
+
+
+    def setInvertReg(self, regN, polarity= 0x00):
+        #Set the content of register 4 or 5 which determine the polarity of the
+        #ports (0= normal, 1= inverted).
+        if (regN < 0) | (regN > 1):
+            print "PCA9539PW - ERROR: regN should be 0 or 1"
+            return
+        polarity = polarity & 0xFF
+        self.writeReg(regN+4, polarity)
+
+    def getInvertReg(self, regN):
+        #Read the content of register 4 or 5 which determine the polarity of the
+        #ports (0= normal, 1= inverted).
+        if (regN < 0) | (regN > 1):
+            print "PCA9539PW - ERROR: regN should be 0 or 1"
+            return
+        res= self.readReg(regN+4, 1)
+        return res
+
+    def setIOReg(self, regN, direction= 0xFF):
+        #Set the content of register 6 or 7 which determine the direction of the
+        #ports (0= output, 1= input).
+        if (regN < 0) | (regN > 1):
+            print "PCA9539PW - ERROR: regN should be 0 or 1"
+            return
+        direction = direction & 0xFF
+        self.writeReg(regN+6, direction)
+
+    def getIOReg(self, regN):
+        #Read the content of register 6 or 7 which determine the polarity of the
+        #ports (0= normal, 1= inverted).
+        if (regN < 0) | (regN > 1):
+            print "PCA9539PW - ERROR: regN should be 0 or 1"
+            return
+        res= self.readReg(regN+6, 1)
+        return res
+
+    def getInputs(self, bank):
+        #Read the incoming values of the pins for one of the two 8-bit banks.
+        if (bank < 0) | (bank > 1):
+            print "PCA9539PW - ERROR: bank should be 0 or 1"
+            return
+        res= self.readReg(bank, 1)
+        return res
+
+    def setOutputs(self, bank, values= 0x00):
+        #Set the content of the output flip-flops.
+        if (bank < 0) | (bank > 1):
+            print "PCA9539PW - ERROR: bank should be 0 or 1"
+            return
+        values = values & 0xFF
+        self.writeReg(bank+2, values)
+
+    def getOutputs(self, bank):
+        #Read the state of the outputs (i.e. what value is being written to them)
+        if (bank < 0) | (bank > 1):
+            print "PCA9539PW - ERROR: bank should be 0 or 1"
+            return
+        res= self.readReg(bank+2, 1)
+        return res
diff --git a/legacy/packages/RawI2cAccess.py b/legacy/packages/RawI2cAccess.py
new file mode 100644
index 00000000..28461329
--- /dev/null
+++ b/legacy/packages/RawI2cAccess.py
@@ -0,0 +1,261 @@
+# Created on Sep 10, 2012
+# @author: Kristian Harder, based on code by Carl Jeske
+
+from I2cBusProperties import I2cBusProperties
+from ChipsBus import ChipsBus
+from ChipsLog import chipsLog
+from ChipsException import ChipsException
+
+
+class RawI2cAccess:
+
+    def __init__(self, i2cBusProps, slaveAddr):
+
+        # For performing read/writes over an OpenCores-compatible I2C bus master
+        #
+        # An instance of this class is required to communicate with each
+        # I2C slave on the I2C bus.
+        #
+        # i2cBusProps: an instance of the class I2cBusProperties that contains
+        #    the relevant ChipsBus host and the I2C bus-master registers (if
+        #    they differ from the defaults specified by the I2cBusProperties
+        #    class).
+        #
+        #slaveAddr: The address of the I2C slave you wish to communicate with.
+        #
+
+        self._i2cProps = i2cBusProps   # The I2C Bus Properties
+        self._slaveAddr = 0x7f & slaveAddr  # 7-bit slave address
+
+
+    def resetI2cBus(self):
+
+        # Resets the I2C bus
+        #
+        # This function does the following:
+        #        1) Disables the I2C core
+        #        2) Sets the clock prescale registers
+        #        3) Enables the I2C core
+        #        4) Sets all writable bus-master registers to default values
+
+        try:
+            self._chipsBus().queueWrite(self._i2cProps.ctrlReg, 0x00)
+            #self._chipsBus().getNode(self._i2cProps.ctrlReg).write(0)
+            self._chipsBus().queueWrite(self._i2cProps.preHiReg,
+                                        self._i2cProps.preHiVal)
+            self._chipsBus().queueWrite(self._i2cProps.preLoReg,
+                                        self._i2cProps.preLoVal)
+            self._chipsBus().queueWrite(self._i2cProps.ctrlReg, 0x80)
+            self._chipsBus().queueWrite(self._i2cProps.txReg, 0x00)
+            self._chipsBus().queueWrite(self._i2cProps.cmdReg, 0x00)
+            self._chipsBus().queueRun()
+        except ChipsException, err:
+            raise ChipsException("I2C reset error:\n\t" + str(err))
+
+
+    def read(self, numBytes):
+
+        # Performs an I2C read. Returns the 8-bit read result(s).
+        #
+        # numBytes: number of bytes expected as response
+        #
+
+        try:
+            result = self._privateRead(numBytes)
+        except ChipsException, err:
+            raise ChipsException("I2C read error:\n\t" + str(err))
+        return result
+
+
+    def write(self, listDataU8):
+
+        # Performs an 8-bit I2C write.
+        #
+        # listDataU8:  The 8-bit data values to be written.
+        #
+
+        try:
+            self._privateWrite(listDataU8)
+        except ChipsException, err:
+            raise ChipsException("I2C write error:\n\t" + str(err))
+        return
+
+
+    def _chipsBus(self):
+
+        # Returns the instance of the ChipsBus device that's hosting
+        # the I2C bus master
+
+        return self._i2cProps.chipsBus
+
+
+    def _privateRead(self, numBytes):
+
+        # I2C read implementation.
+        #
+        #  Fast I2C read implementation,
+        # i.e. done with the fewest packets possible.
+
+
+        # transmit reg definitions
+        # bits 7-1: 7-bit slave address during address transfer
+        #           or first 7 bits of byte during data transfer
+        # bit 0: RW flag during address transfer or LSB during data transfer.
+        #        '1' = reading from slave
+        #        '0' = writing to slave
+
+        # command reg definitions
+        # bit 7:   Generate start condition
+        # bit 6:   Generate stop condition
+        # bit 5:   Read from slave
+        # bit 4:   Write to slave
+        # bit 3:   0 when acknowledgement is received
+        # bit 2:1: Reserved
+        # bit 0:   Interrupt acknowledge. When set, clears a pending interrupt
+
+        # Reset bus before beginning
+        self.resetI2cBus()
+
+        # Set slave address in bits 7:1, and set bit 0 to zero
+        # (i.e. we're writing an address to the bus)
+        self._chipsBus().queueWrite(self._i2cProps.txReg,
+                                    (self._slaveAddr << 1) | 0x01)
+        # Set start and write bit in command reg
+        self._chipsBus().queueWrite(self._i2cProps.cmdReg, 0x90)
+        # Run the queue
+        self._chipsBus().queueRun()
+        # Wait for transaction to finish.
+        self._i2cWaitUntilFinished()
+
+        result=[]
+        for ibyte in range(numBytes):
+            if ibyte==numBytes-1:
+                stop_bit=0x40
+                ack_bit=0x08
+            else:
+                stop_bit=0
+                ack_bit=0
+                pass
+            # Set read bit, acknowledge and stop bit in command reg
+            self._chipsBus().write(self._i2cProps.cmdReg, 0x20+ack_bit+stop_bit)
+            # Wait for transaction to finish.
+            # Don't expect an ACK, do expect bus free at finish.
+            if stop_bit:
+                self._i2cWaitUntilFinished(requireAcknowledgement = False,
+                                           requireBusIdleAtEnd = True)
+            else:
+                self._i2cWaitUntilFinished(requireAcknowledgement = False,
+                                           requireBusIdleAtEnd = False)
+                pass
+            result.append(self._chipsBus().read(self._i2cProps.rxReg))
+
+        return result
+
+
+    def _privateWrite(self, listDataU8):
+
+        # I2C write implementation.
+        #
+        #  Fast I2C write implementation,
+        # i.e. done with the fewest packets possible.
+
+        # transmit reg definitions
+        # bits 7-1: 7-bit slave address during address transfer
+        #           or first 7 bits of byte during data transfer
+        # bit 0: RW flag during address transfer or LSB during data transfer.
+        # '1' = reading from slave
+        # '0' = writing to slave
+
+        # command reg definitions
+        # bit 7: Generate start condition
+        # bit 6: Generate stop condition
+        # bit 5: Read from slave
+        # bit 4: Write to slave
+        # bit 3: 0 when acknowledgement is received
+        # bit 2:1: Reserved
+        # bit 0: Interrupt acknowledge. When set, clears a pending interrupt
+        # Reset bus before beginning
+        self.resetI2cBus()
+
+        # Set slave address in bits 7:1, and set bit 0 to zero (i.e. "write mode")
+        self._chipsBus().queueWrite(self._i2cProps.txReg,
+                                    (self._slaveAddr << 1) & 0xfe)
+        # Set start and write bit in command reg
+        self._chipsBus().queueWrite(self._i2cProps.cmdReg, 0x90)
+        # Run the queue
+        self._chipsBus().queueRun()
+        # Wait for transaction to finish.
+        self._i2cWaitUntilFinished()
+
+        for ibyte in range(len(listDataU8)):
+            dataU8 = listDataU8[ibyte]
+            if ibyte==len(listDataU8)-1:
+                stop_bit=0x40
+            else:
+                stop_bit=0x00
+                pass
+            # Set data to be written in transmit reg
+            self._chipsBus().queueWrite(self._i2cProps.txReg, (dataU8 & 0xff))
+            # Set write and stop bit in command reg
+            self._chipsBus().queueWrite(self._i2cProps.cmdReg, 0x10+stop_bit)
+            # Run the queue
+            self._chipsBus().queueRun()
+            # Wait for transaction to finish.
+            # Do expect an ACK and do expect bus to be free at finish
+            if stop_bit:
+                self._i2cWaitUntilFinished(requireAcknowledgement = True,
+                                           requireBusIdleAtEnd = True)
+            else:
+                self._i2cWaitUntilFinished(requireAcknowledgement = True,
+                                           requireBusIdleAtEnd = False)
+                pass
+            pass
+
+        return
+
+
+    def _i2cWaitUntilFinished(self, requireAcknowledgement = True,
+                              requireBusIdleAtEnd = False):
+
+        # Ensures the current bus transaction has finished successfully
+        # before allowing further I2C bus transactions
+
+        # This method monitors the status register
+        # and will not allow execution to continue until the
+        # I2C bus has completed properly.  It will throw an exception
+        # if it picks up bus problems or a bus timeout occurs.
+
+        maxRetry = 20
+        attempt = 1
+        while attempt <= maxRetry:
+
+            # Get the status
+            i2c_status = self._chipsBus().read(self._i2cProps.statusReg)
+
+            receivedAcknowledge = not bool(i2c_status & 0x80)
+            busy = bool(i2c_status & 0x40)
+            arbitrationLost = bool(i2c_status & 0x20)
+            transferInProgress = bool(i2c_status & 0x02)
+            interruptFlag = bool(i2c_status & 0x01)
+
+            if arbitrationLost:  # This is an instant error at any time
+                raise ChipsException("I2C error: Arbitration lost!")
+
+            if not transferInProgress:
+                break  # The transfer looks to have completed successfully, pending further checks
+
+            attempt += 1
+
+        # At this point, we've either had too many retries, or the
+        # Transfer in Progress (TIP) bit went low.  If the TIP bit
+        # did go low, then we do a couple of other checks to see if
+        # the bus operated as expected:
+
+        if attempt > maxRetry:
+            raise ChipsException("I2C error: Transaction timeout - the 'Transfer in Progress' bit remained high for too long!")
+
+        if requireAcknowledgement and not receivedAcknowledge:
+            raise ChipsException("I2C error: No acknowledge received!")
+
+        if requireBusIdleAtEnd and busy:
+            raise ChipsException("I2C error: Transfer finished but bus still busy!")
diff --git a/legacy/packages/TLU_v1e/output.csv b/legacy/packages/TLU_v1e/output.csv
new file mode 100644
index 00000000..e69de29b
diff --git a/legacy/packages/TLUaddrmap_BKP.xml b/legacy/packages/TLUaddrmap_BKP.xml
new file mode 100644
index 00000000..65fb5340
--- /dev/null
+++ b/legacy/packages/TLUaddrmap_BKP.xml
@@ -0,0 +1,105 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<node id="TLU">
+
+<!-- Registers for the DUTs. These should be correct -->
+<node id="DUTInterfaces" address="0x1000" description="DUT Interfaces control registers">
+  <node id="DutMaskW"           address="0x0" permission="w" description="" />
+  <node id="IgnoreDUTBusyW"     address="0x1" permission="w" description="" />
+  <node id="IgnoreShutterVetoW" address="0x2" permission="w" description="" />
+  <node id="DUTInterfaceModeW"  address="0x3" permission="w" description="" />
+  <node id="DUTInterfaceModeModifierW"  address="0x4" permission="w" description="" />
+  <node id="DUTInterfaceModeR"  address="0xB" permission="r" description="" />
+  <node id="DUTInterfaceModeModifierR"  address="0xC" permission="r" description="" />
+  <node id="DutMaskR"           address="0x8" permission="r" description="" />
+  <node id="IgnoreDUTBusyR"     address="0x9" permission="r" description="" />
+  <node id="IgnoreShutterVetoR" address="0xA" permission="r" description="" />
+</node>
+
+<node id="Shutter"    address="0x2000" description="Shutter/T0 control">
+  <node id="ShutterStateW" address="0x0" permission="w" description=""/>
+  <node id="PulseT0"  address="0x1" permission="w" description=""/>
+</node>
+<!-- I2C registers. Tested ok.-->
+<node id="i2c_master"      address="0x3000" description="I2C Master interface">
+  <node id="i2c_pre_lo"    address="0x0" mask="0x000000ff" permission="rw" description="" />
+  <node id="i2c_pre_hi"    address="0x1" mask="0x000000ff" permission="rw" description="" />
+  <node id="i2c_ctrl"      address="0x2" mask="0x000000ff" permission="rw" description="" />
+  <node id="i2c_rxtx"      address="0x3" mask="0x000000ff" permission="rw" description="" />
+  <node id="i2c_cmdstatus" address="0x4" mask="0x000000ff" permission="rw" description="" />
+</node>
+<!-- Not sure about the FillLevelFlags register -->
+<node id="eventBuffer" address="0x4000" description="Event buffer">
+  <node id="EventFifoData" address="0x0" mode="non-incremental" size="32000" permission="r" description="" />
+  <node id="EventFifoFillLevel" address="0x1" permission="r" description="" />
+  <node id="EventFifoCSR" address="0x2" permission="rw" description="" />
+  <node id="EventFifoFillLevelFlags" address="0x3" permission="r" description="" />
+</node>
+<!-- Event formatter registers. Should be ok -->
+<node id="Event_Formatter"      address="0x5000" description="Event formatter configuration">
+  <node id="Enable_Record_Data" address="0x0" permission="rw" description="" />
+  <node id="ResetTimestampW"    address="0x1" permission="w" description="" />
+  <node id="CurrentTimestampLR" address="0x2" permission="r" description="" />
+  <node id="CurrentTimestampHR" address="0x3" permission="r" description="" />
+</node>
+<!-- This needs checking. The counters work, not sure about the reset -->
+<node id="triggerInputs" address="0x6000" description="Inputs configuration">
+  <node id="SerdesRstW" address="0x0" permission="w" description="" />
+  <node id="SerdesRstR" address="0x8" permission="r" description="" />
+  <node id="ThrCount0R" address="0x9" permission="r" description="" />
+  <node id="ThrCount1R" address="0xa" permission="r" description="" />
+  <node id="ThrCount2R" address="0xb" permission="r" description="" />
+  <node id="ThrCount3R" address="0xc" permission="r" description="" />
+  <node id="ThrCount4R" address="0xd" permission="r" description="" />
+  <node id="ThrCount5R" address="0xe" permission="r" description="" />
+</node>
+<!-- Checked. Seems ok now, except for the TriggerVeto that do nothing.-->
+<node id="triggerLogic" address="0x7000" description="Trigger logic configuration">
+  <node id="PostVetoTriggersR" address="0x10" permission="r" description="" />
+  <node id="PreVetoTriggersR" address="0x11" permission="r" description="" />
+  <node id="InternalTriggerIntervalW" address="0x2" permission="w" description="" />
+  <node id="InternalTriggerIntervalR" address="0x12" permission="r" description="" />
+  <!--<node id="TriggerPatternW" address="0x3" permission="w" description="" />-->
+  <!--<node id="TriggerPatternR" address="0x13" permission="r" description="" />-->
+  <node id="TriggerVetoW" address="0x4" permission="w" description="" />
+  <node id="TriggerVetoR" address="0x14" permission="r" description="" /><!--Wait, this does nothing at the moment...-->
+  <node id="ExternalTriggerVetoR" address="0x15" permission="r" description="" />
+  <node id="PulseStretchW" address="0x6" permission="w" description="" />
+  <node id="PulseStretchR" address="0x16" permission="r" description="" />
+  <node id="PulseDelayW" address="0x7" permission="w" description="" />
+  <node id="PulseDelayR" address="0x17" permission="r" description="" />
+  <node id="TriggerHoldOffW" address="0x8" permission="W" description="" /><!--Wait, this does nothing at the moment...-->
+  <node id="TriggerHoldOffR" address="0x18" permission="r" description="" /><!--Wait, this does nothing at the moment...-->
+  <node id="AuxTriggerCountR" address="0x19" permission="r" description="" />
+  <node id="TriggerPattern_lowW" address="0xA" permission="w" description="" />
+  <node id="TriggerPattern_lowR" address="0x1A" permission="r" description="" />
+  <node id="TriggerPattern_highW" address="0xB" permission="w" description="" />
+  <node id="TriggerPattern_highR" address="0x1B" permission="r" description="" />
+
+  <!--<node id="PulseStretchW" address="0x6" permission="w" description="" /> OLD REGISTER MAP. WAS BUGGED-->
+  <!--<node id="PulseStretchR" address="0x16" permission="r" description="" /> OLD REGISTER MAP. WAS BUGGED-->
+
+  <!--
+  <node id="ResetCountersW" address="0x6" permission="w" description="" />
+  <node id="PulseStretchR" address="0x17" permission="r" description="" />
+  <node id="PulseStretchW" address="0x7" permission="w" description="" />
+  <node id="TriggerHoldOffR" address="0x18" permission="r" description="" />
+  <node id="TriggerHoldOffW" address="0x8" permission="W" description="" />
+  <node id="AuxTriggerCountR" address="0x19" permission="r" description="" />
+-->
+</node>
+
+<node id="logic_clocks" address="0x8000" description="Clocks configuration">
+  <node id="LogicClocksCSR" address="0x0" permission="rw" description="" />
+  <node id="LogicRst" address="0x1" permission="w" description="" />
+</node>
+
+<node id="version" address="0x1" description="firmware version" permission="r">
+</node>
+
+<!--
+PulseStretchW			0x00000066     0xffffffff    0    1
+PulseDelayW 			0x00000067     0xffffffff    0    1
+PulseDelayR 			0x00000077     0xffffffff    1    0
+-->
+</node>
diff --git a/legacy/packages/TLUconnection_BKP.xml b/legacy/packages/TLUconnection_BKP.xml
new file mode 100644
index 00000000..fca67f50
--- /dev/null
+++ b/legacy/packages/TLUconnection_BKP.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<connections>
+  <connection id="tlu" uri="ipbusudp-2.0://192.168.200.30:50001"
+   address_table="file://./TLUaddrmap.xml" />
+</connections>
diff --git a/legacy/packages/si5345.py b/legacy/packages/si5345.py
new file mode 100644
index 00000000..a1072df0
--- /dev/null
+++ b/legacy/packages/si5345.py
@@ -0,0 +1,140 @@
+import time
+import uhal
+from I2CuHal import I2CCore
+import StringIO
+import csv
+
+class si5345:
+    #Class to configure the Si5344 clock generator
+
+    def __init__(self, i2c, slaveaddr=0x68):
+        self.i2c = i2c
+        self.slaveaddr = slaveaddr
+        #self.configList=
+
+    #def writeReg(self, address, data):
+
+    def readRegister(self, myaddr, nwords, verbose= False):
+        ### Read a specific register on the Si5344 chip. There is not check on the validity of the address but
+        ### the code sets the correct page before reading.
+
+        #First make sure we are on the correct page
+        currentPg= self.getPage()
+        requirePg= (myaddr & 0xFF00) >> 8
+        if verbose:
+            print "REG", hex(myaddr), "CURR PG" , hex(currentPg[0]), "REQ PG", hex(requirePg)
+        if currentPg[0] != requirePg:
+            self.setPage(requirePg)
+        #Now read from register.
+        addr=[]
+        addr.append(myaddr)
+        mystop=False
+        self.i2c.write( self.slaveaddr, addr, mystop)
+        # time.sleep(0.1)
+        res= self.i2c.read( self.slaveaddr, nwords)
+        return res
+
+    def writeRegister(self, myaddr, data, verbose=False):
+        ### Write a specific register on the Si5344 chip. There is not check on the validity of the address but
+        ### the code sets the correct page before reading.
+        ### myaddr is an int
+        ### data is a list of ints
+
+        #First make sure we are on the correct page
+        myaddr= myaddr & 0xFFFF
+        currentPg= self.getPage()
+        requirePg= (myaddr & 0xFF00) >> 8
+        #print "REG", hex(myaddr), "CURR PG" , currentPg, "REQ PG", hex(requirePg)
+        if currentPg[0] != requirePg:
+            self.setPage(requirePg)
+        #Now write to register.
+        data.insert(0, myaddr)
+        if verbose:
+            print "  Writing: "
+            result="\t  "
+            for iaddr in data:
+                result+="%#02x "%(iaddr)
+            print result
+        self.i2c.write( self.slaveaddr, data)
+        #time.sleep(0.01)
+
+    def setPage(self, page, verbose=False):
+        #Configure the chip to perform operations on the specified address page.
+        mystop=True
+        myaddr= [0x01, page]
+        self.i2c.write( self.slaveaddr, myaddr, mystop)
+        #time.sleep(0.01)
+        if verbose:
+            print "  Si5345 Set Reg Page:", page
+
+    def getPage(self, verbose=False):
+        #Read the current address page
+        mystop=False
+        myaddr= [0x01]
+        self.i2c.write( self.slaveaddr, myaddr, mystop)
+        rPage= self.i2c.read( self.slaveaddr, 1)
+        #time.sleep(0.1)
+        if verbose:
+            print "\tPage read:", rPage
+        return rPage
+
+    def getDeviceVersion(self):
+        #Read registers containing chip information
+        mystop=False
+        nwords=2
+        myaddr= [0x02 ]#0xfa
+        self.setPage(0)
+        self.i2c.write( self.slaveaddr, myaddr, mystop)
+        #time.sleep(0.1)
+        res= self.i2c.read( self.slaveaddr, nwords)
+        print "  Si5345 EPROM: "
+        result="\t"
+        for iaddr in reversed(res):
+            result+="%#02x "%(iaddr)
+        print result
+        return res
+
+    def parse_clk(self, filename, verbose= False):
+        #Parse the configuration file produced by Clockbuilder Pro (Silicon Labs)
+    	deletedcomments=""""""
+        if verbose:
+    	       print "\tParsing file", filename
+    	with open(filename, 'rb') as configfile:
+    		for i, line in enumerate(configfile):
+    		    if not line.startswith('#') :
+    		      if not line.startswith('Address'):
+    			deletedcomments+=line
+    	csvfile = StringIO.StringIO(deletedcomments)
+    	cvr= csv.reader(csvfile, delimiter=',', quotechar='|')
+    	#print "\tN elements  parser:", sum(1 for row in cvr)
+    	#return [addr_list,data_list]
+        # for item in cvr:
+        #     print "rere"
+        #     regAddr= int(item[0], 16)
+        #     regData[0]= int(item[1], 16)
+        #     print "\t  ", hex(regAddr), hex(regData[0])
+        #self.configList= cvr
+        regSettingList= list(cvr)
+        if verbose:
+            print "\t  ", len(regSettingList), "elements"
+        return regSettingList
+
+    def writeConfiguration(self, regSettingList):
+        print "  Si5345 Writing configuration:"
+        #regSettingList= list(regSettingCsv)
+        counter=0
+        for item in regSettingList:
+            regAddr= int(item[0], 16)
+            regData=[0]
+            regData[0]= int(item[1], 16)
+            print "\t", counter, "Reg:", hex(regAddr), "Data:", regData
+            counter += 1
+            self.writeRegister(regAddr, regData, False)
+
+    def checkDesignID(self):
+        regAddr= 0x026B
+        res= self.readRegister(regAddr, 8)
+        result= "  Si5345 design Id:\n\t"
+        for iaddr in res:
+            result+=chr(iaddr)
+        print result
-- 
GitLab