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).
- 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
- Send Periodic Local L1As
- Set the Orbit/Bunch-count/random Number spacing between L1A generations.
- Enable local L1As:
Pick an action (h for menu): lt e
You should now see the AMC13 L1A counter (register 0x46) incrementing
- 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
- 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