]> jspc29.x-matter.uni-frankfurt.de Git - daqtools.git/commitdiff
new CTS Module for TRB3sc with RJ AddOn
authorJan Michel <j.michel@gsi.de>
Fri, 25 Oct 2019 15:30:19 +0000 (17:30 +0200)
committerJan Michel <j.michel@gsi.de>
Fri, 25 Oct 2019 15:30:19 +0000 (17:30 +0200)
web/CtsPlugins/CtsMod17.pm [new file with mode: 0644]

diff --git a/web/CtsPlugins/CtsMod17.pm b/web/CtsPlugins/CtsMod17.pm
new file mode 100644 (file)
index 0000000..82c82cc
--- /dev/null
@@ -0,0 +1,65 @@
+# Module: Unified AddOn Module for TRB3sc with KEL connectors and RJ-adapter
+package CtsMod17;
+
+@ISA = (CtsBaseModule);
+
+use warnings;
+use strict;
+use TrbRegister;
+use Data::Dumper;
+
+sub moduleName {"AddOn Input Multiplexer"}
+
+sub init {
+   my $self    = $_[0];
+   my $address = $_[1];
+   
+   my $trb  = $self->{'_cts'}{'_trb'};
+   
+   my $regs = $self->{'_registers'};
+   my $prop = $self->{'_properties'};
+   
+   my $cprop = $self->{'_cts'}{'_properties'};
+   my $header = $self->{'_cts'}{'_enum'}{0x16}->read();
+
+   print "Trigger Modules 0x12 and 0x17 cannot be instantiated in the same design\n" if exists $self->{'_cts'}{'_enum'}{0x12};
+   
+# registers
+   for(my $i = 0; $i < $header->{'len'}; $i++) {
+      my $key = "trg_input_mux$i";
+      
+      $regs->{$key} = new TrbRegister($address + 1 + $i, $trb, {
+         'input'  => {'lower' =>  0, 'len' => 7, 'type' => 'enum', 'enum' => 
+            { 0  => 'A[0]', 1  => 'A[1]',
+              2  => 'B[0]', 3  => 'B[1]',
+              4  => 'C[0]', 5  => 'C[1]',
+              6  => 'D[0]', 7  => 'D[1]',
+              8  => 'E[0]', 9  => 'E[1]',
+              10 => 'F[0]', 11 => 'F[1]',
+              12 => 'G[0]', 13 => 'G[1]',
+              14 => 'H[0]', 15 => 'H[1]',
+              16 => 'I[0]', 17 => 'I[1]',
+              
+              18 => 'int_trg[0]', 19 => 'int_trg[1]'
+            }
+         }
+      }, {
+         'accessmode' => "rw",
+         'export'     => 1,
+         'monitor' => '1',
+         'label' => "Input Multiplexer $i"
+      });
+      
+   }
+   
+
+   for(my $i = 0; $i < $header->{'itc_len'}; $i++) {
+      $self->{'_cts'}->getProperties->{'itc_assignments'}[$i + $header->{'itc_base'}] = "AddOn Multiplexer $i";
+   }
+
+# properties
+   $prop->{"trg_inp_mux_count"} = $header->{'len'};
+   $prop->{"trg_inp_mux_itc_base"} = $header->{'itc_base'};
+}
+
+1;