Giter Club home page Giter Club logo

pipelined-fft's Introduction

pipelined-fft

This is the source code for my EE 5327 VLSI Design Lab Project. It is a pipelined FFT.

The test suite is done with cocotb, so we can use any verilog simulator we want.

Generator scripts

Due to design complexity that exceeds "most" synthesis tools capabilities (requiring a lot of SystemVerilog support), I instead wrote a generator program that takes in parameters about the desired FFT and creates a verilog module that instantiates them all individually. This way, I can use python constructs to get more fine-tuned control over the output HDL. Furthermore, we can use python to generate the twiddle factors needed for the specific FFT.

Pipelining

A pipelined FFT is an FFT that can store different intermediate values after each stage of FFT. A traditional FFT might have input lines that are clocked in once at the beginning, and stored internally until the processing is finished (usually signaled with an out_ready flag or similar). In a pipelined FFT, there is still a multi-cycle latency on the results of a particular input, but a new output is generated every clock cycle. This is identical to how a pipelined CPU works. However, most FFT implementations that aren't pipelined still take multiple clocks to execute.

Test suite

The test suite is written in Python using cocotb, a platform-agnostic testbench controller.

pipelined-fft's People

Contributors

5aji 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.