FPGA LED Blink

Overview

PyPi module N/A
git repository https://bitbucket.org/arrizza-public/fpga-led-blink
git command git clone git@bitbucket.org:arrizza-public/fpga-led-blink.git
Verification Report https://arrizza.com/web-ver/fpga-led-blink-report.html
Version Info
  • Ubuntu 20.04 focal, Python 3.10

Summary

CMODA7 FPGA blink an LED based on the system clock, speed up or slow down the blinking by pressing buttons. See https://arrizza.com/fpga for prerequisites and setup.

Kudos for this project and other FPGA to my son Thomas. I (innocently) said that I thought FPGAs were cool. He bought me one for Christmas! And then helped me figure out how to set up Vivado, set up this project to do the classic LED blink. Lots of fun!

To install

  • clone the repo
  • Open Vivado
  • click Open Project
  • navigate to the repo and select the .xpr file

Settings

  • select Settings (blue cogwheel)
    • select Tool Settings | Project
    • in Default Project Directory, select "Specify project directory" and select the directory for this project
    • click OK

To program and run

  • find "SYNTHESIS" in left hand pane
    • click "Run Synthesis" next to Green arrow
    • see upper right corner in menu bar for status e.g. "running synth_design" with a cycling green circle
    • takes 1-2m
  • get dialog box "Synthesis Completed"
    • ensure "Run Implementation" selected
    • click OK
  • get dialog box "Launch Runs"
    • set Number of jobs to the number of cores your PC has (e.g. 8)
    • click OK
    • see upper right corner in menu bar for status e.g. "initializing Design" with a cycling green circle
    • takes 1-2m
  • get dialog box "Implementation Completed"
    • select "Generate Bitstream"
    • click OK
  • get dialog box "Launch Runs"
    • click OK
    • see upper right corner in menu bar for status e.g. "Running write_bitstream" with a cycling green circle
    • takes 1-2m
  • get dialog box "Bitstream Generation Completed"
    • select "Open Hardware Manager"
    • if No hardware target is open:
      • ensure your FPGA is connected via USB-micro and powered on
      • click "Open Target" either in left hand pane or in green bar at top of window
      • get a dropdown menu
      • click "Auto Connect"
      • get dialog box, takes 5 - 10s
      • Hardware pane should have your FPGA in it and indicate "Connected"
  • there should be a new item "Program device" in the left hand pane and in the the green bar at top of window
    • click "Program device"
    • get dialog box "Program Device"
    • click "Program"
    • takes 1-2s

To test

  • the LED1 should initially blink around once per second
  • press and hold BTN0 to speed up the blinking (the btn closest to the 12pin connector, PCB says "BTN0")
  • press and hold BTN1 to slow down the blinking (the btn closest to the led, PCB says "BTN1")
  • Note the button pushes are very sensitive!

- John Arrizza