madcchain create name ?option value...?
madcchain config name option value?..?
madcchain cget name ?option?
The madcchain provides the ability to:
Synchonize the timestamps of a set of Mesytec modules. These include MADC32, MQDC32, MTDC32 and MDPP modules with various firmware.
Do an efficient bulk read of theses modules.
To be used in a madcchain the modules must occupy a physcically continguous set of backplane slots. This is required because of how the chain block transfer to read out all modules in the chain operates.
-cbltaddress vme-addressThis address is programmed into all chain modules as the transfer address from which the CBLT read will be perfromed.
-mcastaddresss vme-addressThe multicast address that will be used to synchonously clear the module timestamps e.g.
-maxwordspermodule nwordsIf not programmed, this is 512. This value is used to provide the maximum 32 bit words each module can buffer and to size the block read performed by the CBLT. If not programmed, this defaults to 512
-modules module-name-listSpecifies the names of the modules in the chain. Note, these modules should not be in the event stack, but the chain should be. The modules must exist and be madc, mtdc or mqdc modules. See the EXAMPLE. The only requirements in ordering the list of modules is that the first module in the list be the modules with the lowest slot number, and the last, the module with the highest slot number.
madc create adc -base 0x01000000; # Slot 5 e.g.
mtdc create tdc -base 0x02000000; # Slot 6 e.g.
mqdc create qdc -base 0x03000000; # Slot 7 e.g.
madc create anotheradc -base 0x040000 ; #slot 8.
madcchain create chain -cbltaddress 0x10000000 -mcastaddresss 0x20000000
madcchain config chain -module [list adc qdc tdc anotheradc]; # first and last are order important.
stack create event -trigger nim1 -modules [list chain ...]