Skip to content

How to program the GOOSE FPGA

Muhammad Saad edited this page Feb 5, 2020 · 2 revisions

GOOSE FPGA can either be normally programmed or flash programmed, this page explains both of them

GOOSE FPGA normal programming (.bit file is required)

The FPGA can be configured using the JTAG cable and the Xilinx impact software or the xc3sprog tool. Below are the methods to program the FPGA:

Using vivado:

  • Vivado Installation:
  1. Download and install latest Vivado Lab Edition:
  2. https://www.xilinx.com/support/download.html
  3. execute xsetup
  4. Install cable drivers for Linux
  5. cd /opt/Xilinx/Vivado_Lab/2017.3/data/xicom/cable_drivers/lin64/install_script/install_drivers
  6. sudo ./install_drivers
  • FPGA Configuration:
  1. After installing vivado_lab
  2. In console search path for vivado_lab under /opt/Xilinx/Vivado_Lab/2015.x/bin/vivado_lab => run ./vivado_lab (version 2017 cannot load a second time, which is necessary for GCBB_V1)
  3. If Vivado is not installed on this PC but on another one near by: connect the USB of the Xilinx cable to that other PC and run from there
  4. Open vivado_lab -> Open HW Manager -> Open Target -> AutoConnect
  5. If one unknown device shows up: rightMouse -> CloseTarget
  6. OtherDevice: rightMouse -> OpenTarget
  7. Program Device , select device
  8. Select Biststream file <filename.bit>
  9. Click Program
  10. Reboot the system (i.e. sudo reboot
  11. Check with lspci if the FPGA system is recognized; the following line should be there: 03:00.0 Non-VGA unclassified device: Xilinx Corporation Device 7024 . If not repeat from step 1. If HW is v1, it may need a second load.
  • Further checks:
  1. print_hw_version
  2. read_sample_rec
  3. ogre_console --gps-l1

Using Impact:

  1. open Impact
  2. close popup windows
  3. click on Boundary scan
  4. click on Initialize chain
  5. a popup windows open; click OK and select bitfile
  6. click Program
  7. reboot the system (i.e. sudo reboot
  8. check with lspci if the FPGA system is recognized; the following line should be there: 03:00.0 Non-VGA unclassified device: Xilinx Corporation Device 7024. If not repeat from step 1.
  9. the baseband system can be accessed from console with cast_pcie_console command and from LST tests using the remote test support.

Using xc3sprog:

GOOSE FPGA flash programming (.mcs file is required)

Note: On v1 HW the flash CANNOT be programmed!

Using Impact:

  • In order to program the FPGA Flash memory (this allows to automatic program the FPGA fabric at each system boot) it is recommended to use Xilinx Impact (from Vivado LabTools). Aversion of Vivado Labtools compatible with the one used for Vivado flow is needed. Currently Vivado 2015.2 is used. For the FLASH programming follow these steps:
  1. open Impact
  2. close popup windows
  3. click on Boundary scan
  4. click on Initialize chain
  5. close popup window
  6. go to the main window and click with the right mouse button on the small rectangle on top of the FPGA device ("SPI/BPI?")
  7. select Add SPI/BPI Flash...
  8. select <filename.mcs> file.
  9. a new popup windows open Select attached BPI/SPI Flash
  10. choose from the cascade menu "SPI PROM" => "N25Q256" => "4" => OK
  11. click again on the rectangle on top of the FPGA device (it should be green now); right mouse button then "Program" => OK
  12. programming can take up to 1 hour
  13. if failed because the DONE pin didn't go high, it can be that the boot from Flash is not enabled => in that case, set the correct switch option on the GCBB board (see board manual), then reboot the board again (no reprogramming needed!)

Using Vivado:

  1. connect the programmer:
    • PC via USB
  2. open vivado_lab, in Linux: /opt/Xilinx/Vivado_Lab/2017.3/bin/vivado_lab and program the flash
  3. Open Hardware Manager
  4. open target
  5. Auto Connect
  6. Right click on device xc7410t_0
  7. Add Configuration Memory Device ...
  8. Select mt25qu256-spi-x1_x2_x4 (Micron, 256, spi, x1_x2_x4)
  9. Select Ok
  10. "Do you want to program the configuration memory now?" -> Ok
  11. Select Configuration file <filename.mcs>
  12. Ok
  13. Reboot the GOOSE board
  14. Check the FPGA version with print_hw_version

Flash program the FPGA using fhgpcie_fprog script.

  1. Go do the directory where the <filename.mcs> file is saved.
  2. Type fhgpcie_fprog p <filename.mcs>
  3. You should see the message Flash and .mcs contents are the same! in the console.
  4. If it does not work the first time you will get this error:
  5. Comparing two dumps - failed!
  6. Try again with fhgpcie_fprog p <filename.mcs>
  7. On second attempt you should see the message Flash and .mcs contents are the same! in the console.
  8. After programming, type reboot

Initial tests to check if everything works fine after FPGA programming.

  • Print the HW/SW version of the platform by typing: print_version
    GOOSE_Embedded_booting_complete

  • Valid HW and SW versions should be seen. as shown in the baove figure. If not, turn off SBC safely type shutdown -h now and start it again.

  • Test if GNSS satellites can be acquired by typing: acquire_os -9.58e6 L1 lsb f type acquire_os --help for details GOOSE_Embedded_booting_complete

  • Acquisition results for GPS L1 with roof antenna, using the above command: GOOSE_Embedded_booting_complete