AMC13Tool Common Procedures

Actions
Update Firmware
Initialize AMC13
Send Local Triggers
Send Data over the DAQLink
Read Out Data

Update Firmware using AMC13Tool

  • Make sure that you have the latest firmware files for both the Spartan and Virtex chips by downloading the latest '.mcs' files from here, if needed e.g.
       cd ~/amc13_mcs
       wget http://physics.bu.edu/~wusx/download/AMC13/AMC13T1v0x0017_6vlx130t.mcs
       
  • Go to the directory which contains the desired firmware files and run AMC13Tool from this directory e.g.
       cd ~/amc13_mcs 
       AMC13Tool.exe
       
  • Program the new firmware to flash memory and then load the flash to both chips:
       Pick an action (h for menu): pv
       Current Virtex firmware version: 0x14
    
       1) AMC13T1v0x000f_6vlx130t.mcs
       2) AMC13T1v0x0010_6vlx130t.mcs
       3) AMC13T1v0x0012_6vlx130t.mcs
       4) AMC13T1v0x0013_6v130t.mcs
       5) AMC13T1v0x0014_6vlx130t.mcs
       6) **AMC13T1v0x0017_6vlx130t.mcs**
    
       Select desired MCS file. Hit <CR> to select best highlighted option
       Type '1-6' to select or '0' for menu: 
       
  • Check to make sure that the Current Virtex Firmware Version is not already the latest! If it is, then your firmware does not need to be updated; type '0' to return to the main menu
  • Type <CR> to select the highlighted file, which is the latest-version firmware file found in the current directory
        ./AMC13T1v0x0017_6vlx130t.mcs
        WARNING: you are about to reprogram flash memory. Are you sure? (y)
       
  • Type 'y' to program the flash or hit any other key to quit flash programming
  • After the flash has been programmed, you should see the following message:
       Flash successfully programmed and verified.
       Load the new flash memory to the chips to complete firmware update
       
  • This message indicates that the flash has been successfully programmed and verified! You are now ready to load the new firmware to the chip from flash memory.
  • The same exact process should be followed to program the Spartan Flash memory, using the initial command:
        Pick an action (h for menu): ps
       
  • Now that your flash memory has been successfully programmed, you are ready to load the flash to your Spartan and Virtex FPGAs:
       Pick an action (h for menu): L
       WARNING: you are about to reconfigure both spartan and virtex from flash memory. Are you sure? (y) y
       Wait 10 seconds to ensure the reconfiguration's completion:  0 
       Spartan and Virtex have been reconfigured from flash
       
  • Finally, to check and make sure that the flash has been successfully loaded to the AMC13:
       Pick an action (h for menu): fv
       Virtex Firmware Version: 0x17
       Spartan Firmware Version: 0xb
       
  • As we can see, the Virtex Firmware version has been updated to 0x17. Our AMC13 now has new Firmware!

Initialize AMC13

  • Before enabling your AMC13, it is a good idea to reset both chips and all counters:
       Pick an action (h for menu): rg
       *** Both chips have been issued a reset ***
    
       Pick an action (h for menu): rc
       *** Virtex Counters have been issued a reset ***
       
  • To enable the AMC13 from a list of inputs, use the command 'i' followed by the list of inputs to be enabled and a set of desired initialization conditions (which are specified here).
    • For example, to initialize AMCs 4 and 10 and to assert TTS backpressure, the command looks like:
         Pick an action (h for menu): i 4 10 b
         Enabling AMC inputs from list: 4, 10
         Link status: 04100410
         Stop EvB when Mon Buf Full
         'CONTROL1': 00174001
         
  • Check the status of the AMC13 counters and Control registers. It should look something like this (but not exactly):
       Pick an action (h for menu): st
    
       *****AMC13 Status*****
       Status display detail level: 1
       Control 0: 0300000b
         DAQ Link Down
         DAQ Link Almost Full
         Monitor Buffer Empty
       Control 1: 00174001
         MonBuff full stops EVB
         Run Mode
       AMC Link Status: 04100410
         AMC Enabled Inputs: 04, 10
         AMC Input links locked: 04, 10
       AMC Port Status: 0be90000
         --All AMC Link Versions Correct--
         Unsynced AMC Ports: 00, 03, 05, 06, 07, 08, 09, 11
       EVB Counters:
                        LSCDAQ status [001b]:          000031ac
                             Run time [0048]: 00000000 04307312
                           Ready time [004a]: 00000000 0430ab94
                            Busy time [004c]: 00000000 00000001
                   L1A ovfl warn time [0050]: 00000000 00000001
       AMC Counters:
                                              <---Link 04-----> <---Link 10----->
                          AMC Ctr ACK [000e]: 00000000 00000860 00000000 00000861
                               Resend [004a]: 00000000 00000001 00000000 00000001
                           Ctr Accept [004e]: 00000000 0000086b 00000000 0000086c
                            AMC13 ACK [0050]: 00000000 00000001 00000000 00000001
       
       
  • As you can see, 'Run Mode' is enabled and our 'Run time' counter is ticking away. We are now ready to accept triggers and create events
  • A complete list and description of the AMC13 registers, counters, and control bits can be found here

