Hello All.....
I have a few questions concerning FPGA controls, update rates, etc.....
1) In my FPGA application, I have a single-cycle timed loop (SCTL) running at 25ns/tick (it is set up as a state machine). I update an FPGA FP Boolean with TRUE on each tick as it is running. When running the FPGA VI FP, does this generate any more "update" traffic to the host? Or are all front panel controls continuously refreshed at an asynchronous rate. That is, does the actual assignment of the value to the control cause the update, or are they all updated (to the FP) asynchronously?
2) If 1) above creates more traffic (to the host PC), then what about when the FPGA is run from a Host VI? I assume then it would not, since in a host VI we need to do a read / write control......
3) I have some controls that are only updated during specific states of the SCTL. I also have other controls (Shift registers that get set and stay set if a FIFO Overflow occurs) that update the FIFO OVERFLOW FP indicators every tick. I could make it so the FIFO OVERFLOW controls only update during those states that a FIFO write occurs..... In terms of the FPGA logic, is it actually more FPGA -resource intensive to have the extra logic to do this?
I am setting up two boolean indicators on the FPGA FP VI, EXECUTING and EXEC COMPLETE. Before I run any states (Read info, acquire, etc) both indicators are off. When any state set is executing, the EXECUTING boolean is set TRUE. Now, my state lengths (ie set of states chained together) can run from 50 ns total to forever (continuous acquire). When the SCTL stops looping, I set EXEC COMPLETE to true.
So, from my host VI, if I examine the indicators:
EXECUTING EXEC COMPLETE
False, False = Never ran
True, False = Running
True, True = Completed Running
Then my Host VI will set both indicators to FALSE in preparation for the next run.
I had just the EXECUTING indicator, but since the control updates appear to be asynchronous and some of my states can run so fast I was afraid that if I started the state, then examine the indicator I could possibly miss the indicator going TRUE.
Is there a better way for the host VI to ensure that the state has run? I looked into using interrupts but it appears that there are issues running multiple interrupts and I think I may need to use them later on in another part of my application.......
Whew.... Sorry for being so verbose but thanks for the input!
Howard