From CMS firmware 0x202 and onward the new event builder seems to be working.

Here is an example of how to generate a fake multi-block event and unpack it.

To initialize the AMC13 for internal triggers, TTC loop-back and fake data, with two AMC inputs enabled:

    i 0-1 f l t            initialize
    wv 0x18 0x3800         set fake event size to 0x3800 64-bit words
    lt 1                   generate one trigger

Fake events contain 0x3800 64-bit words of data plus 3 extra words (two header and one trailer) generated by the AMC13. The block size is 0x1000 words, so these events will require 3 blocks.

To read data from the AMC13, first read the word count from Kintex offset 0xd (in 32-bit words). Then read that many words from the buffer at offset 0x20000. Then write any data to offset 0xc, which advances to the next page of the buffer.

Currently each block of a multi-block event is in one SDRAM page. The last block can be identified by noticing that the bits (M,S)=(0,1) in the AMC information words in the block header.

-- EricHazen - 26 May 2014

This topic: BUCMSPublic > WebHome > HcalDTC > AMC13CommonFirmwareProposal > AMC13DataUnpacking
Topic revision: r1 - 26 May 2014 - EricHazen
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2022 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback