04-25-2010 08:19 AM
Hello all,
I seem to be a magnet for timing related issues with the cRIO and FPGA, I have a NI 9113 four slot backplane with two NI 9402 High Speed DIO cards and am using a 9022 RT controller, LabVIEW 2009, latest cRIO version. When I selected the NI 9402 I read the spec sheets and it clearly states that a 9402 can run at 20 Mhz I/O for two channels and 16 MHz for four channels. I had come up with a FPGA scheme where I was going to run the two boards in complementary cases of a 40 Mhz SCTL thus achieving a combined acquisition of 40 Mhz - this method DOES work exactly as I had hoped using a SINGLE channel on each board. But here is where it gets weird, I built a data generator to drive the input using one of the unused channels on the first card - this was also built in a SCTL and should run at a maximum rate of 20 MHz - but once compiled everything will only run at 16 MHz. So the limitation for channels on a NI 9402 appear to be for ALL installed NI 9402 cards - to verify iinstalled a third 9402 and moved the generator to its own card - so that each card would only have ONE channel being used - guess what, 16 MHz is best rate... I think this is probably a bug, I can see no technical reason why each board should not independantly be capable of running at 20 MHz if only two channels are used on it. I suspect that there is some kind of rule in the Xilinx tools that counts instances of channel access on the 9402 and neglects to consider that it is on a different board.... Any thoughts LabVIEW FPGA gurus ????
Thank You
04-25-2010 06:39 PM
04-26-2010 06:43 PM
Hi csduffey,
This not something I've seen before specifically. I'm going to poke around a bit more and get back to you. My suspicion is that this MIGHT be a backplane limited consideration, but the specifications certainly do not cover the distinction. I'll get back with you after I do a little more hunting.
04-27-2010 07:31 AM
Thanks for looking at this Verne, I was really counting on the thing meeting its specifications (which technically I guess it does if its the only NI 9402 in the stack) ! I can undertsand the limit on a per interface basis but I would think that if the backplane wasn't capable of running at 40 MHz per slot we would see problems with lots of other C modules - Looking forward to a solution !!
Thank You again !
04-27-2010 11:32 AM
csduffey,
Would you mind posting your FPGA vi? I want to see how you've built this thing.
04-27-2010 02:35 PM
04-29-2010 01:35 PM
Hi csduffey,
When I compile your code, it meets timing. Maybe I'm misunderstanding the question. Is the 16/20Mhz split you're talking about the maximum I/O switching frequency? How are you observing the failure to go faster than 16 MHz? Are you scoping your output?
04-30-2010 08:50 AM
As you suggested, I put a scope on the output of the generator and made a slight change to the code to allow me to vary the frequency of the output - I confgiured it to generate a 1 MHz square wave by measuring the output using the scope - on my system that equated to a period of 36 ticks (18 high and 18 low) inside the SCTL - right away this doesn't make any sense (with a 40 MHz clock it should be 40 ticks, 20 high and 20 low) but then proceeding to the input part of the design - with a 1 MHz sqaure wave coming in I should see 20 high samples followed by 20 low samples, instead I see 16 high and 16 low AND the ingested square wave has discontinuties due to the beating of the sample clock against the actual 1 MHz input - a scren shot is show below of the 1 MHz signal as seen by the dual NI 9402 cards
04-30-2010 12:56 PM
05-01-2010 11:00 AM