Howto implement to OLD_TO_NEW converter
The OLD_TO_NEW converter has the old trigger bus as an input, configured in "DTU-mode". On the DaqNetwork
it has to emulate the CTS (central trigger system).
First, the converter entity has to wait for a trigger on the old bus. The trigger tag and the trigger code have to be reconstructed and stored in a register. The converter entity is attached to a TrbNetAPI
(active). To perform a short transfer on the API, first the trigger code has to be connected to DTYPE_IN. ERROR_PATTERN, TARGET_ADDRESS_IN, DATA_IN[0...50] and WRITE_IN can be hard wired to 0x0. SHORT_TRANSFER_IN has to be set to 1. The SEND_IN should be raised for 1 clock cycle in order to cause the API sending a short transfer on the DaqNetwork
To have a fast reaction, READ_IN can be pulled up. DATA_OUT[0...50] has to be latched when DATAREADY_OUT is high, and TYP_OUT is equal to TRM. Then the entity can extract the error pattern, and the seqence number (macros are provided in trb_net_std.vhd). If the error pattern is not 0x0, or the sequence number is not matching the registered trigger tag, this is an severe error, and the error line on the old trigger bus should be raised.
There is one caveat: It still has to be discussed, if the begrun-tiggers should go in a dedicated channel. Then, of course, the converter entity of the LVL1 bus has to be attached to 2 APIs, and care has to be taken about the numbering.
The old busy signal should be connected to RUN_OUT.
- 10 Feb 2006