cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
diegodeangelo
Visitor
Visitor
541 Views
Registered: ‎11-01-2019

Program the FPGA over the PCI bus?

Jump to solution

Hello everyone.


I have a Virtex6 PCI card connected to a server.

But I don't have JTAG and I don't understand how to program the FPGA (download the binary).
Can I program the FPGA over the PCI bus without using cables?

I looked for how to do this, but there is a lot of information about it and my knowledge is not great.

Please, can anyone help me?

PS: Virtex6 PCI card using ISE 14.7

 

Thank you.

 
0 Kudos
1 Solution

Accepted Solutions
bruce_karaffa
Scholar
Scholar
524 Views
Registered: ‎06-21-2017

Do you have a manual for this card?  Do you know the part number and manufacturer of the card?  The Virtex is probably used as part of the PCI interface.  In most cases, the manufacturer will provide some way of reprogramming the FPGA over the PCI but you need to read the manual.  In most cases where the card may be reprogrammed over the PCI, the FPGA will be used to reprogram the boot flash, then the card must be rebooted to load the new bit file.  Usually the flash will contain both a working image and a golden image, so that if the reprogramming gets interrupted, the card may boot with code that will still allow reprogramming.  You need to be sure never to write over the golden image.  Do you have a driver/API from the manufacturer that can write to the card's flash?  You will need this.  Do you have code developed to load into the FPGA?  Do you have a schematic or board file to tell you how the FPGA is connected to other components?

View solution in original post

4 Replies
bruce_karaffa
Scholar
Scholar
525 Views
Registered: ‎06-21-2017

Do you have a manual for this card?  Do you know the part number and manufacturer of the card?  The Virtex is probably used as part of the PCI interface.  In most cases, the manufacturer will provide some way of reprogramming the FPGA over the PCI but you need to read the manual.  In most cases where the card may be reprogrammed over the PCI, the FPGA will be used to reprogram the boot flash, then the card must be rebooted to load the new bit file.  Usually the flash will contain both a working image and a golden image, so that if the reprogramming gets interrupted, the card may boot with code that will still allow reprogramming.  You need to be sure never to write over the golden image.  Do you have a driver/API from the manufacturer that can write to the card's flash?  You will need this.  Do you have code developed to load into the FPGA?  Do you have a schematic or board file to tell you how the FPGA is connected to other components?

View solution in original post

dreadedhill
Observer
Observer
505 Views
Registered: ‎01-26-2019

You cannot assume the card has means to load firmware into flash from PCI, though this is not unusual. The vendor needs to have exposed the needed interface(s), and written software to use those interfaces.

I have done this exercise - written software to load firmware into SPI flash for a proprietary board with proprietary firmware, and very specific to that board. Fairly likely the board you have offers similar function, but it is also possible the firmware can only be loaded over JTAG. 

Need to find the board documentation, in every case.

diegodeangelo
Visitor
Visitor
457 Views
Registered: ‎11-01-2019

@bruce_karaffa wrote:

Do you have a manual for this card?  Do you know the part number and manufacturer of the card?  The Virtex is probably used as part of the PCI interface.  In most cases, the manufacturer will provide some way of reprogramming the FPGA over the PCI but you need to read the manual.  In most cases where the card may be reprogrammed over the PCI, the FPGA will be used to reprogram the boot flash, then the card must be rebooted to load the new bit file.  Usually the flash will contain both a working image and a golden image, so that if the reprogramming gets interrupted, the card may boot with code that will still allow reprogramming.  You need to be sure never to write over the golden image.  Do you have a driver/API from the manufacturer that can write to the card's flash?  You will need this.  Do you have code developed to load into the FPGA?  Do you have a schematic or board file to tell you how the FPGA is connected to other components?


 

Hello, Bruce.

Thank you for your interest.
After seeing the answers here, I changed the approach.

About the manual. I have some pdf's called a guide, reference, etc. But not really manual.
The board was manufactured by PLDA and did not provide any software (only the driver and 2 or 3 samples).

I don't have the schematic of the card.
One of the pdf files says that programming is via PCI.

So I turned to the resources I had. I downgraded the server, before I ran W10, now W7 is running.

According to the documentation the driver is compatible with W10, but according to the support of PLDA it is only compatible up to W7.
The model codes crashed on the W10, so I decided to put the W7 on and keep bothering the support.

I thought that programming via PCI was something native, natural to any FPGA PCI card.
Now I understood that it was not.

Thank you for your help.

0 Kudos
diegodeangelo
Visitor
Visitor
453 Views
Registered: ‎11-01-2019

@dreadedhill wrote:

You cannot assume the card has means to load firmware into flash from PCI, though this is not unusual. The vendor needs to have exposed the needed interface(s), and written software to use those interfaces.

I have done this exercise - written software to load firmware into SPI flash for a proprietary board with proprietary firmware, and very specific to that board. Fairly likely the board you have offers similar function, but it is also possible the firmware can only be loaded over JTAG. 

Need to find the board documentation, in every case.


Hello Dreadhill.

Your comment was valuable.
As I said in response to Bruce, I believed that programming via PCI was common and that I was doing something wrong to not be successful.

I chose to start over.
It is not 100%, but one of the model codes has already worked.

Thanks a lot for the help.

0 Kudos