For my experiments with the Red Pitaya, I’d like to have the following development environment:
- recent version of the Vivado Design Suite
- recent version of the Linux kernel
- recent version of the Debian distribution on the development machine
- recent version of the Debian distribution on the Red Pitaya
- basic project with all the Red Pitaya peripherals connected
- mostly command-line tools
- shallow directory structure
Here is how I set it all up.
My development machine has the following installed:
The installation of the development machine is described at this link.
Here are the commands to install all the other required packages:
The source code is available at
This repository contains the following components:
- Makefile that builds everything (almost)
- cfg directory with constraints and board definition files
- cores directory with IP cores written in Verilog
- projects directory with Vivado projects written in Tcl
- scripts directory with
- Tcl scripts for Vivado and SDK
- shell scripts that build a bootable SD card and SD card image
Syntactic sugar for IP cores
By default, the IP core instantiation and configuration commands are quite verbose:
With the Tcl’s flexibility, it’s easy to define a less verbose command that looks similar to the module instantiation in Verilog:
cell command is defined in the scripts/project.tcl
script as follows:
Setting up the Vivado environment:
Cloning the source code repository:
Building a bootable SD card:
SD card image
Building a bootable SD card image:
The SD card image size is 1 GB, so it should fit on any SD card starting from 2 GB.
To write the image to a SD card, the
dd command-line utility can be used on GNU/Linux and Mac OS X or Win32 Disk Imager can be used on MS Windows.
The default password for the
root account is
A pre-built SD card image can be downloaded from this link.
Resizing SD card partitions on running Red Pitaya:
It’s possible to reprogram the FPGA by loading the bitstream file into