The full TMS system has been produced and installed at CERN and is
under test. Further software and FPGA development is being carried
The following work has been performed:
The third revision PUPE boards have been produced. The
complete set of 17 + 1 PUPE boards have been manufactured. These
have improved PCB layout to reduce ADC noise, improvements to the
ADC PLL clocking system and some other minor changes.
The Full TMS system has undergone general and performance
The software API has been modified following discussions with
CERN's software engineers.
The TmsControlGui test application has been improved with
abilities to access data from all PUPE channels.
The TmsTestData program has been created to test data access
from the while TMS system.
A number of software changes have been made to improve
features and performance when accessing the multiple PUPE channels
in the full TMS system.
The Full TMS System has been installed at CERN into the main
The layout of PUPE boards in the rack has been changed after
initial system tests. In the new layout no PUPE boards are in the
slots next to the power supply and cPCI controller. This reduces the
ADC noise picked up the the PUPE boards. The far right PUPE board is
now used as the master board for the digital timing signals.
The Full TMS system has had basic testing performed with the
PS machine at CERN. Not all of the digital timing and ADC wires were
available at the time, but a few channels where connected and basic
data capture and tests performed. The system functioned as expected,
tracking particle beam acceleration and capturing the data although
detailed data analysis was not done.
3.Meetings at CERN during full system
During the TMS system installation visit a number of discussions
and meetings were had with various CERN staff. This resulted in a
list of minor problems, issues and possible improved features for the
TMS system. The list of these is given below:
The TMS system can have multiple injection events. The
current system assumes only one injection event followed by a number
of harmonic change events. The FPGA firmware can already handle this
situation, but some minor changes to the software are required. We
will change the names of the Cycle Periods to be: CyclePeriodEvent*
rather than CyclePeriodHarmonic* to reflect the fact that the Cycle
Period may not had a harmonic change but an injection event to
The TmsControlGui application's labelling could be improved
to show what units the data fields are in. We will make these
It might be better to allow the bunch number to be entered as
digits in the TmsControlGui application. We will make this change.
There is a problem in the Cycle Parameter editor when a GATE
width of 1.0 or greater is used. We will investigate and fix this
The Diagnostics function could be improved by having a 32bit
post trigger delay counter. This could be done in the future.
The Diagnostics function could be improved by having the
ability to latch any highs that occur on the trigger data lines when
a lower clock frequency that 125MHz is used. This will allow the
user to see the trigger events when a whole cycles data is captured.
A pre-trigger data capture would also be useful. This could be done
in the future.
There are occasional data errors when reading the SDRAM data
from the PUPE boards. This is being worked upon.
It would be useful if the Mean data returned has a time field
rather than the number of samples. We will change the software to
For Calibration it is necessary to load a different initial
PLL frequency than for injection. We will add the Cycle Parameter
entry for this and this value will be loaded at CYCLE_START.
Investigate the reason that Cycle Parameters are not updated
sometimes when in simulation mode.
Occasionally the diagnostics data was not captured or
displayed correctly. We will investigate this.
Change the system to use bucket number rather than bunch
number when fetching the data.
Add the bucket number to bunch number conversion bit-masks to
the Cycle Parameter tables.
Add an API function to read the bunch number conversion
bit-masks and other Cycle Parameters for a given Cycle Type.
It would be very useful to be able to read the mean data for
any set of bunches at data read time. At the moment the mean for
only a single bunch can be read and the parameters need to be set up
prior to CYCLE_START. This makes it awkward for the software API and
only one user can request a particular bunches mean data at a time.
Although this is not called for in the specification it was clear
that this extra feature would be very useful to CERN. We have
determined that it is possible to implement this and have decided to
carry out the extra work to implement this feature under the
contract. The new bunch mean system should allow the 1ms means for
all bunches and all pick-ups to be captured and read from the
4.Work To do
Generally the full TMS system is in a functional state at CERN.
There is a small amount of work to be performed to complete the
system. As well as the work specified in the above section, there is
the following additional work to be performed:
CERN need to test the ADC performance with the system in its
The systems documentation needs to be finalised.
CERN need to create the client programs to call the
setNextCycle() function with appropriate Cycle Type.
CERN need to create the appropriate Cycle Parameter tables
for the different Cycle types.
The spare TMS Server, Module Controller and 3 PUPE boards
need to be shipped to CERN.
A training presentation needs to be written and presented at
The full software and FPGA source code needs to be shipped to
CERN so that they can further develop the system.
The full system was delivered slightly behind the revised
schedule. The detailed project schedule is at: