Discussion:
rt / how can a fpga-bitfile be exchanged without recompile the rtexe?
(too old to reply)
Lars.B
17 years ago
Permalink
Hello to all, maybe someone of you knows the trick: my program have two parts, one is running on RT-OS (LabView RT/PharLap) the other part is on a FPGA. For programming I'm using LV 8.5.1.In the VI (on RT) which calls the FPGA, is a static path-reference on the bitfile. Idea of this was that the bitfile is dynamically loaded by every start of the RT and when there are bugfixes to do in the FPGA-code, then this could be done with an simple exchange of the bitfile (which I can send to the customer and he replaces then byself the file per FTP). In fact replacing of the bitfile does not have any effect, it seems that the bitfile is integrated in the RTexe and so cannot be exchanged on harddisk. Only way to replace the bitfile seems to recompile the RTexe with the new bitfile.Does anyone knows how this can be solved? Or is there no way to do so that a bitfile is loaded at runtime (as a file and not integrated in RTexe)?Or is this maybe because the VI which calls the bitfile, is forced to be part of the compiled RTexe (build options)?Greets,Lars
Blase
17 years ago
Permalink
Hi Lars,

as far as I know there are 2 ways to dynamically download a bitfile to an FPGA
device.

1. Using the NI-RIO driver (available at: <a href="http://joule.ni.com/nidu/cds/view/p/id/993/lang/en" target="_blank">http://joule.ni.com/nidu/cds/view/p/id/993/lang/en</a>)

When you install the NI-RIO driver, the RIO Device Setup utility is installed,
which allows you to download bitfiles to the flash memory of your FPGA device.
After that when the device is reset or powerup, the device itself can load and
start this new bitfile. Just make sure that the option "Autoload VI on
device powerup" or "Autoload VI on device reboot"&nbsp;is set
accordingly&nbsp;under Device Settings in the RIO Device Setup utility. Change
these options of the device so that the bitfile is loaded on a reset or power
loss, then reset or cycle the power for the device.


2. Using the FPGA Target System Replication utility as discussed under: <a href="http://zone.ni.com/devzone/cda/tut/p/id/6465" target="_blank">http://zone.ni.com/devzone/cda/tut/p/id/6465</a>



With the help of the VIs included in this utility (<a href="http://digital.ni.com/public.nsf/websearch/AF4FF0C65AF31B4348257337006A144A?OpenDocument" target="_blank">http://digital.ni.com/public.nsf/websearch/AF4FF0C65AF31B4348257337006A144A?OpenDocument</a>) you can basically set the same options and select a bitfile similar to the RIO
Device Setup utility of the NIO-RIO driver. Similar to the RIO Device Setup
utility you can download your bitfile to the flash memory of your FPGA and then
reset or power cycle your device.

I hope this information helps you.

Best regards,

Balazs
JMota
17 years ago
Permalink
Hi Lars, Lars.B wrote:Does anyone knows how this can be solved? Or is there no way to do so that a bitfile is loaded at runtime (as a file and not integrated in RTexe)?Or is this maybe because the VI which calls the bitfile, is forced to be part of the compiled RTexe (build options)?Loading a different bitfile at run-time is not supported, as the Host VI (RT VI) needs to know beforehand the information about the bitfile in order for you to write a VI that access the resources of the FPGA VI/bitfile, such as controls and indicators.You will have to re-create the RTexe anytime you make changes to the FPGA VI.What Balazs suggested would work if your RT VI didn't do an Open FPGA Reference. That is because that node has the bitfile embedded on it and will download it anytime it executes if a different personality (bitfile) is on the FPGA. That's the technical reason on why replacing the bitfile on disk on RT has no effect, as you have already figured out.JMota
Loading...