Hi Vishal,
When dealing with frequencies greater than 10MHz, you might see noise due to signal reflections and termination. These are high-speed problems that cause data corruption. To test if this is a problem, you can cable directly from 1 computer board to the other using the SH6868-D1 cable. This will ensure proper termination and a minimum cable length.
Another source of problems could arise from the generation occurring on the rising edge and acquisition occurring on the rising edge as well. At those speeds, you should acquire on the opposite edge that you are generating at. This can be done by altering the "request polarity" in the handshaking mode parameters of the DIO Config.vi.
As for your second problem, I'm not sure I am following yo
ur questions. You request 100 pre-trigger points and your buffer contains more points? How many points do you request total?
Your third problem probably has something to do with when you are sampling the data. Since it is your least significant bit that is changing and your program changes your least significant bit at a rate of 20MHz and your second least significant bit at 10MHz, you will get the exact same problem as in your first question. The point is, it triggers but by the time it acquires the sample, the least significant bit has already changed. This is because you are not meeting the hold time required between the trigger and the sampling of the data lines. If you play with the REQ polarity and sampling, you will be able to correct this issue.
Hope that helps. Have a good day.
Ron