Below, the preliminary memory map for the Power PCs is shown. Apart from accessing the Raw-, Hit-, Pedestal-, and Sigma buffers, the HitFinding routines need no further interaction with the memory since all information is passed via input and returning arguments. Note that the memory is addressed via the PCI bus by three tasks:
Global Area Memory Map Offsets (Total = 8 MBytes)
All offsets must be added to Base
$0000'0000 - $0000'1000 ; VMEtaxi SiDAQ parameters Taxi/W PPC/Read 4KB max
$0000'0000 - $0000'0080 : Mailbox area
$0000'0080 - ; Status offset (STATOFF) length $80 Taxi/W PPC/R
$0000'0100 - ; SiDAQSPEC block (SPECOFF) length $80 Taxi/W PPC/R
$0000'1000 - ; Event Indicator Area (EVENTOFF) Taxi/PPC/W/R
(see separate section for description)
$0010'0000 - $001F'FFFF ; Event Data Area 1 Mbyte Taxi/R PPC/W
$0010'0000 - $0017'FFFF ; Raw Event Data 16 buffers each of 32 KBytes
$001N'0000 - $001N'7FFF ; Raw Event Data Buffer 2N (N=0 thru 7)
$001N'8000 - $001N'FFFF ; Raw Event Data Buffer 2N+1 (N=0 thru 7)
eg.
$0010'0000 - $0010'7FFF ; Raw Event Data Buffer 0
$0011'8000 - $0011'FFFF ; Raw Event Data Buffer 3
$0013'0000 - $0013'7FFF ; Raw Event Data Buffer 6
$0017'8000 - $0017'FFFF ; Raw Event Data Buffer 15
For each Raw Data Buffer the following offsets are written to by the Xilinx:
$7FF8 - $7FFB : Pipeline counter once ADC data are written
$7FFC - $7FFF : Xilinx Event Number flag once ADC data are written
The Event Number flag must be the last written word by the Xilinx.
It is then cleared by the ppcdaq_readout task for internal bookkeeping.
In principle the Xilinx needs only write access to the Global area over the PCI.
Note also the use of the location $001N'7FF4 as a last data word flag.
Should this last effective data word location be indicated none-zero, contrary to the
event number flag, the PIC is set to $FF with a software incremented event number.
$0018'0000 - $001F'FFFF ; Hit Event Data in blocks of maximum size 32 KBytes
eg.
$0018'0000 - $0018'7FFF ; Hit Event Data Buffer 0
$0019'8000 - $0019'FFFF ; Hit Event Data Buffer 3
$001B'0000 - $001B'7FFF ; Raw Event Data Buffer 6
$001F'8000 - $001F'FFFF ; Hit Event Data Buffer 15
$0020'0000 - $002F'FFFF ; Pedestals (8192*2*32 peds*16-bits) xi/PPC/R/W 1MB max
$0030'0000 - $003F'FFFF ; Simulation Event Data Area SIMODE bit 8 set (see below)
$0040'0000 - $005F'FFFF ; Available for constants storage xi/PPC/R/W 2MB
$0060'0000 - $006F'FFFF ; Reserved xi/PPC/R/W 1MB
$0070'0000 - $007F'FFFF ; Temporary PPC program space xi/W PPC/R 1MB max
$0070'0000 - $0070'7FFF ; Main task booted from fprom ($E'0000) on reset
$0070'8000 - $0070'FFFF ; Hit detection algorithm booted from memory on reset
Memory is battery-backup at $C0'8000
Raw Object from MPW-PPC-C. Real start at offset $8C.