-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Enable multiple synchronized bitfiles in the RT engine #28
Conversation
We can do it that way. I must have missed that discussion (and the fact it was already bumped). |
|
They could, but it's not necessary. This was copied from the single FPGA VI. The unbundle is only used to get the type for describing the refnum and the bundle then goes into the rest of the RT data. Since this is during initialization, it's not time critical. Let's say the Engine Simulation Toolkit IP isn't the only thing running on the FPGA. Maybe there's an SLSC backend or some other custom IP compiled to the same bitfile in order to utilize a single FPGA board to accomplish multiple things. During deployment, something else could run the bitfile before the Engine Simulation custom device gets to this code.
This appears to be unused. Removed from the library and repo. |
|
|
When opening pages, we should use the multi-fpga key stored in the system definition. This prevents us from getting into weird states if the ini file is changed while the system explorer is open, and should allow us to use the multi-fpga codepaths in tests without setting the ini key.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Since the test hardware is only supported under LabVIEW 2018 or later, we should skip the test if we are running in earlier versions. Be sure to skip deployment and undeployment as well. Add a skip message for more information.
Go ahead and submit changes as is. Create a separate tech debt issue to skip this test on earlier year versions. |
Issue filed. |
What does this Pull Request accomplish?
Allows a single APU to be split across multiple FPGAs so users requiring higher channel count and/or more FPGA fabric can still use the custom device.
Why should this Pull Request be merged?
There are several users that have requested this capability. It will allow NI to close more opportunities and make customers more successful.
What testing has been done?
Cursory testing ensuring FPGAs remain synchronized through use of the custom device and monitoring the newly added synchronization channels. The behavior of the channels mirrors my benchmarks outside of the custom device, just testing synchronization of the FPGAs using LabVIEW.
More testing still needs to be done, including validating I/O signal values and synchronization and automated tests still need to be written. I am currently working on this, but want to get the review going.
Note: There are other files that need to be updated due to typedef changes, but I'm not including them here because it would make this review even more unmanageable. It doesn't affect functionality, but build and load times will be longer because each of those VIs will need to recompile. I will update those with a separate pull request after this goes in.