<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- version: 1.6.2     sha: 8f38057 -->

<node fwinfo="endpoint;width=13">

  <node id="module_reg" address="0x0" description="Module ID"  fwinfo="endpoint;width=1">
    <node id="module_control" address="0x0" permission="rw" description="Module Control">
      <node id="start" 	mask="0x1"  description="Start synchronisation logic" />
	  <node id="test_mode_enable" mask="0x2" description="Enable the pattern generator and select test mode" />
	  <node id="clear_error_counters" mask="0x4" description="Clear the tx phase error counters" />
	  <node id="reset_mmcm" mask="0x8" description="reset the mmcm of the 280MHz fabric clock" />
	  <node id="sel_data_in" mask="0x10" description="selects input data from MGT or RAM" />
	  <node id="reset_resynch" mask="0x20" description="resynch the synch signal to the internal one" />
	  <node id="reconfigure" mask="0x40000000" description="Reconfigure firmware from FLASH memory" />	  
	  <node id="sel_bcn_or_bc_cnt" mask="0x80000000" description="select between input data BCN and BC delay counter" />
    </node>
    <node id="module_status" address="0x1" permission="r" description="Module status">
      <node description="" id="tau_bdt_en"      mask="0x08000000"/>
      <node description="" id="sort_out_ram_en" mask="0x04000000"/>
      <node description="" id="sort_in_ram_en"  mask="0x02000000"/>
      <node description="" id="output_rams_en"  mask="0x01000000"/>
      <node description="" id="data_path_en"    mask="0x00800000"/>
      <node description="" id="mgt_en"          mask="0x00400000"/>
      <node description="" id="input_ram_en"    mask="0x00200000"/>
      <node description="" id="readout_en"      mask="0x00100000"/>
      <node description="" id="merge_en"        mask="0x00080000"/>
      <node description="" id="dynamic_mapping" mask="0x00040000"/>
      <node description="" id="energy_encoding" mask="0x00030000"/>
      <node description="" id="delay_num3"      mask="0x0000f000"/>
      <node description="" id="delay_num2"      mask="0x00000f00"/>
      <node description="" id="delay_num1"      mask="0x000000f0"/>
      <node description="" id="delay_num0"      mask="0x0000000f"/>
    </node>
  </node>
  <node id="tob_synch" address="0x2" permission="rw" description="When the BCN number reaches the value set in this register, the tob synch signal is sent" fwinfo="endpoint;width=1">
    	<node id="tob_debug_mode" mask="0x80000000" description="Send BC numbers instead of TOBs" />
	<node id="bcn_number" mask="0x7ff" description="BCN number" />
  </node>

  <node id="xadc" address="0x20" description="XADC"  fwinfo="endpoint;width=5">
    <node id="temperature" address="0x0" permission="r" />
    <node id="temp_min" address="0x1"    permission="r" />
    <node id="temp_max" address="0x2"    permission="r" />
    <node id="vccint" address="0x3"      permission="r" />
    <node id="vccint_min" address="0x4"  permission="r" />
    <node id="vccint_max" address="0x5"  permission="r" />
    <node id="vccaux" address="0x6"      permission="r" />
    <node id="vccaux_min" address="0x7"  permission="r" />
    <node id="vccaux_max" address="0x8"  permission="r" />
    <node id="vccbram" address="0x9"     permission="r" />
    <node id="vccbram_min" address="0xA" permission="r" />
    <node id="vccbram_max" address="0xB" permission="r" />
	<node id="adc_2V5_val_0V63" address="0xC"  permission="r" />
	<node id="adc_1V05_val_0V5"  address="0xD"  permission="r" />
	<node id="adc_1V0_val_0V5"  address="0xE"  permission="r" />
	<node id="adc_3V3_val_0V83" address="0xF" permission="r" />
	<node id="adc_1V2_val_0V6"  address="0x10" permission="r" />
	<node id="adc_1V8_val_0V9"  address="0x11" permission="r" />
    <node id="adc_3V3_val_0V945"  address="0x12" permission="r" />
	
  </node>

  <node id="reconfigure" address="0x45" description="FPGA Configuration register"  fwinfo="endpoint;width=0">
    <node id="address" mask="0xFFFFFFFF" description="Address for warm boot from FLASH memory. Typically 0x0 for golden or 0x20000 for user image"/>
  </node>
  <node id="ttc_orbit_length" address="0x46" description="TTC orbit length  register"  fwinfo="endpoint;width=0"/>
  <node id="bcmuxvalue_sync" address="0x47" description="BCMUXValue_sync register"  fwinfo="endpoint;width=0"/>
  
  
  <node id="tob_delay" address="0x50" description="Delays for the inter_FPGA TOB buses"  fwinfo="endpoint;width=1">
    <node id="delay_control" address="0x0" permission="rw" description="Delay Control">
      <node id="bus_a" mask="0x00001f" description="Delay for bus a" />
      <node id="bus_b" mask="0x001f00" description="Delay for bus b" />
      <node id="bus_c" mask="0x1f0000" description="Delay for bus c" />
      <node id="delay_set" mask="0x01000000" description="When set to 1, delays values are programmed" />
      <node id="io_reset" mask="0x10000000" description="Input output reset for bus a b and c" />
    </node>
    <node id="delay_status" address="0x1" permission="r" description="Delay Status">
      <node id="bus_a" mask="0x00001f" description="Delay for bus a" />
      <node id="bus_b" mask="0x001f00" description="Delay for bus b" />
      <node id="bus_c" mask="0x1f0000" description="Delay for bus c" />     
      <node id="delay_locked_a1" mask="0x01000000" description="Delay locked for bus a1" />
      <node id="delay_locked_a2" mask="0x02000000" description="Delay locked for bus a2" />
      <node id="delay_locked_b1" mask="0x04000000" description="Delay locked for bus b1" />
      <node id="delay_locked_b2" mask="0x08000000" description="Delay locked for bus b2" />
      <node id="delay_locked_c1" mask="0x10000000" description="Delay locked for bus c1" />
      <node id="delay_locked_c2" mask="0x20000000" description="Delay locked for bus c2" />
    </node>
  </node>

    <node id="tob_bc_delay" address="0x60" description="Delays for the inter_FPGA TOB buses"  fwinfo="endpoint;width=1">
    <node id="bc_delay_control" address="0x0" permission="rw" description="Delay Control">
      <node id="bc_a" mask="0x00001f" description="Delay for TOB BC a" />
      <node id="bc_b" mask="0x001f00" description="Delay for TOB BC b" />
      <node id="bc_c" mask="0x1f0000" description="Delay for TOB BC c" />
      <node id="delay_set_a" mask="0x01000000" description="When set to 1, delays values are programmed for bus a" />
      <node id="delay_set_b" mask="0x02000000" description="When set to 1, delays values are programmed for bus b" />
      <node id="delay_set_c" mask="0x04000000" description="When set to 1, delays values are programmed for bus c" />
      
    </node>
    <node id="bc_delay_status" address="0x1" permission="r" description="Delay Status">
      <node id="bc_a" mask="0x00001f" description="Delay for TOB BC a" />
      <node id="bc_b" mask="0x001f00" description="Delay for TOB BC b" />
      <node id="bc_c" mask="0x1f0000" description="Delay for TOB BC c" />     
      <node id="delay_locked_bc_a" mask="0x01000000" description="Delay locked for TOB BC bus a" />
      <node id="delay_locked_bc_b" mask="0x02000000" description="Delay locked for TOB BC bus b" />
      <node id="delay_locked_bc_c" mask="0x04000000" description="Delay locked for TOB BC bus c" />      
    </node>
  </node>
  
  <node id="flash_spi_ram" address="0x200" description="FPGA Configuration SPI interface"  fwinfo="endpoint;width=9">
        <node id="select" address="0x0"    permission="rw"/>
        <node id="num_words" address="0x2" permission="rw"/>
	<node id="command" address="0x3"   permission="rw">
	<node id="do_it" mask="0x1"/>
	</node>
        <node id="status" address="0x4" permission="r">
        <node id="busy" mask="0x1"/>
   </node>
	
      <node id="key_lock"  address="0x80" permission="rw" >
      <node id="key"  mask="0x7FFFFFFC"/>
      <node id="lock" mask="0x2"/>
      <node id="terr" mask="0x1"/>
    </node>
    <node id="timeout"   address="0x81" permission="rw" >
      <node id="timer" mask="0xFFFFF"/>
     </node>
	
    <node id="outgoing" address="0x100" mode="block" size="0x80" description="128wordRAM" permission="rw" />
    <node id="incoming" address="0x180" mode="block" size="0x80" description="128wordRAM" permission="rw" />
  </node>

 <node id="ram" address="0x1000"  mode="block" size="0x400"  description="1kword RAM" fwinfo="endpoint;width=10" permission="rw"/>
</node>
