09-18-2018 05:39 PM
Dear experts,
Hardware/Software Background:
I am working on an FPGA vi using the 7966R FPGA and 5734 AI. I am using LabView 2012 SP1.
Problem Background:
I have a working project where in my FPGA.vi, I use the boolean output of SubVI-Threshold.vi to as a logical condition to save data. There is another sub vi, SubVI-Ratio.vi where the boolean output is not used for any decision except being placed into an AND with the output of SubVI-Threshold.vi. This version compiles at my requirement of at least 40MHz. A screen shot of this part of FPGA diagram is attached as Does_Compile.png.
Problem:
However, when I use the logical AND between the outputs of SubVI-Threshold.vi and SubVI-Ratio.vi seen in Does_Not_Compile.png, I get the timing error seen in TimingError.png. I believe I am implementing Pipelining correctly with my feedback nodes and do not understand the references given in the Non-Diagram Component. I am still a novice at FPGA (and Labview in general) and would greatly appreciate any de-bugging suggestions.
I have also attached the project (the version which does not compile although the version which does can hopefully be retrieved from the pictures if needed). Please excuse my plethora of Feedback nodes and comments they originate from attempts to debug this problem as well as documenting my work.
Thanks in advance for any advice, suggestions, or help anyone is able to give!
Cheers,
Alex
Solved! Go to Solution.
09-19-2018 12:22 PM - last edited on 01-09-2025 09:21 AM by Content Cleaner
You may find the LabVIEW High-Performance FPGA Developer's Guide useful if you're new to labview fpga. It has some advice on timing closure techniques.
It looks like you have a large design. Its common for small changes to have a disproportionate impact on the timing performance of a design due congestion issues as you approach the resource limits of an fpga. Here are some suggestions:
09-24-2018 02:06 PM
Thanks for the pointers. I went back and optimized older parts of the code which worked and minimized number of calculations and this did the trick. Thank you much!