Environment Setup
I’m using Vivado 2020.1 on a Ubuntu 18.04 distro.
Red Pitaya’s repo is currently setup with all projects in 2020.1. Do not use the newest version of Ubuntu, Vivado 2020.1 doesn’t run it it. In addition, the C code development side seems to need SDK 2019.1 command line.
FPGA Hardware Development
The code is all Verilog but pretty straightforward. Builds are strightfoward and nicely the .bit is all that is needed, no conversion to a different file format for the device is needed.
- The filesystem is by default read-only. To make r/w
mount -o remount,rw /opt/redpitaya
- To get the .bit from the fpga/prj/v0.94/project/redpitaya.runs/impl_1 directory to the unit:
scp red_pitaya_top.bit root@ipaddress:/tmp
- To Reconfigure the FPGA while the unit is running:
SSH into the unit with
ssh root@ipaddress
Then configure the FPGA
cat /tmp/red_pitaya_top.bit >/dev/xdevcfg
FPGA/SOC Interface Development
DTB File Update Procedure
At the moment, I haven’t changed any clocks or memory bus widths so I haven’t had to touch the DTB yet…. Update once I have….
Linux C Development
I’m currently compiling the code on the device to avoid cross compiling. Update when I get cross compiling to work….
API/Library Development
The Linux to hardware interface is done through a memory mapped shared library (static also is built).
I’ve made changes largely dealing with the WEA bits and the size of the buffers.
C Program Development
I’m currently using the SCPI connector software from Red Pitaya and modifying just as necessary.
Notes:
- To start programs manually, set LD_LIBRARY_PATH first….
LD_LIBRARY_PATH=/opt/redpitaya/lib
export LD_LIBRARY_PATH
- The filesystem is by default read-only. To make r/w
mount -o remount,rw /opt/redpitaya
VISA/SCPI Control Software
I’m currently using MATLAB to send the command. The things that commonly get me:
- The SCPI Connector needs to be started in the Web GUI after startup
- The TCP/IP buffer needs to be made bigger to send waveforms.
Any program/language capable of sending strings over TCP/IP would work here….