Tags:
view all tags
---+++AMC13Tool Common Procedures | *Actions* | | [[#UpdateFirmware][Update Firmware]] | | [[#InitializeAMC13][Initialize AMC13]] | | [[#SendLocalTriggers][Send Local Triggers]] | | [[#SendDataOverDAQLink][Send Data over the DAQLink]] | | [[#ReadOutData][Read Out Data]] | #UpdateFirmware ---++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 [[http://ohm.bu.edu/~hazen/test/firmware.cgi][here]], if needed e.g. <verbatim> cd ~/amc13_mcs wget http://physics.bu.edu/~wusx/download/AMC13/AMC13T1v0x0017_6vlx130t.mcs </verbatim> * Go to the directory which contains the desired firmware files and run !AMC13Tool _from this directory_ e.g. <verbatim> cd ~/amc13_mcs AMC13Tool.exe </verbatim> * *NOTE*: Remember this executable can be run from any directory, as long as the path to it is correctly specified. If you don't want to specify the path every time, copy the executable to your user directory's =/bin= folder. <verbatim> (from directory which contains AMC13Tool) $ cp AMC13Tool ~/bin </verbatim> * Program the new firmware to flash memory and then load the flash to both chips: <verbatim> 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: </verbatim> * __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 <pre> ./AMC13T1v0x0017_6vlx130t.mcs WARNING: you are about to reprogram flash memory. Are you sure? (y) </pre> * 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: <pre> Flash successfully programmed and verified. Load the new flash memory to the chips to complete firmware update </pre> * 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: <pre> Pick an action (h for menu): ps </pre> * Now that your flash memory has been successfully programmed, you are ready to load the flash to your Spartan and Virtex FPGAs: <pre> 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 </pre> * Finally, to check and make sure that the flash has been successfully loaded to the AMC13: <pre> Pick an action (h for menu): fv Virtex Firmware Version: 0x17 Spartan Firmware Version: 0xb </pre> * As we can see, the Virtex Firmware version has been updated to 0x17. Our AMC13 now has new Firmware! #InitializeAMC13 ---++Initialize AMC13 * Before enabling your AMC13, it is a good idea to reset both chips and all counters: <pre> 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 *** </pre> * 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 [[AMC13Tool#AMC13FunctionalityRunControl][here]]). * For example, to initialize AMCs 4 and 10 and to assert TTS backpressure, the command looks like: <pre> 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 </pre> * Check the status of the AMC13 counters and Control registers. It should look something like this (but not _exactly_): <pre> 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 </pre> * 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 [[http://ohm.bu.edu/~hazen/CMS/AMC13/AMC13_Registers_2012-08-09.pdf][here]] #SendLocalTriggers ---++Send Local !L1As * Make sure that the proper functionalities are enabled on the AMC13 * To enable local triggers (and all AMC ports): <verbatim> Pick an action (h for menu): en 0-11 L </verbatim> * 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: <verbatim> Pick an action (h for menu): en 0-11 T L </verbatim> * 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: <verbatim> Pick an action (h for menu): tsp 0x100 </verbatim> As you can see, 0x100 has been written to register 0x1c, which controls !OrN trigger spacing 1. Enable local !L1As: <verbatim> Pick an action (h for menu): lt e </verbatim> You should now see the AMC13 !L1A counter (register 0x46) incrementing 1. To disable periodically generated local !L1As: <verbatim> Pick an action (h for menu): lt d </verbatim> 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): <verbatim> Pick an action (h for menu): lt 100 </verbatim> #SendDataOverDAQLink ---++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) #ReadOutData ---++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 [[#InitializeAMC13][here]]), you are ready to receive triggers and read out events. * In the status display in the [[#InitializeAMC13][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 [[#SendLocalTriggers][here]]), the status display should now look something like (but not _exactly_): <pre> 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 </pre> * Descriptions of the AMC13 registers, counters, and control bits, can be found [[http://ohm.bu.edu/~hazen/CMS/AMC13/AMC13_Registers_2012-08-09.pdf][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 [[AMC13Tool#AMC13FunctionalityDAQ][here]]): <pre> 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' </pre> * 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 [[AMC13Tool#AMC13FunctionalityDAQ][here]] #BuildingEventsFromUHTR ---++Building Events from uHTR * Step-by-step recipe for high rates (5Gb) test w/ AMC13 and uHTR using TTT on RatesTest page -- Main.CharlieHill - 19 Sep 2012
Edit
|
Attach
|
Watch
|
P
rint version
|
H
istory
:
r24
|
r19
<
r18
<
r17
<
r16
|
B
acklinks
|
V
iew topic
|
Raw edit
|
More topic actions...
Topic revision: r17 - 08 Oct 2013
-
DavidZou
Home
Site map
BUCMSPublic web
Main web
Sandbox web
TWiki web
BUCMSPublic Web
Create New Topic
Index
Search
Changes
Notifications
RSS Feed
Statistics
Preferences
P
View
Raw View
Print version
Find backlinks
History
More topic actions
Edit
Raw edit
Attach file or image
Edit topic preference settings
Set new parent
More topic actions
Account
Log In
Register User
Edit
Attach
Copyright © 2008-2023 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki?
Send feedback