LED blinker
Introduction
For my experiments with the USB104 A7 board, I'd like to have the following development environment:
- recent version of the Vitis Core Development Kit
- recent version of the Debian distribution on the development machine
- basic project with all the USB104 A7 peripherals connected
- mostly command-line tools
- shallow directory structure
Here is how I set it all up.
Pre-requirements
My development machine has the following installed:
- Debian 12 (amd64)
- Vitis Core Development Kit 2023.1
Here are the commands to install all the other required packages:
apt-get update
apt-get --no-install-recommends install \
bc binfmt-support bison build-essential ca-certificates curl \
debootstrap device-tree-compiler dosfstools flex fontconfig git \
libgtk-3-0 libncurses-dev libssl-dev libtinfo5 parted qemu-user-static \
squashfs-tools sudo u-boot-tools x11-utils xvfb zerofree zip xc3sprog
Source code
The source code is available at
https://github.com/pavel-demin/usb104-a7-notes
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
Getting started
Setting up the Vitis and Vivado environment:
source /opt/Xilinx/Vitis/2023.1/settings64.sh
Cloning the source code repository:
git clone https://github.com/pavel-demin/usb104-a7-notes
cd usb104-a7-notes
Building led_blinker.bit
:
make NAME=led_blinker bit
Configuring the FPGA:
make NAME=led_blinker run
Reprogramming FPGA
It is possible to reprogram the FPGA using the xc3sprog
program:
xc3sprog -v -c jtaghs1_fast tmp/led_blinker.bit