This page is a collection of notes on the Red Pitaya platform

The chip used is a xc7z010clg400-1

documentation hub https://docs.amd.com/v/u/en-US/dh0050-zynq-7000-design-overview-hub Official docs https://docs.amd.com/v/u/en-US/ug865-Zynq-7000-Pkg-Pinout Specific pinout info xc7z010clg400pkg.txt

From a Slovenian university: https://lniv.fe.uni-lj.si/redpitaya/index.html

Scottish EEE group wrote a whole book on the base FPGA http://www.zynqbook.com/

Direct PDF link:the_zynq_book_ebook_3.pdf

Minimal project setup https://github.com/XavierAudier/minimal_redpitaya/tree/master

https://marceluda.github.io/rp_lock-in_pid/

https://marceluda.github.io/rp_scope_lock/

Pavel Demin

Pavel has done a ton to put out useful stuff for the Red Pitaya

Website http://pavel-demin.github.io/red-pitaya-notes/ Github https://github.com/pavel-demin/red-pitaya-notes/tree/master

Anton Potocnik

Another life saver, actually goes over tutorials on building Red Pitaya projects from scratch

Website https://antonpotocnik.com/?p=487360 Github https://github.com/apotocnik/redpitaya_guide

Official Docs

Less helpful than I'd like

Hardware info https://redpitaya.readthedocs.io/en/latest/developerGuide/hardware/125-14/top.html

Hardware schematic https://downloads.redpitaya.com/doc//Red_Pitaya_Schematics_v1.0.1.pdf

“Knowledge Base” https://redpitaya-knowledge-base.readthedocs.io/en/latest/

Programming instructions https://redpitaya-knowledge-base.readthedocs.io/en/latest/learn_fpga/3_vivado_env/tutorfpga2.html

Their solution only works straight from the .tcl command line. My solution:

create a file named 'rp_post.tcl' and set it to run after bitstream generation via settings → bitstream → tcl.post

you could use the tcl command set_property STEPS.WRITE_BITSTREAM.TCL.POST ??? (still figuring out syntax)

Got info from https://leiblog.wang/static/FPGA/books/Vivado%E4%BB%8E%E6%AD%A4%E5%BC%80%E5%A7%8B/Video_37_TCL_Vivado_One_World_3.pdf

mor official info https://docs.amd.com/r/en-US/ug894-vivado-tcl-scripting/Defining-Tcl-Hook-Scripts

File contents are:

set biffile [open "system_wrapper.bif" w+]
put $biffile "all:{ system_wrapper.bit }"
close $biffile
exec bootgen -image system_wrapper.bif -arch zynq -process_bitstream bin -o system_wrapper.bit.bin -w

This creates the system_wrapper.bif file and then does its magic to create a bootable bitstream

Code “borrowed” from https://stackoverflow.com/questions/20209395/writing-to-file-in-tcl

Other Info

To set up a file grab from another machine:

  1. Run it, use the command ssh-keygen to make a key pair
    1. This is assuming we're calling it id_rsa
  2. copy the public key with something like ssh-copy-id -f -i id_rsa.pub root@red_pitaya_address
  3. log in via ssh -i id_rsa root@red_pitaya_address
    1. If the key isn't working, chmod 600 the .ssh directory and .ssh/authorized_keys file