need help in getting me in the right direction, a 4 part question.
First one should be easy and im pretty sure its possible. I have a virtex5 developpement board, i just want to be sure that if i developpement some thing on it i can just take the vhdl code and lets say put it in a spartan 3 and just change the pinout and fpga configuration? And what are the methods used to protect you fpga programing?
Now here is where it get more ineresting, i want my fpga to communicate via usb to a computer. So my problem here is how to do the usb interface on the fpga, and how to program in c++ or c# the communication on the pc. I want to code every thing instead of relying on other stuff.
Last part is how do a make a firmware upgrade that i could send via lets say my usb interface? What kind of file would i need to output and what would be the method of writting to a memory to get the firmware upgraded. But it doesnt end here, to make sure that if the user makes a mistake or does some thing stupid he can revert back to a basic firmware. So for this i tought of using 2 eeproms, one for the first firmware and one for the upgraded one. So when the fpga firmware is loaded it needs to be able to check both eeproms and say, ok upgrade eeprom is empty so i take the basic one. So all i need to do is do some kind of circuit to erase the upgraded firmware, or using a jumper method that would initiate a program to erase of the eeprom or simply have it dump the first eeprom in the second one.