]> jspc29.x-matter.uni-frankfurt.de Git - daqtools.git/commitdiff
added JTAG status registers
authorJan Michel <j.michel@gsi.de>
Fri, 28 Jun 2013 11:41:40 +0000 (13:41 +0200)
committerJan Michel <j.michel@gsi.de>
Fri, 28 Jun 2013 11:41:40 +0000 (13:41 +0200)
xml-db/database/jtag_registers_SPEC.xml

index 00dc2394e422d0daca64fbc234636b70e09a200d..7805ffea3b584c7e01e9273f0c44cb11c82d5dfb 100644 (file)
 <?xml version="1.0"  encoding="utf-8" ?>
 <TrbNet xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-xsi:noNamespaceSchemaLocation="TrbNet.xsd"
-  name="JtagController"
-  offset="1000"
-  >
-<group name="JtagCommonControl"
-       address="0000"  size="37"  function="config"  mode="rw"  continuous="true">
-
-  <register name="WaitBeforeStart"
-            address="0007" mode="rw" function ="config" >
-    <description>Wait time between write sequence and start signal.</description>
-    <field name="WaitBeforeStart"
-           start="0"   size="20"  mode="rw"  type="config"  format="integer"  defaultValue="0" >
-      <description>The number of MAPS clock cycles to wait after last write before sending the start signal. </description>
-    </field>
-  </register>
-  
-  <register name="TriggerInitSeq"
-            address="000c" mode="w" function ="trigger" >
-    <description>Trigger the init sequence.</description>
-    <field name="TriggerInitSeq"
-           start="0"   size="5"  mode="w"  type="trigger"  format="bitmask"  defaultValue="0" >
-      <description>A bitmask to trigger the init sequence on individual JTAG chains. </description>
-    </field>
-  </register>
-
-  <register name="TriggerReset"
-            address="000d" mode="w" function ="trigger" >
-    <description>Trigger the init sequence.</description>
-    <field name="TriggerReset"
-           start="0"   size="5"  mode="w"  type="trigger"  format="bitmask"  defaultValue="0" >
-      <description>A bitmask to trigger sending a reset pulse on individual JTAG chains </description>
-    </field>
-  </register>
-
-  <register name="TriggerStart"
-            address="000e" mode="w" function ="trigger" >
-    <description>Trigger sending a start pulse.</description>
-    <field name="TriggerStart"
-           start="0"   size="5"  mode="w"  type="trigger"  format="bitmask"  defaultValue="0" >
-      <description>A bitmask to trigger sending a start pulse on individual JTAG chains </description>
-    </field>
-  </register>
-
-  <register name="TriggerJtagRun"
-            address="000f" mode="w" function ="trigger" >
-    <description>Trigger running JTAG write.</description>
-    <field name="TriggerJtagRun"
-           start="0"   size="5"  mode="w"  type="trigger"  format="bitmask"  defaultValue="0" >
-      <description>A bitmask to trigger writing the JTAG registers three times on individual JTAG chains </description>
-    </field>
-  </register>
-
-  <register name="ResetBeforeInit"
-            address="0010" mode="rw" function ="config" >
-    <description>Generate a reset before doing init sequence</description>
-    <field name="ResetBeforeInit"
-           start="0"   size="1"  mode="rw"  type="config"  format="boolean"  defaultValue="0" >
-      <description>Enable to send a reset pulse before starting init sequence</description>
-    </field>
-  </register>
-
-  <register name="ResetAfterFirstWrite"
-            address="0011" mode="rw" function ="config" >
-    <description>Generate a reset after first register write sequence</description>
-    <field name="ResetAfterFirstWrite"
-           start="0"   size="1"  mode="rw"  type="config"  format="boolean"  defaultValue="0" >
-      <description>Enable to send a reset pulse after the first writing of JTAG registers</description>
-    </field>
-  </register>
-
-  <register name="TriggerWriteOnce"
-            address="0014" mode="w" function ="trigger" >
-    <description>Trigger writing all JTAG registers once</description>
-    <field name="TriggerWriteOnce"
-           start="0"   size="5"  mode="w"  type="trigger"  format="bitmask"  defaultValue="0" >
-      <description>Trigger writing all JTAG registers once on individual JTAG chains</description>
-    </field>
-  </register>
-
-  <group name="JtagOverride"
-       address="0020"  size="5"  function="config"  mode="rw"  continuous="true">
-    <description>Sets fixed values for all outputs for JTAG and sensor control and inverts the outputs if needed. One register for each JTAG chain.</description>
-    
-    <!--
-    MAPS_RESET_OUT(i) <= (maps_reset(i)  xor signals_invert(i)(10)) when signals_invert(i)(11) = '1' else signals_invert(i)(10);
-    MAPS_START_OUT(i) <= (maps_start(i)  xor signals_invert(i)(8))  when signals_invert(i)(9) = '1'  else signals_invert(i)(8);
-    JTAG_TCK_OUT(i)   <= (jtag_tck(i)    xor signals_invert(i)(6))  when signals_invert(i)(7) = '1'  else signals_invert(i)(6);
-    JTAG_TMS_OUT(i)   <= (jtag_tms(i)    xor signals_invert(i)(4))  when signals_invert(i)(5) = '1'  else signals_invert(i)(4);
-    JTAG_TDI_OUT(i)   <= (jtag_tdi(i)    xor signals_invert(i)(2))  when signals_invert(i)(3) = '1'  else signals_invert(i)(2);
-    jtag_tdo(i)       <= (JTAG_TDO_IN(i) xor signals_invert(i)(0))  when signals_invert(i)(1) = '1'  else signals_invert(i)(0);
-
-    clk_maps_tmp_p(i) <= signals_invert(i)(12) when signals_invert(i)(13) = '1' else signals_invert(i)(12);
-    clk_maps_tmp_n(i) <= not signals_invert(i)(12) when signals_invert(i)(13) = '1' else signals_invert(i)(12);
-      -->
+        xsi:noNamespaceSchemaLocation="TrbNet.xsd"
+        name="JtagController"
+        offset="0000"
+        >
+  <!--===========================================-->
+  <!-- Common JTAG control registers             -->
+  <!--===========================================-->
+  <group name="JtagCommonControl"
+         address="1000"  size="37"  function="config"  mode="rw"  continuous="true">
+    <register name="WaitBeforeStart"
+              address="0007" mode="rw" function ="config" >
+      <description>Wait time between write sequence and start signal.</description>
+      <field name="WaitBeforeStart"
+             start="0"   size="20"  mode="rw"  type="config"  format="integer"  defaultValue="0" >
+        <description>The number of MAPS clock cycles to wait after last write before sending the start signal. </description>
+      </field>
+    </register>
+    <register name="TriggerInitSeq"
+              address="000c" mode="w" function ="trigger" >
+      <description>Trigger the init sequence.</description>
+      <field name="TriggerInitSeq"
+             start="0"   size="5"  mode="w"  type="trigger"  format="bitmask"  defaultValue="0" >
+        <description>A bitmask to trigger the init sequence on individual JTAG chains. </description>
+      </field>
+    </register>
+    <register name="TriggerReset"
+              address="000d" mode="w" function ="trigger" >
+      <description>Trigger the init sequence.</description>
+      <field name="TriggerReset"
+             start="0"   size="5"  mode="w"  type="trigger"  format="bitmask"  defaultValue="0" >
+        <description>A bitmask to trigger sending a reset pulse on individual JTAG chains </description>
+      </field>
+    </register>
+    <register name="TriggerStart"
+              address="000e" mode="w" function ="trigger" >
+      <description>Trigger sending a start pulse.</description>
+      <field name="TriggerStart"
+             start="0"   size="5"  mode="w"  type="trigger"  format="bitmask"  defaultValue="0" >
+        <description>A bitmask to trigger sending a start pulse on individual JTAG chains </description>
+      </field>
+    </register>
+    <register name="TriggerJtagRun"
+              address="000f" mode="w" function ="trigger" >
+      <description>Trigger running JTAG write.</description>
+      <field name="TriggerJtagRun"
+             start="0"   size="5"  mode="w"  type="trigger"  format="bitmask"  defaultValue="0" >
+        <description>A bitmask to trigger writing the JTAG registers three times on individual JTAG chains </description>
+      </field>
+    </register>
+    <register name="ResetBeforeInit"
+              address="0010" mode="rw" function="config" >
+      <description>Generate a reset before doing init sequence</description>
+      <field name="ResetBeforeInit"
+             start="0"   size="1"  mode="rw"  type="config"  format="boolean"  defaultValue="0" >
+        <description>Enable to send a reset pulse before starting init sequence</description>
+      </field>
+    </register>
+    <register name="ResetAfterFirstWrite"
+              address="0011" mode="rw" function="config" >
+      <description>Generate a reset after first register write sequence</description>
+      <field name="ResetAfterFirstWrite"
+             start="0"   size="1"  mode="rw"  type="config"  format="boolean"  defaultValue="0" >
+        <description>Enable to send a reset pulse after the first writing of JTAG registers</description>
+      </field>
+    </register>
+    <register name="TriggerWriteOnce"
+              address="0014" mode="w" function ="trigger" >
+      <description>Trigger writing all JTAG registers once</description>
+      <field name="TriggerWriteOnce"
+             start="0"   size="5"  mode="w"  type="trigger"  format="bitmask"  defaultValue="0" >
+        <description>Trigger writing all JTAG registers once on individual JTAG chains</description>
+      </field>
+    </register>
+    <group name="JtagOverride"
+           address="0020"  size="5"  function="config"  mode="rw"  continuous="true">
+      <description>Sets fixed values for all outputs for JTAG and sensor control and inverts the outputs if needed. One register for each JTAG chain.</description>
+      <register name="JtagOverride"
+                address="0020"  repeat="5" function="config" mode="rw" >
+        <description>Sets fixed values for all outputs for JTAG and sensor control and inverts the outputs if needed. One register for each JTAG chain.</description>
+        <field name="InvertTDO"
+               start="0"   size="1"  mode="rw"  type="config"  format="boolean"  defaultValue="0" >
+          <description>Invert TDO input signal</description>
+        </field>      
+        <field name="InvertTDI"
+               start="2"   size="1"  mode="rw"  type="config"  format="boolean"  defaultValue="0" >
+          <description>Invert TDI output signal</description>
+        </field>
+        <field name="InvertTMS"
+               start="4"   size="1"  mode="rw"  type="config"  format="boolean"  defaultValue="0" >
+          <description>Invert TMS output signal</description>
+        </field>
+        <field name="InvertTCK"
+               start="6"   size="1"  mode="rw"  type="config"  format="boolean"  defaultValue="0" >
+          <description>Invert TCK output signal</description>
+        </field>
+        <field name="InvertStart"
+               start="8"   size="1"  mode="rw"  type="config"  format="boolean"  defaultValue="0" >
+          <description>Invert Start output signal</description>
+        </field>
+        <field name="InvertReset"
+               start="10"   size="1"  mode="rw"  type="config"  format="boolean"  defaultValue="0" >
+          <description>Invert Reset output signal</description>
+        </field>
+        <field name="InvertClock"
+               start="12"   size="1"  mode="rw"  type="config"  format="boolean"  defaultValue="0" >
+          <description>Invert Clock output signal</description>
+        </field>
+        <field name="EnableTDO"
+               start="1"   size="1"  mode="rw"  type="config"  format="boolean"  defaultValue="0" >
+          <description>Enable TDO input signal</description>
+        </field>      
+        <field name="EnableTDI"
+               start="3"   size="1"  mode="rw"  type="config"  format="boolean"  defaultValue="0" >
+          <description>Enable TDI output signal</description>
+        </field>
+        <field name="EnableTMS"
+               start="5"   size="1"  mode="rw"  type="config"  format="boolean"  defaultValue="0" >
+          <description>Enable TMS output signal</description>
+        </field>
+        <field name="EnableTCK"
+               start="7"   size="1"  mode="rw"  type="config"  format="boolean"  defaultValue="0" >
+          <description>Enable TCK output signal</description>
+        </field>
+        <field name="EnableStart"
+               start="9"   size="1"  mode="rw"  type="config"  format="boolean"  defaultValue="0" >
+          <description>Enable Start output signal</description>
+        </field>
+        <field name="EnableReset"
+               start="11"   size="1"  mode="rw"  type="config"  format="boolean"  defaultValue="0" >
+          <description>Enable Reset output signal</description>
+        </field>
+        <field name="EnableClock"
+               start="13"   size="1"  mode="rw"  type="config"  format="boolean"  defaultValue="0" >
+          <description>Enable Clock output signal</description>
+        </field>
+      </register>
+    </group>
+  </group>
+  <!--===========================================-->
+  <!--JTAG Status registers for each chain       -->
+  <!--===========================================-->
+  <group name="JtagStatus"
+         address="1800"  size="40"  function="status"  mode="r"  continuous="true">
+    <group name="JtagChainStatus"
+           address="1800"  size="8"  repeat="5"  function="status"  mode="r"  continuous="true">
+      <register  name="JtagErrorCount1"
+                address="0002" function="status" mode="r" >
+        <field name="ErrorsReadId"
+               start="0"   size="16"  mode="r"  type="status"  format="integer" >
+          <description>Number of read errors during "read id" operation</description>
+        </field>
+        <field name="ErrorsWrite"
+               start="16"   size="16"  mode="r"  type="status"  format="integer" >
+          <description>Number of read errors during write operation</description>
+        </field>
+      </register>
+      <register  name="JtagErrorCount2"
+                address="0003" function="status" mode="r" >
+        <field name="ErrorsDataChanged"
+               start="0"   size="16"  mode="r"  type="status"  format="integer" >
+          <description>Number of times data read back from the sensor was not identical to the data written to the sensor.</description>
+        </field>
+        <field name="ErrorsSampling"
+               start="16"   size="16"  mode="r"  type="status"  format="integer" >
+          <description>Number of sampling errors of TDI signal. The signal from the sensor is sampled three times for each bit, all occurrences must be equal.</description>
+        </field>
+      </register>
+      <register  name="JtagRunCounter"
+                address="0004" function="status" mode="r" >
+        <field name="JtagRunCounter"
+               start="0"   size="32"  mode="r"  type="status"  format="integer" >
+          <description>Number of times the JTAG controller run a full sequence</description>
+        </field>
+      </register>
+      <register  name="JtagStatusFlags"
+                address="0005" function="status" mode="r" >
+        <field name="JtagStarted"
+               start="0"   size="1"  mode="r"  type="status"  format="boolean" >
+          <description>JTAG has been started</description>
+        </field>
+        <field name="JtagLastSuccesful"
+               start="4"   size="1"  mode="r"  type="status"  format="boolean" >
+          <description>Last JTAG run was successful</description>
+        </field>
+        <field name="JtagLastDataChanged"
+               start="8"   size="1"  mode="r"  type="status"  format="boolean" >
+          <description>Data in the sensor was corrupted at last JTAG run</description>
+        </field>
+        <field name="JtagLastWriteError"
+               start="12"   size="1"  mode="r"  type="status"  format="boolean" >
+          <description>Last run had a JTAG write error</description>
+        </field>
+        <field name="JtagLastReadError"
+               start="16"   size="1"  mode="r"  type="status"  format="boolean" >
+          <description>Last run had a JTAG read error</description>
+        </field>
+        <field name="JtagCrcError"
+               start="20"   size="1"  mode="r"  type="status"  format="boolean" >
+          <description>Last run had a JTAG CRC error</description>
+        </field>
+      </register>
+    </group>
   </group>
-
-</group>
-
 </TrbNet>