Send Local L1As

  • Make sure that the proper functionalities are enabled on the AMC13
    • To enable local triggers (and all AMC ports):
               Pick an action (h for menu): en 0-11 L
               
    • To use the local TTC signal, loop back an optical fiber cable to the bottom-most SFP connection on the AMC13 and enable the input, as well as local triggers:
               Pick an action (h for menu): en 0-11 T L
               
    • If you are not using the local signal, make sure that your external TTC fiber optic cable properly connected to the bottom-most SFP site on the front panel of your AMC13
  • Send Periodic Local L1As
    1. Set the Orbit/Bunch-count/random Number spacing between L1A generations.
      • For example to send an L1A every 0x100th orbit:
                    Pick an action (h for menu): tsp 0x100
                    
        As you can see, 0x100 has been written to register 0x1c, which controls OrN trigger spacing
    2. Enable local L1As:
               Pick an action (h for menu): lt e
               
      You should now see the AMC13 L1A counter (register 0x46) incrementing
    3. To disable periodically generated local L1As:
               Pick an action (h for menu): lt d
               
      The AMC13 L1A counter should now stop incrementing
  • Send Single non-periodic L1As
    1. Use the lt command followed by the number of non-periodic triggers you want to send (default to 1):
               Pick an action (h for menu): lt 100
               

Sending Data Over the DAQLink

  • DAQLink (LSC and LDC) does not yet exist for the current AMC13XG (updated Sept. 19, 2013).
  • Instruction for sending data over the DAQLink has been taken down to avoid confusion. If you require this information, please contact David Zou (dzou@bu.edu)

Reading out Events

ATTENTION: All owners of AMC13XG boards: Please upgrade your firmware to the latest build. All Virtex firmware versions older than 0x94 have a bug in the DDR readout controller, which may cause an IPBus transaction failure during block reads and consequently, while reading out (dumping) events.
  • After you have initialized your AMC13 (as instructed here), you are ready to receive triggers and read out events.
  • In the status display in the Initialize AMC13 section, the SDRAM buffer is empty, indicating that no events have been received.
  • After sending 100 L1As (instructions on how to generate local triggers here), the status display should now look something like (but not exactly):
       Pick an action (h for menu): st
    
       *****AMC13 Status*****
       Status display detail level: 1
       Control 0: 03000003
         DAQ Link Down
         DAQ Link Almost Full
       Control 1: 00174001
         MonBuff full stops EVB
         Run Mode
       AMC Link Status: 04100410
         AMC Enabled Inputs: 04, 10
         AMC Input links locked: 04, 10
       AMC Port Status: 0be90000
         --All AMC Link Versions Correct--
         Unsynced AMC Ports: 00, 03, 05, 06, 07, 08, 09, 11
       EVB Counters:
                        SDRAM Word Ct [000d]:          00000086
                    Unread SDRAM Evts [000e]:          00000064
                        LSCDAQ status [001b]:          0000c1ac
                              L1A Ctr [0046]: 00000000 00000064
                             Run time [0048]: 00000010 78f86712
                           Ready time [004a]: 00000010 78f8af94
                            Busy time [004c]: 00000000 00000001
                   L1A ovfl warn time [0050]: 00000000 00000001
                    Tot evs monitored [0056]: 00000000 00000064
       AMC Counters:
                                              <---Link 04-----> <---Link 10----->
                           AMC Accept [0000]: 00000000 00000064 00000000 00000064
                              AMC ACK [0002]: 00000000 00000064 00000000 00000064
                     AMC EvN Mismatch [0006]: 00000000 00000064 00000000 00000064
                     AMC OrN Mismatch [0008]: 00000000 00000064 00000000 00000064
                     AMC BcN Mismatch [000a]: 00000000 0000005f 00000000 0000004d
                      AMC Received Ev [000c]: 00000000 00000064 00000000 00000064
                          AMC Ctr ACK [000e]: 00000000 0020cf2a 00000000 0020cf26
            AMC Ev Buf near full time [0016]: 00000000 00003d18 00000000 00003d38
                          Total Words [0040]: 00000000 00002ee0 00000000 00002ee0
                               Resend [004a]: 00000000 00000001 00000000 00000001
                         AMC13 Accept [004c]: 00000000 00000064 00000000 00000064
                           Ctr Accept [004e]: 00000000 0020cf36 00000000 0020cf32
                            AMC13 ACK [0050]: 00000000 00000065 00000000 00000065
                        Received Evts [0052]: 00000000 00000064 00000000 00000064
                            Read Evts [0054]: 00000000 00000064 00000000 00000064
       
  • Descriptions of the AMC13 registers, counters, and control bits, can be found here
  • You can see that we now have '0x64' events in the SDRAM buffer, ready to be read out
  • In order to read out these events to a file for examination and further analysis use the 'df' command (whose specifics can be found here):
       Pick an action (h for menu): df test.dat
       Number of events to be dumped not specified
       Starting to dump 2048 events to file test.dat
       2000 events to go, current size= 134
       Wrote 100 to file 'test.dat'
       
  • This writes the events to the file 'test.dat' in binary format. The 'df' command also offers other kinds of file dumps, which are specified here

Building Events from uHTR

  • Step-by-step recipe for high rates (5Gb) test w/ AMC13 and uHTR using TTT on RatesTest page

-- CharlieHill - 19 Sep 2012

Edit | Attach | Watch | Print version | History: r24 | r18 < r17 < r16 < r15 | Backlinks | Raw View | Raw edit | More topic actions...
Topic revision: r16 - 26 Sep 2013 - DavidZou
 
  • Edit
  • Attach
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2019 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback