]> jspc29.x-matter.uni-frankfurt.de Git - daqtools.git/commitdiff
new registers in Jtag Controller
authorJan Michel <j.michel@gsi.de>
Tue, 6 Aug 2013 11:54:01 +0000 (13:54 +0200)
committerJan Michel <j.michel@gsi.de>
Tue, 6 Aug 2013 11:54:01 +0000 (13:54 +0200)
xml-db/database/JtagController.xml

index 8f32ba01433e70ff4bb3d4e9d30453ff61d34cca..6a2731d889f3541cf07ea05aafa12db9fa8ec820 100644 (file)
       </register>
     </group>
   </group>
+  <!--===========================================-->
+  <!--JTAG registers for each chain              -->
+  <!--===========================================-->  
+  <group name="JtagChain"
+               address="0000"  size="1024"  purpose="config"  mode="rw" continuous="false" >
+    <register name="JtagRAM"
+                address="0000"  repeat="256"  purpose="config"  mode="rw">
+      <description>RAM with content of JTAG registers for sensors. Contains several banks, one for each sensor</description>
+      <field name="JtagRAM"
+              start="0" bits="32" mode="rw"  purpose="config"  format="raw" >
+        <description>content of JTAG registers in sensors</description>
+      </field>      
+    </register>
+    <register name="JtagReadbackRAM"
+                address="0100"  repeat="256"  purpose="status"  mode="r">
+      <description>RAM with content of JTAG registers read back from sensors. This RAM has to be explicitly updated by a slow-control command</description>
+      <field name="JtagReadbackRAM"
+              start="0" bits="32" mode="r"  purpose="status"  format="raw" >
+        <description>Read-back registers from sensors</description>
+      </field>       
+    </register>    
+    <group name="JtagControl"
+           address="0200"   size="256"   purpose="config" mode="rw" continuous="false">
+      <description>Control and Status registers for each JTAG chain</description>
+      <group name="JtagChainSetup"
+            address="0000"   size="9"   purpose="config" mode="rw" continuous="true">
+        <description>Setup of chain length and timing of JTAG signals</description>
+        <register name="NumchipsConfigured"
+                  address="0000" mode="rw" purpose ="config" >
+          <description>Number of sensors available in chain and in configuration RAM</description>
+          <field name="NumchipsConfigured"
+                start="0" bits="8"  mode="rw"  purpose="config"  format="unsigned">
+          </field>
+        </register>        
+
+        <register name="JtagClockCycleLength"
+                  address="0001" mode="rw" purpose ="config" >
+          <description>Duration of a JTAG clock cycle in system clock cycles</description>
+          <field name="JtagClockCycleLength"
+                start="0" bits="32"  mode="rw"  purpose="config"  format="unsigned">
+          </field>
+        </register> 
+
+        <register name="JtagClockTime1"
+                  address="0002" mode="rw" purpose ="config" >
+          <description>Time of the rising edge of the TCK signal</description>
+          <field name="JtagClockTime1"
+                start="0" bits="32"  mode="rw"  purpose="config"  format="unsigned">
+          </field>
+        </register> 
+
+        <register name="JtagClockTime2"
+                  address="0003" mode="rw" purpose ="config" >
+          <description>Time of the falling edge of the TCK signal</description>
+          <field name="JtagClockTime2"
+                start="0" bits="32"  mode="rw"  purpose="config"  format="unsigned">
+          </field>
+        </register> 
+
+        <register name="JtagClockSample1"
+                  address="0004" mode="rw" purpose ="config" >
+          <description>First reading of TDO signal</description>
+          <field name="JtagClockSample1"
+                start="0" bits="32"  mode="rw"  purpose="config"  format="unsigned">
+          </field>
+        </register> 
+
+        <register name="JtagClockSample2"
+                  address="0005" mode="rw" purpose ="config" >
+          <description>Second reading of TDO signal</description>
+          <field name="JtagClockSample2"
+                start="0" bits="32"  mode="rw"  purpose="config"  format="unsigned">
+          </field>
+        </register> 
+
+        <register name="JtagClockSample3"
+                  address="0006" mode="rw" purpose ="config" >
+          <description>Third reading of TDO signal</description>
+          <field name="JtagClockSample3"
+                start="0" bits="32"  mode="rw"  purpose="config"  format="unsigned">
+          </field>
+        </register>         
+
+        <register name="JtagSetDataTime"
+                  address="0007" mode="rw" purpose ="config" >
+          <description>Time of change on TDO and TMS signals</description>
+          <field name="JtagSetDataTime"
+                start="0" bits="32"  mode="rw"  purpose="config"  format="unsigned">
+          </field>
+        </register>  
+        
+        <register name="JtagDelayExpectValue"
+                  address="0008" mode="rw" purpose ="config" >
+          <description>Delay of the return signal in TCK cycles</description>
+          <field name="JtagDelayExpectValue"
+                start="0" bits="2"  mode="rw"  purpose="config"  format="unsigned">
+          </field>
+        </register>  
+      </group>
+
+      <group name="JtagChainStatus"
+            address="0010"   size="5"   purpose="status" mode="r" continuous="true">
+        <description>Status information about the JTAG chain</description>
+        
+        <register name="JtagRunCount"
+                  address="0000" mode="r" purpose ="status" >
+          <description>Number of JTAG cycles</description>
+          <field name="JtagRunCount"
+                start="0" bits="32"  mode="r"  purpose="status"  format="unsigned">
+          </field>
+        </register>          
+
+        <register name="JtagNumchipsActive"
+                  address="0001" mode="r" purpose ="status" >
+          <description>Number of activated chips in chain</description>
+          <field name="JtagNumchipsActive"
+                start="0" bits="4"  mode="r"  purpose="status"  format="unsigned">
+          </field>
+        </register>          
+
+        <register name="JtagTriggerCount"
+                  address="0002" mode="r" purpose ="status" >
+          <description>Number of JTAG cycle triggers (aka off-spill triggers)</description>
+          <field name="JtagTriggerCount"
+                start="0" bits="32"  mode="r"  purpose="status"  format="unsigned">
+          </field>
+        </register>          
+
+        <register name="JtagLastNotRemoved"
+                  address="0003" mode="r" purpose ="status" >
+          <description>Number of the last, not removed sensor in the chain</description>
+          <field name="JtagLastNotRemoved"
+                start="0" bits="4"  mode="r"  purpose="status"  format="unsigned">
+          </field>
+        </register>          
+
+        <register name="JtagCrcStatus"
+                  address="0004" mode="r" purpose ="status" >
+          <description>Flags for each sensor, set if CRC of read-back values matched</description>
+          <field name="JtagCrcStatus"
+                start="0" bits="32"  mode="r"  purpose="status"  format="bitmask">
+          </field>
+        </register>          
+
+      </group>
+
+      <group name="JtagChainControl"
+            address="0040"   size="4"   purpose="config" mode="rw" continuous="true">
+        <description>Control registers for the JTAG chain</description>
+        
+        <register name="JtagStart"
+                  address="0000" mode="rw" purpose ="config" >
+          <description>Control operation of JTAG chain</description>
+          <field name="JtagRefreshActive"
+                start="0" bits="1"  mode="rw"  purpose="config"  format="boolean">
+            <description>Activates waiting for the Off-Spill-Trigger. i.e. activates the JTAG refresh (jtag_refresh_active)</description>
+          </field>
+          <field name="JtagCheck1Active"
+                start="1" bits="1"  mode="rw"  purpose="config"  format="boolean">
+            <description>Disables writing to JTAG registers, read-back only (jtag_check1_active)</description>
+          </field>
+        </register>  
+        
+        <register name="JtagRemoveSensor"
+                  address="0001" mode="rw" purpose ="config" >
+          <description>Control register to insert or remove individual sensors from the chain</description>
+          <field name="JtagRemoveSensorNumber"
+                start="0" bits="4"  mode="rw"  purpose="config"  format="unsigned">
+            <description>The number of the sensor that should be removed or inserted</description>
+          </field>
+          <field name="JtagRemoveSensorState"
+                start="31" bits="1"  mode="rw"  purpose="config"  format="boolean">
+            <description>Selects whether the sensor should be removed (1) or inserted (0)</description>
+          </field>
+        </register>    
+        
+        <register name="JtagCsOptions"
+                  address="0002" mode="rw" purpose ="config" >
+          <description>Set CS Options</description>
+          <field name="JtagBypassTestchain"
+                start="0" bits="1"  mode="rw"  purpose="config"  format="boolean">
+            <description>Skip bypass_reg_testchain if set</description>
+          </field>
+        </register>   
+        
+        <register name="JtagRamBaseAddr"
+                  address="0003" mode="rw" purpose ="config" >
+          <description>Set CS Options</description>
+          <field name="JtagRamBaseAddr"
+                start="0" bits="4"  mode="rw"  purpose="config"  format="unsigned">
+            <description>Base address for JTAG register RAM</description>
+          </field>
+        </register>   
+      </group>  
+
+      <group name="JtagChainDebug"
+            address="0050"   size="8"   purpose="config" mode="rw" continuous="true">
+        <description>Control registers for the JTAG chain debugging</description>
+     
+        <register name="JtagSetBreakpoint"
+                  address="0000" mode="rw" purpose ="config" >
+          <description>Set Breakpoint to stop state machine according to VHDL code</description>
+          <field name="JtagSetBreakpoint"
+                start="0" bits="8"  mode="rw"  purpose="config"  format="hex">
+          </field>
+        </register>  
+              
+        <register name="JtagCopyRam3"
+                  address="0001" mode="rw" purpose ="trigger" >
+          <description>Trigger copy of error counter RAM</description>
+          <field name="JtagCopyRam3"
+                start="0" bits="1"  mode="rw"  purpose="config"  format="boolean">
+          </field>
+        </register>        
+  
+        <register name="JtagCopyRam1"
+                  address="0002" mode="w" purpose ="trigger" >
+          <description>Trigger copy of JTAG read-back RAM</description>
+          <field name="JtagCopyRamReadError"
+                start="0" bits="1"  mode="w"  purpose="trigger"  format="boolean">
+            <description>Trigger copy of JTAG read-back RAM on read error</description>
+          </field>
+          <field name="JtagCopyRamWriteError"
+                start="1" bits="1"  mode="w"  purpose="trigger"  format="boolean">
+            <description>Trigger copy of JTAG read-back RAM on write error</description>
+          </field>
+          <field name="JtagCopyRamDataChanged"
+                start="2" bits="1"  mode="w"  purpose="trigger"  format="boolean">
+            <description>Trigger copy of JTAG read-back RAM on data changed</description>
+          </field>
+          <field name="JtagCopyRamNextRun"
+                start="3" bits="1"  mode="w"  purpose="trigger"  format="boolean">
+            <description>Trigger copy of JTAG read-back RAM after next run</description>
+          </field>
+        </register> 
+        
+        <register name="JtagFsmState"
+                  address="0003" mode="r" purpose ="status" >
+          <description>Trigger copy of error counter RAM</description>
+          <field name="JtagFsmState"
+                start="0" bits="8"  mode="r"  purpose="status"  format="hex">
+          </field>
+        </register>  
+        
+        <register name="JtagRam1RunCounter"
+                  address="0004" mode="r" purpose ="status" >
+          <description>Run counter at the time RAM1 was copied</description>
+          <field name="JtagRam1RunCounter"
+                start="0" bits="32"  mode="r"  purpose="status"  format="unsigned">
+          </field>
+        </register>          
+        <register name="JtagRam1ChainStatus"
+                  address="0005" mode="r" purpose ="status" >
+          <description>Chain status at the time RAM1 was copied</description>
+          <field name="JtagRam1ChainStatus"
+                start="0" bits="32"  mode="r"  purpose="status"  format="hex">
+          </field>
+        </register>          
+
+        <register name="JtagRam3RunCounter"
+                  address="0006" mode="r" purpose ="status" >
+          <description>Run counter at the time RAM3 was copied</description>
+          <field name="JtagRam3RunCounter"
+                start="0" bits="32"  mode="r"  purpose="status"  format="unsigned">
+          </field>
+        </register>          
+        <register name="JtagRam3ChainStatus"
+                  address="0007" mode="r" purpose ="status" >
+          <description>Chain status at the time RAM3 was copied</description>
+          <field name="JtagRam3ChainStatus"
+                start="0" bits="32"  mode="r"  purpose="status"  format="hex">
+          </field>
+        </register> 
+
+      </group>  
+
+    </group>
+    <register name="JtagErrorCounters"
+                address="0300"  repeat="256"  purpose="status"  mode="r">
+      <description>RAM with error counters for individual registers and sensors. Needs to be updated via slow-control command</description>
+      <field name="JtagErrorCounters"
+              start="0" bits="32" mode="r"  purpose="status"  format="unsigned" >
+        <description>Error Counters for JTAG registers</description>
+      </field>        
+    </register>    
+  </group>
 </TrbNetEntity>