04-01-2020 06:38 AM
the way we are building our bitfile is by compiling (when you compile, a bitfile is generated). After compilation we would generate a c api too (you can do this by just right clicking the file and clicking generate c api).
We want the values to be stores in registers so that when its given to a linux machine, its hard coded in there.
So I think the issue with this is that FPGA hosts lack all those commands. It looks like it would work except I cant do the execute command call and such. That was my initial plan until I learned that FPGA vis cant do most of those functions.
04-01-2020 06:57 AM
Definitely some miscommunication. Let me try again 🙂
@bchang32 wrote:
the way we are building our bitfile is by compiling (when you compile, a bitfile is generated).
I really meant at a somewhat lower level. So for example, are you using a LabVIEW project with an FPGA target and a build specification, and right clicking, and choosing Build/Rebuild, or are you using a command line compiler somehow (I don't know if this is easy, but you keep mentioning TCL injection, so I'm guessing you're at least using a local compiler), or is this being run on some "build machine" (i.e. VM, central office computer, whatever) that builds your projects "automatically" via e.g. the Application Builder API (I'm not sure that you can script an FPGA build specification, perhaps or perhaps not - I didn't find the VIs necessary with a quick search but that doesn't mean they don't exist..., but you could probably use Build.vi with a pre-existing build specification...)
@bchang32 wrote:
After compilation we would generate a c api too (you can do this by just right clicking the file and clicking generate c api).
We want the values to be stores in registers so that when its given to a linux machine, its hard coded in there.
This time it's definitely me missing something. I don't see this option either in LabVIEW (right clicking on a Build Specification) or in Win Explorer (clicking on a .lvbitx file) so I have no idea what you're talking about here.
As to storing in registers - yes, that's why I suggested scripting before building, to allow block diagram constants that are built into the FPGA bitfile to contain the values you need. Not sure why a Linux machine is important here, which probably means I'm missing something else too...
@bchang32 wrote:
So I think the issue with this is that FPGA hosts lack all those commands. It looks like it would work except I cant do the execute command call and such. That was my initial plan until I learned that FPGA vis cant do most of those functions.
If you mean the VIs I showed in the last post, those should all be run on your build machine (Windows, Linux, whatever) before you start the compilation via Build Specification (or otherwise). So you can freely use anything available in the desktop, development environment (because you're editing the source code (in-, if you count the automation)directly).
04-01-2020 07:18 AM - edited 04-01-2020 07:19 AM
@cbutcher wrote:
@bchang32 wrote:
the way we are building our bitfile is by compiling (when you compile, a bitfile is generated).
I really meant at a somewhat lower level. So for example, are you using a LabVIEW project with an FPGA target and a build specification, and right clicking, and choosing Build/Rebuild, or are you using a command line compiler somehow (I don't know if this is easy, but you keep mentioning TCL injection, so I'm guessing you're at least using a local compiler), or is this being run on some "build machine" (i.e. VM, central office computer, whatever) that builds your projects "automatically" via e.g. the Application Builder API (I'm not sure that you can script an FPGA build specification, perhaps or perhaps not - I didn't find the VIs necessary with a quick search but that doesn't mean they don't exist..., but you could probably use Build.vi with a pre-existing build specification...)
So this part is open ended. When we find a solution that solves our problem, we'll try to go whichever route. I tried the first option to no success. Now I'm generating vivado export via build specification.
@bchang32 wrote:
After compilation we would generate a c api too (you can do this by just right clicking the file and clicking generate c api).
We want the values to be stores in registers so that when its given to a linux machine, its hard coded in there.
This time it's definitely me missing something. I don't see this option either in LabVIEW (right clicking on a Build Specification) or in Win Explorer (clicking on a .lvbitx file) so I have no idea what you're talking about here.
As to storing in registers - yes, that's why I suggested scripting before building, to allow block diagram constants that are built into the FPGA bitfile to contain the values you need. Not sure why a Linux machine is important here, which probably means I'm missing something else too...
Linux is just the endgame which is why we need everything in the lvbitx. Where do you inject your script?
@bchang32 wrote:
So I think the issue with this is that FPGA hosts lack all those commands. It looks like it would work except I cant do the execute command call and such. That was my initial plan until I learned that FPGA vis cant do most of those functions.
If you mean the VIs I showed in the last post, those should all be run on your build machine (Windows, Linux, whatever) before you start the compilation via Build Specification (or otherwise). So you can freely use anything available in the desktop, development environment (because you're editing the source code (in-, if you count the automation)directly).
I think this may be a cause of confusion. I have different VIs based upon target (Host vs FPGA vi)
Sorry about the formatting. The NI forums UI isnt the greatest.