Giter Site home page Giter Site logo

gabriele-bot / fpga_projects Goto Github PK

View Code? Open in Web Editor NEW
5.0 1.0 0.0 742.18 MB

Some of my projects/mistakes on various FPGA boards

Verilog 36.92% VHDL 59.76% Pascal 0.01% JavaScript 0.12% Shell 0.07% Tcl 0.25% Batchfile 0.01% PureBasic 0.01% HTML 1.36% C++ 0.44% SystemVerilog 0.34% C 0.49% V 0.22% Jupyter Notebook 0.01% Python 0.01% Stata 0.01% Forth 0.01%
fpga verilog pynq-z2 fft audio audio-processing hdmi logarithm

fpga_projects's Introduction

FPGA_projects

  • Audio project
  • FFT Video
  • FFT Video 2048

Audio project

Simple variation of the base block design of PYNQ Z2 board. It will simply stream the audio through Vivado IPs I2S Rx-Tx (AXI stream @ 100 MHz); PYNQ audio codec will take care of the analog-to-digital and digital-to-analog conversions.

FFT VIDEO

AXI audio stream demuxed in L-channel and R-channel, 1024-point FFT (Vivado IP) is applied to both channels and finally the output magnitude is displayed on an HDMI monitor (1920x1080 @ 30Hz).

FFT VIDEO 2048

Same as the previous version with some tweaks. Only a real input is fed into the FFT and, as suggested in the vivado FFT logic core documentation, only the second half of the output is considered.
A windowing is added to lowering spectral leakage, by default no window is applied; to enable windowing it is necessary to set the selector to '1', it will multiply the input by a factor stored in a dual port RAM accessible from the notebook.
In the BRAM is initially stored an Hann-function, but is also selectable Hamming, Cosine, Gaussian and Rectangular windows or it is possible to define a custom function (via Python notebook).

It is possible to dispaly the log2 of the output. The logarithm is computed using a priority encoder and a III order taylor expasion.

FFT xilinx IP parameters:

  • 2048 N-point
  • Scaled (fixed point)
  • 24 bit input/output width
  • Pipelined/Streaming architecture
  • Non real time
  • Index is embedded in the TUSER axis output

Future implementation

  • Video frame overlay to show the frequency axis (in the display)
  • Sync FFT output ($$\sim23$$Hz) with the monitor refresh rate (30Hz)
  • Find a better way to display the spectrum (now is linear in the frequencies)

Logarithmic output

This is an example of the logarithm result.

Drawing

The red signal is the input and subsequently we have the Priority encoder output (yellow), I order approximation (orange), II order approximation (light blue), III order approximation (purple).

FFT output example

Actual FFT output of an input song.

Drawing

fpga_projects's People

Contributors

gabriele-bot avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 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.