-
Notifications
You must be signed in to change notification settings - Fork 5
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
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:
- Vivado Installation:
- Download and install latest Vivado Lab Edition:
- https://www.xilinx.com/support/download.html
- execute
xsetup
- Install cable drivers for Linux
cd /opt/Xilinx/Vivado_Lab/2017.3/data/xicom/cable_drivers/lin64/install_script/install_drivers
sudo ./install_drivers
- FPGA Configuration:
- After installing
vivado_lab
- 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) - 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
- Open
vivado_lab -> Open HW Manager -> Open Target -> AutoConnect
- If one unknown device shows up:
rightMouse -> CloseTarget
- OtherDevice:
rightMouse -> OpenTarget
-
Program Device
, select device - Select Biststream file
<filename.bit>
- Click
Program
- Reboot the system (i.e.
sudo reboot
- 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:
print_hw_version
read_sample_rec
ogre_console --gps-l1
- open
Impact
- close popup windows
- click on
Boundary scan
- click on
Initialize chain
- a popup windows open; click
OK
and selectbitfile
- click
Program
- reboot the system (i.e.
sudo reboot
- 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. - the baseband system can be accessed from console with
cast_pcie_console
command and from LST tests using the remote test support.
- Use
xpc
See also http://xc3sprog.sourceforge.net/- Connect Xilinx USB Programmer and type
/usr/local/bin/xc3sprog -c xpc -v <filename.bit>
- Connect Xilinx USB Programmer and type
- Use
ftdi
Trenz XMOD FTDI JTAG Adapter- For further details, see https://wiki.trenz-electronic.de/display/PD/TE0790+Resources
- Connect USBcable having ftdi chip and type
/usr/local/bin/xc3sprog -c ftdi -v <filename.bit>
Note: On v1 HW the flash CANNOT be programmed!
- 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:
- open
Impact
- close popup windows
- click on
Boundary scan
- click on
Initialize chain
- close popup window
- go to the main window and click with the right mouse button on the small rectangle on top of the FPGA device
("SPI/BPI?")
- select
Add SPI/BPI Flash...
- select
<filename.mcs>
file. - a new popup windows open
Select attached BPI/SPI Flash
- choose from the cascade menu
"SPI PROM" => "N25Q256" => "4" => OK
- click again on the rectangle on top of the FPGA device (it should be green now); right mouse button then
"Program" => OK
- programming can take up to 1 hour
- 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!)
- connect the programmer:
- PC via USB
- open vivado_lab, in Linux:
/opt/Xilinx/Vivado_Lab/2017.3/bin/vivado_lab
and program the flash - Open
Hardware Manager
- open
target
Auto Connect
- Right click on device
xc7410t_0
Add Configuration Memory Device ...
- Select
mt25qu256-spi-x1_x2_x4 (Micron, 256, spi, x1_x2_x4)
- Select
Ok
- "Do you want to program the configuration memory now?" ->
Ok
- Select Configuration file
<filename.mcs>
Ok
- Reboot the GOOSE board
- Check the FPGA version with
print_hw_version
- Go do the directory where the
<filename.mcs>
file is saved. - Type
fhgpcie_fprog p <filename.mcs>
- You should see the message
Flash and .mcs contents are the same!
in the console. - If it does not work the first time you will get this error:
Comparing two dumps - failed!
- Try again with
fhgpcie_fprog p <filename.mcs>
- On second attempt you should see the message
Flash and .mcs contents are the same!
in the console. - After programming, type
reboot
-
Print the HW/SW version of the platform by typing:
print_version
-
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
typeacquire_os --help
for details -
Acquisition results for GPS L1 with roof antenna, using the above command: