PCIe Prototype installation

basic xilinx installation

install feora from live CD and install to disk

install vivado with supplied license

install kintex 7 board in pcie,

follow xiling getting started guide for dip switch settings etc.

xilinx DMA demo should run now.

 

jon managed to upload the bitfile with vivado, plugging the usb cable into JTAG connector.
the FMC card needs to be disconnected for programming the pcie board (we will fix this for the next iteration of the fmc board, or it can be fixed with some silver print) 

get xillybus demo working in linux

set SW13 to 00010 (only 4 on) , this should be the default  setting (http://www.xilinx.com/support/documentation/boards_and_kits/kc705/ug810_KC705_Eval_Bd.pdf p12)

the  fpga will reset when unpowered so the workflow seems to be:
boot, start vivado and upload firmware, reboot without powering off (sudo reboot) . now the correct firmware is loaded during the boot, so the pcie should work.

follow xillybus documentation to install driver,  run 'modprobe xillybus_pcie' check with lsmod.
now the xillybus devices should be in /dev/ , and the loopback test should work.

 

On stock ubuntu 16.04, everything seems to work well, but the cable drivers for vivado need to be installed separately from /data/xicom/cable_drivers/lin64/install 
This chnage was made to allow vivado installations as non root, (the cable drivers require root access ).

 

 

xillybus bitifle download and driver install on Windows

Xillybus advises to not modify the bitfile while the host system is running, but to program the FPGA using a different computer. Since this is not possible in some cases, those are the steps that provide less chance of system crashes.

 

For first time configuration:

  1. Install the Xillybus driver before configuring the FPGA for the first time, instead of waiting for the Windows device manager to ask for it
    1. download the xillybus driver for windows
    2. locate the xillybus.inf file
    3. right click on the file and select install.
  2. Generate and upload the bitfile
    1. Open the vivado project and generate the bitstream following xillybus configuration
    2. Open hardware target (it is safe to use auto connect)
    3. Upload the bitfile
  3. IMPORTANT: Close the vivado hardware manager after uploading the bitfile
  4. Open the Windows Device Manager and click scan for hardware changes

 

For uploading a new bitfile:

  1. Open the Windows Device Manager
  2. Look for the Xillybus driver, right click on it and select disable
  3. Upload the new bitfile normally
  4. Close the vivado hardware manager
  5. Go to the device manager. If the xillybus driver does not appear, scan for hardware changes
  6. Look for the xillybus driver, right click on it and select enable
  7. Click (again, if needed) on scan for hardware changes

 

Be sure to disable the driver before doing any change to the FPGA board. If you plan to turn it off, disable the driver first. I even recommend disabling the driver before shutting down the computer, so there is no doubt that it'll be in that state next time any work needs to be done.

Burning the bitfile into the boot flash

It is possible to program the KC705 Evaluation Board flash memory to automatically load the test firmware. The boot switches of the board must be in position "00010", indicating boot form the first block of the BPI memory, where the configuration will be placed. Then, in Vivado, follow the following steps:

  1. Normally build the design and generate the most updated bitfile
  2. Open "Tools/Generate Memory configuration file"
  3. Configure as follows and click ok to generate the file:
    • Format: MCS
    • Memory part: 28f00ap30t-bpi-x16 (select that option and click on the [...] button to search the part)
    • Filename: The filename the memory configuration file (mcs file) will have. In this example we'll use "firmware.mcs"
    • Interface: Should be automatically set to BPIx16
    • Load bitstream files: enables
    • Only one bitfile, at address 0, direction up. Bitfile: find the .bit file corresponding to the project (usually located in project_name/project_name.runs/impl_1, if the chooser does not open that folder by default)
    • Everything else disabled
  4. Open the hardware manager and connect to the board
  5. Select the xc7k325 part and click "Add Configuration Memory Device" (either by right clicking or in the left panel)
  6. Select part 28f00ap30t-bpi-x16 again
  7. Say "yes" to program the configuration memory
    • If accidentally said no, right click on the newly created memory part in the "hardware" window of the device manager and select "program configuration memory device"
  8. Set the following options:
    • Memory Device: should automatically be 28f00ap30t-bpi-x16
    • Configuration file: The mcs file generated in step 3
    • PRM file: left blank
    • State of non-config mem I/O pins: Pull-none
    • Address Range: Configuration File Only
    • RS Pins: NONE
    • Erase: Checked
    • Blank Check: Unchecked
    • Program: Checked
    • Verify: Checked
    • Verify Checksum: Unchecked
    • Create SFV Only: Unchecked
  9. Click Ok. The program should erase the current program in the flash and upload the current one, that could take a while.
  10. Once finished, close the hardware manager, turn off the board, turn on again and check that the right configuration has been loaded.