<field name="DataRate" start="0" bits="28" format="unsigned" unit="s<sup>-1</sup>"/>
</register>
</group>
-
+
<!-- ##################################################################### -->
-
+
<group name="DataReceiver"
- address="0500" size="22" purpose="status" mode="rw" continuous="true">
- <register name="RFrameRate" address="0013" purpose="status" mode="r">
- <description>Merge of Nxyter and ADC Frame Rates, must be 31.25&middot;10<sup>6</sup>s<sup>-1</sup></description>
- <field name="RFrameRate" start="0" bits="27" format="unsigned" unit="s<sup>-1</sup>" />
- </register>
-
- <register name="ErrorBits" address="0014" purpose="status" mode="r">
+ address="0500" size="20" purpose="status" mode="rw" continuous="true">
+ <register name="ErrorBits" address="0000" purpose="status" mode="r">
<description>Status of Error Bits</description>
<field name="NX_Offline" start="0" bits="1" format="bitmask" purpose="status" mode="r"/>
<field name="Frame_Rate" start="1" bits="1" format="bitmask" purpose="status" mode="r"/>
<field name="ADC_CLK" start="8" bits="1" format="bitmask" purpose="status" mode="r"/>
</register>
- <register name="ResetBusy" address="000b" purpose="status" mode="rw">
+ <register name="ResetStatus" address="0001" purpose="status" mode="r">
<description>Reset Busy Status, Click to force reset</description>
- <field name="ResetBusy" start="0" bits="1" format="bitmask" />
+ <field name="RTimeout" start="0" bits="1" format="bitmask" purpose="status" mode="r"/>
+ <field name="ResetBusy" start="1" bits="1" format="bitmask" purpose="status" mode="rw"/>
+ </register>
+
+ <register name="MFrameRate" address="0002" purpose="status" mode="r">
+ <description>Merge of Nxyter and ADC Frame Rates, must be 31.25&middot;10<sup>6</sup>s<sup>-1</sup></description>
+ <field name="MFrameRate" start="0" bits="27" format="unsigned" unit="s<sup>-1</sup>" />
+ </register>
+
+ <register name="NXFrameRate" address="0003" purpose="status" mode="r">
+ <description>Nxyter Timestamp Frame Rate, must be 31.25&middot;10<sup>6</sup>s<sup>-1</sup></description>
+ <field name="NXFrameRate" start="0" bits="27" format="unsigned" unit="s<sup>-1</sup>" />
</register>
- <register name="RTimeout" address="000a" purpose="config" mode="r">
- <description>reset Timeout Flag</description>
- <field name="RTimeout" start="0" bits="1" format="bitmask" />
+ <register name="ADCFrameRate" address="0004" purpose="status" mode="r">
+ <description>ADC Data Frame Rate, must be 31.25&middot;10<sup>6</sup>s<sup>-1</sup></description>
+ <field name="ADCFrameRate" start="0" bits="27" format="unsigned" unit="s<sup>-1</sup>" />
</register>
-
- <register name="ResetCounter" address="000c" purpose="status" mode="r">
+
+ <register name="ResetCounter" address="0005" purpose="status" mode="r">
<description>Reset Handler Counter</description>
<field name="ResetCounter" start="0" bits="16" format="unsigned" />
</register>
- <register name="CurrentTimestamp" address="0000" purpose="status" mode="r">
- <description>Current Timestamp Value read from Fifo</description>
- <field name="CurrentTimestamp" start="0" bits="32" format="unsigned" />
+ <register name="ADCResetCtr" address="0006" purpose="status" mode="r">
+ <description>ADC Reset counter</description>
+ <field name="ADCResetCtr" start="0" bits="32" format="unsigned"/>
</register>
-
- <register name="TimestampFifoStatus" address="0001" purpose="status" mode="r">
- <description>Status of the timestamp Fifo</description>
-
- <field name="TSFifoFull" start="0" bits="1" format="boolean" errorflag="true" mode="r">
- <description>Timestamp Fifo full</description>
- </field>
-
- <field name="TSFifoEmpty" start="1" bits="1" format="boolean" mode="r">
- <description>Timestamp Fifo Empty</description>
- </field>
-
- <field name="TSFifoAlmostEmpty" start="2" bits="1" format="boolean" mode="r">
- <description>Timestamp Fifo Almost Empty</description>
- </field>
-
- <field name="NxFrameSynced" start="31" bits="1" format="boolean" mode="r">
- <description>Synchronized to Nxyter Frame</description>
- </field>
- </register>
-
- <register name="ResyncCounter" address="0002" purpose="status" mode="r">
- <description>Number of Resyncs</description>
- <field name="ResyncCounter" start="0" bits="32" format="unsigned" />
+
+ <register name="ParityErrRate" address="0007" purpose="status" mode="r">
+ <description>Parity Error Rate, must be 0, &middot;10<sup>6</sup>s<sup>-1</sup></description>
+ <field name="ParityErrRate" start="0" bits="27" format="unsigned" unit="s<sup>-1</sup>" />
</register>
- <register name="ParityErrRate" address="0015" purpose="status" mode="r">
- <description>Nxyter Timestamp Frame Rate, must be 31.25&middot;10<sup>6</sup>s<sup>-1</sup></description>
- <field name="ParityErrRate" start="0" bits="27" format="unsigned" unit="s<sup>-1</sup>" />
+ <register name="ADCNotLockCounter" address="0008" purpose="status" mode="r">
+ <description>ADC Handler not Lock Counter</description>
+ <field name="ADCNotLockCounter" start="0" bits="8" format="unsigned" />
+ </register>
+
+ <register name="FMergeErrorCtr" address="0009" purpose="status" mode="r">
+ <description>Frames Merge Error Counter</description>
+ <field name="FMergeErrorCounter" start="0" bits="8" format="unsigned" />
+ </register>
+
+ <register name="ResyncCounter" address="000a" purpose="status" mode="r">
+ <description>Number of Resyncs</description>
+ <field name="ResyncCounter" start="0" bits="12" format="unsigned" />
</register>
- <register name="ParityErrorCounter" address="0003" purpose="status" mode="r">
+ <register name="ParityErrorCounter" address="000b" purpose="status" mode="r">
<description>Number of Parity Errors</description>
<field name="ParityErrorCounter" start="0" bits="32" format="unsigned" errorflag="true" />
</register>
-
- <register name="ADCSNotLockCount" address="0004" purpose="status" mode="r">
+
+ <register name="ADCSNotLockCount" address="000c" purpose="status" mode="r">
<description>ADC Sampling PLL Clock Not Lock Counter</description>
<field name="ADCSNotLockCount" start="0" bits="32" format="unsigned" errorflag="true" />
</register>
-
- <register name="JohnsonCtrSync" address="0005" purpose="config" mode="rw">
- <description>johnson_counter_sync (experts only)</description>
- <field name="JohnsonCtrSync" start="0" bits="2" format="unsigned"/>
- </register>
-
- <register name="PllDPhase" address="0006" purpose="config" mode="rw">
+
+ <register name="PllDPhase" address="000d" purpose="config" mode="rw">
<description>PLL ADC Sampling Clock DPHASE</description>
<field name="PllDPhase" start="0" bits="4" format="unsigned" scale="2" unit="ns" />
</register>
- <register name="PllFineDelb" address="0007" purpose="config" mode="rw">
+ <register name="PllFineDelb" address="000e" purpose="config" mode="rw">
<description>PLL ADC Sampling Clock FINEDELB</description>
<field name="PllFineDelb" start="0" bits="4" format="unsigned" scale="125" unit="ps" />
</register>
-
- <register name="ADCRValue" address="0008" purpose="status" mode="r">
- <description>Current ADC raw value</description>
- <field name="ADCRValue" start="0" bits="12" format="unsigned"/>
- </register>
-
- <register name="ADCResetCtr" address="0009" purpose="status" mode="r">
- <description>ADC Reset counter</description>
- <field name="ADCResetCtr" start="0" bits="32" format="unsigned"/>
+
+ <register name="JohnsonCtrSync" address="000f" purpose="config" mode="rw">
+ <description>johnson_counter_sync (experts only)</description>
+ <field name="JohnsonCtrSync" start="0" bits="2" format="unsigned"/>
</register>
-
- <register name="TSDelay" address="000d" purpose="config" mode="rw">
+
+ <register name="TSDelay" address="0010" purpose="config" mode="rw">
<description>Delay of Timestamp Fifo</description>
<field name="TSDelay" start="0" bits="4" format="unsigned" />
</register>
+
+ <register name="TimestampFifoStatus" address="0011" purpose="status" mode="r">
+ <description>Status of the timestamp Fifo</description>
+
+ <field name="TSFifoFull" start="0" bits="1" format="boolean" errorflag="true" mode="r">
+ <description>Timestamp Fifo full</description>
+ </field>
+
+ <field name="TSFifoEmpty" start="1" bits="1" format="boolean" mode="r">
+ <description>Timestamp Fifo Empty</description>
+ </field>
+
+ <field name="TSFifoAlmostEmpty" start="2" bits="1" format="boolean" mode="r">
+ <description>Timestamp Fifo Almost Empty</description>
+ </field>
+
+ <field name="NxFrameSynced" start="31" bits="1" format="boolean" mode="r">
+ <description>Synchronized to Nxyter Frame</description>
+ </field>
+ </register>
- <register name="ADCBShift" address="000e" purpose="config" mode="rw">
+ <register name="ADCBShift" address="0012" purpose="config" mode="rw">
<description>ADC Bit Shift</description>
<field name="ShiftDir" start="3" bits="1" format="unsigned">
</field>
</register>
- <register name="ADCFNLockCtr" address="000f" purpose="status" mode="r">
- <description>ADC Frame Not Lock Counter</description>
- <field name="ADCFNLockCtr" start="0" bits="8" format="unsigned" />
+ <register name="CurrentTimestamp" address="0013" purpose="status" mode="r">
+ <description>Current Timestamp Value read from Fifo</description>
+ <field name="CurrentTimestamp" start="0" bits="32" format="unsigned" />
</register>
- <register name="NXFrameRate" address="0010" purpose="status" mode="r">
- <description>Nxyter Timestamp Frame Rate, must be 31.25&middot;10<sup>6</sup>s<sup>-1</sup></description>
- <field name="NXFrameRate" start="0" bits="27" format="unsigned" unit="s<sup>-1</sup>" />
- </register>
-
- <register name="ADCFrameRate" address="0011" purpose="status" mode="r">
- <description>ADC Data Frame Rate, must be 31.25&middot;10<sup>6</sup>s<sup>-1</sup></description>
- <field name="ADCFrameRate" start="0" bits="27" format="unsigned" unit="s<sup>-1</sup>" />
- </register>
-
- <register name="ADCTestValue" address="0012" purpose="status" mode="r">
- <description>ADC Test Channel Value</description>
- <field name="ADCTestValue" start="0" bits="12" format="unsigned"/>
- </register>
-
</group>
<!-- ##################################################################### -->
<group name="DataValidate"
- address="0120" size="17" purpose="status" mode="r" continuous="true">
+ address="0120" size="16" purpose="status" mode="r" continuous="true">
- <register name="HitRate" address="0004" purpose="status">
+ <register name="HitRate" address="0000" purpose="status">
<description>Total hit rate summed over all channels</description>
<field name="HitRate" start="0" bits="32" format="unsigned" unit="s<sup>-1</sup>"/>
</register>
-
- <register name="FrameRate" address="0005" purpose="status">
+
+ <register name="FrameRate" address="0001" purpose="status">
<description>Rate of Incoming Nxyter + ADC Frames, must be 31.25&middot;10<sup>6</sup>s<sup>-1</sup></description>
<field name="FrameRate" start="0" bits="32" format="unsigned" unit="s<sup>-1</sup>"/>
</register>
- <register name="PileupRate" address="0009" purpose="status" mode="r">
+ <register name="PileupRate" address="0002" purpose="status" mode="r">
<description>Pileup Rate</description>
<field name="PileupRate" start="0" bits="32" format="unsigned" unit="s<sup>-1</sup>" />
</register>
-
- <register name="OverflowRate" address="000a" purpose="status" mode="r">
+
+ <register name="OverflowRate" address="0003" purpose="status" mode="r">
<description>Overflow Rate</description>
<field name="OverflowRate" start="0" bits="32" format="unsigned" unit="s<sup>-1</sup>" />
</register>
-
- <register name="InvalidFrameCtr" address="0000" purpose="status">
- <description>Number of invalid frames</description>
- <field name="InvalidFrameCtr" start="0" bits="16" format="unsigned" />
- </register>
-
- <register name="ADCAverage" address="0007" purpose="status" mode="r">
- <description>Average of last valid ADC Values</description>
- <field name="ADCAverage" start="0" bits="12" format="unsigned"/>
- </register>
-
- <register name="ADCAverageNum" address="0008" purpose="config" mode="rw">
+
+ <register name="ADCAverageNum" address="0004" purpose="config" mode="rw">
<description>Number of Averages, power of two (2^n)</description>
<field name="ADCAverageNum" start="0" bits="4" format="unsigned" />
</register>
-
- <register name="ADCTRAverage" address="000b" purpose="status" mode="r">
- <description>Average of last Token Return ADC Values</description>
- <field name="ADCTRAverage" start="0" bits="12" format="unsigned"/>
+
+ <register name="ADCAverage" address="0005" purpose="status" mode="r">
+ <description>Average of last valid ADC Values</description>
+ <field name="ADCAverage" start="0" bits="12" format="unsigned"/>
</register>
-
- <register name="ADCTRError" address="000c" purpose="config" mode="rw">
+
+ <register name="ADCTRError" address="0006" purpose="config" mode="rw">
<description>ADCTR Error Status</description>
<field name="ADCTRError" start="0" bits="2" format="bitmask"/>
</register>
-
- <register name="ADCTRErrorRate" address="000f" purpose="status" mode="r">
+
+ <register name="ADCTRErrorRate" address="0007" purpose="status" mode="r">
<description>ADCTR Error Rate</description>
<field name="ADCTRErrorRate" start="0" bits="32" format="unsigned" unit="s<sup>-1</sup>" />
</register>
- <register name="ADCTRErrorCtr" address="0010" purpose="status" mode="r">
- <description>ADCTR Error Counter</description>
- <field name="ADCTRErrorCtr" start="0" bits="12" format="unsigned"/>
+ <register name="ADCTRAverage" address="0008" purpose="status" mode="r">
+ <description>Average of last Token Return ADC Values</description>
+ <field name="ADCTRAverage" start="0" bits="12" format="unsigned"/>
</register>
-
- <register name="ADCTRMean" address="000d" purpose="config" mode="rw">
+
+ <register name="ADCTRMean" address="0009" purpose="config" mode="rw">
<description>ADCTR Mean</description>
<field name="ADCTRMean" start="0" bits="32" format="unsigned"/>
</register>
- <register name="ADCTRLimit" address="000e" purpose="config" mode="rw">
+ <register name="ADCTRLimit" address="000a" purpose="config" mode="rw">
<description>ADCTR Limit</description>
<field name="ADCTRLimit" start="0" bits="12" format="unsigned"/>
</register>
+
+ <register name="ADCTRErrorCtr" address="000b" purpose="status" mode="r">
+ <description>ADCTR Error Counter</description>
+ <field name="ADCTRErrorCtr" start="0" bits="12" format="unsigned"/>
+ </register>
- <register name="ADCTRDebug" address="0003" purpose="config" mode="rw">
- <description>Reserved</description>
- <field name="ADCTRDebug" start="0" bits="1" format="boolean" />
+ <register name="PileupCount" address="000c" purpose="status">
+ <description>Pileup Counter</description>
+ <field name="PileupCount" start="0" bits="16" format="unsigned" />
</register>
- <register name="OverflowCount" address="0001" purpose="status">
+ <register name="OverflowCount" address="000d" purpose="status">
<description>Number of hit overflows</description>
<field name="OverflowCount" start="0" bits="16" format="unsigned" />
</register>
- <register name="PileupCount" address="0002" purpose="status">
- <description>Pileup Counter</description>
- <field name="PileupCount" start="0" bits="16" format="unsigned" />
+ <register name="InvalidFrameCtr" address="000e" purpose="status">
+ <description>Number of invalid frames</description>
+ <field name="InvalidFrameCtr" start="0" bits="16" format="unsigned" />
</register>
-
- <register name="Reserved1" address="0006" purpose="status" mode="r">
+
+ <register name="ADCTRDebug" address="000f" purpose="config" mode="rw">
<description>Reserved</description>
- <field name="Reserved" start="0" bits="32" format="unsigned"/>
+ <field name="ADCTRDebug" start="0" bits="1" format="boolean" />
</register>
</group>
-
+
<!-- ##################################################################### -->
<group name="NxyterI2C"
<field name="NxTestChGroup" start="0" bits="2" format="unsigned"/>
</register>
- <register name="I2COnline" address="0006" purpose="status" mode="r" >
+ <register name="NXOnline" address="0006" purpose="status" mode="r" >
<description>I2C Online, i.e. Nxyter is connected</description>
- <field name="I2COnline" start="0" bits="1" format="boolean"/>
+ <field name="NXOnline" start="0" bits="1" format="boolean"/>
</register>
</group>
</register>
- <register name="Icg" address="0010" purpose="config">
+ <register name="Icg" address="0010" purpose="config">
<description>16: Gate Voltage Preamplifier Current Sink (Vcg)</description>
<field name="Icg" start="0" bits="8" format="unsigned" purpose="config" mode="rw"/>
</register>
<field name="iTWC" start="0" bits="8" format="unsigned" purpose="config" mode="rw"/>
</register>
-<!--
- <register name="Spare1" address="001e" purpose="status" repeat="2">
- <description>30..31: Spare</description>
- <field name="Spare1" start="0" bits="32" format="bitmask" purpose="config" mode="r"/>
- </register>
--->
+ <!--
+ <register name="Spare1" address="001e" purpose="status" repeat="2">
+ <description>30..31: Spare</description>
+ <field name="Spare1" start="0" bits="32" format="bitmask" purpose="config" mode="r"/>
+ </register>
+ -->
<register name="Config1" address="0020" purpose="config">
<description>32: Configuration Register #1</description>
<field name="TSLSB" start="7" bits="1" format="bitmask" purpose="config" mode="rw">
<description>Nxyter Testpulse Channel Group (0=0,4,.. 1=1,5,.. 2=2,6,.. 3=3,7,..)</description>
</field>
</register>
-<!--
- <register name="Counter" address="0022" purpose="status" repeat="4">
- <description>34..37: Spare</description>
- <field name="Counter" start="0" bits="32" format="bitmask" purpose="config" mode="r"/>
- </register>
--->
+ <!--
+ <register name="Counter" address="0022" purpose="status" repeat="4">
+ <description>34..37: Spare</description>
+ <field name="Counter" start="0" bits="32" format="bitmask" purpose="config" mode="r"/>
+ </register>
+ -->
<register name="TPDelay" address="0026" purpose="config">
<description>38: Testpulse Delay</description>
<field name="TPDelay" start="0" bits="8" format="unsigned" purpose="config" mode="rw"/>
<description>39: Test Trigger Delay</description>
<field name="TTDelay" start="0" bits="8" format="unsigned" purpose="config" mode="rw"/>
</register>
-
- <!--
- <register name="Spare2" address="0028" purpose="status" repeat="3">
- <description>40..42: Spare</description>
- <field name="Spare2" start="0" bits="32" format="bitmask" purpose="config" mode="r"/>
- </register>
- -->
+
+ <!--
+ <register name="Spare2" address="0028" purpose="status" repeat="3">
+ <description>40..42: Spare</description>
+ <field name="Spare2" start="0" bits="32" format="bitmask" purpose="config" mode="r"/>
+ </register>
+ -->
<register name="ClkDelay" address="002b" purpose="config" repeat="3">
<description>43..45: Clock Delay Registers</description>
<field name="ClkDelay" start="0" bits="8" format="unsigned" purpose="config" mode="rw"/>
<description>Update Nxyter I2C Register</description>
<field name="UpdateRegI2C" start="0" bits="1" format="boolean" purpose="config"/>
</register>
-
+
<register name="UpdateRegDAC" address="0061" purpose="config" mode="rw">
<description>Update Nxyter DAC Register</description>
<field name="UpdateRegDAC" start="0" bits="1" format="boolean" purpose="config"/>
<field name="ChannelDown" start="5" bits="1" format="bitmask" purpose="config" mode="rw">
<description>Channel Down</description>
</field>
-
+
<field name="TrimValue" start="0" bits="5" format="unsigned" purpose="config" mode="rw">
<description>DAC Trim Value</description>
</field>
</register>
-
+
</group>
<!-- ##################################################################### -->
<!-- ##################################################################### -->
- <group name="NXControl"
+ <group name="NXStatus"
address="0103" size="10" purpose="status" mode="rw" continuous="true">
<register name="ErrorStatus" address="0009" purpose="status" mode="r" >
<field name="SetOffline" start="0" bits="1" format="boolean"/>
</register>
- <register name="I2COnlineS" address="0001" purpose="status" mode="r" >
+ <register name="I2COnline" address="0001" purpose="status" mode="r" >
<description>Nxyter I2C Online Status</description>
- <field name="I2COnlineS" start="0" bits="1" format="boolean"/>
+ <field name="I2COnline" start="0" bits="1" format="boolean"/>
</register>
- <register name="NxOffline" address="0002" purpose="status" mode="r" >
- <description>Nxyter Offline Status</description>
- <field name="NxOffline" start="0" bits="1" format="boolean"/>
+ <register name="NxOnline" address="0002" purpose="status" mode="r" >
+ <description>Nxyter Online Status</description>
+ <field name="NxOnline" start="0" bits="1" format="boolean"/>
</register>
- <register name="MainClkLock" address="0003" purpose="status" mode="r" >
- <description>Nxyter Main Clock Lock (250 MHz)</description>
+ <register name="MainClkLock" address="0003" purpose="status" mode="rw" >
+ <description>Nxyter Main Clock Lock (250 MHz), click to reset</description>
<field name="MainClkLock" start="0" bits="1" format="boolean"/>
</register>
<field name="ChannelHitCtr" start="0" bits="32" format="unsigned" rate="1" unit="s<sup>-1</sup>" />
</register>
</group>
-
+
<group name="PileupHist"
address="0900" size="128" purpose="config" mode="r" continuous="true">
<register name="ChannelPileupVal" address="0000" purpose="status" mode="r" repeat="128">
address="0a00" size="128" purpose="config" mode="r" continuous="true">
<register name="ChannelOvflVal" address="0000" purpose="status" mode="r" repeat="128">
<description>Continuous Overflow Counter per Channel</description>
- <field name="ChannelOvflVal" start="0" bits="32" format="unsigned" rate="1" unit="s<sup>-1</sup>" />
+ <field name="ChannelOvflVal" start="0" bits="32" format="unsigned" rate="1" unit="s<sup>-1</sup>" />
</register>
</group>
<description>ADC Value Average per Channel</description>
<field name="ChannelADCVal" start="0" bits="32" format="unsigned"/>
</register>
-
+
<register name="ADCNumAverages" address="0080" purpose="status" mode="rw">
<description>Number of Averages per Channel, power of two (2^n)</description>
<field name="ADCNumAverages" start="0" bits="3" format="unsigned"/>