Code Monkey home page Code Monkey logo

nexys4fftdemo's Introduction

Nexys 4 FFT Demo

A simple Verilog example of a 4096pt FFT on analog input from a Nexys 4 XADC. The input is sampled at 1MSPS, oversampled to produce 14-bit samples at 62.5kHz, then sent to the FFT processing modules and passed through to PWM Audio out. The FFT outputs the magnitude for each frequency bin and a histogram of the frequency spectrum is output over VGA video

Requirements

Hardware

  • A Nexys 4 FPGA
  • Assorted resistors to attenuate and bias the analog input properly before going into the JXADC header on the Nexys 4. (+0.5V bias, 1Vpp)

Software

  • Vivado 2016.2 or later for Nexys 4 development.

Peripherals

  • A VGA monitor to display the FFT results

Organization

There are 3 folders

  • bin contains the latest working bitstream file that can be directly programmed onto a Nexys 4
  • proj is intended to contain the Vivado project files, to keep them separate from the source.
  • src contains the actual sources in several folders for constraints, hdl, ip configuration, and block designs. These are fairly self-explanatory and are the core of the project.

Setting up the project

The procedure is roughly as follows:

  1. Create a new Vivado project in the proj directory.
  2. In the new project dialog:
    1. Add all the hdl in src/hdl to the project
    2. Add all the ips in src/ip to the project
    3. Add the .xdc constraints file to the project
  3. Once in the full IDE, click Add Sources again, specify Block Design, and add the fft_mag.bd block design in src/bd
  4. Cross your fingers and synthesize/implement/write bitstream

Shortcut

  1. If you just want to see it working, just program from the saved bitfile in the bin folder

nexys4fftdemo's People

Contributors

mitchgu avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.