Giter VIP home page Giter VIP logo

memory-based-fft-accelerator-controller's Introduction

Embedded-Computing-term-project

Konkuk Univ. junior, Embedded Computing class - Park Jonghyuk, Ko Ryeowook

0. Key objectives of this Term project

Designing a controller for memory-based FFT Accelerator using Verilog HDL

Things provided in class

  • Block diagram of the FFT Acclerator
  • Code provided (Verilog HDL)
    • axis_fft.v, BF.v, FFT.v, FFTcore.v, MULT.v, TopFFT.v
  • Code provided (C)
    • Reference SDK program
    • except "fft_hw" function in main.c, in which flushes and activates DMA.
  • Timing diagram of the whole set

Block diagram

total loss

Vivado block design

total loss

  • More details : TP_EC22_r3.pdf

What we considered while designing the controller

  • Output result accuracy compared to reference output
  • Considered the input, output, and AXI handshake(valid, ready)
  • Considered whether it is possible to synthesize
  • 50MHz clock reference, considered the worst negative slack

1. Programming language & S/W tools & FPGA used

  • Verilog HDL, C
  • Vivado 2017.4, Vivado SDK
  • Zybo Z7-20

2. Our Design

  • controller_16pt_2.v, controller_64pt.v
  • sdk_src main.c "fft_hw" function

total loss

  • More details : TP_EC2022_16pt_5조.pdf, TP_EC2022_64pt_5조.pdf

3. Result

  • Accuracy (NSR) and speed compared to reference(only using SW) were evaluation criteria.
  • Comparison between implementing FFT through HW(using DMA) and implementing only through SW(reference)

16pt FFT Accelerator

total loss

total loss

64pt FFT Accelerator

total loss

total loss

  • More details : TP_EC2022_16pt_5조.pdf, TP_EC2022_64pt_5조.pdf

4. What I learned

  • Improved my Verilog HDL and C language skills
    • Synthesis-able Verilog code
    • Understanding of AXI handshake
  • Be skillful of Vivado, Vivado SDK SW tools
    • Vivado, SDK settings
    • Simulation (Behavioral, Synthesis, Implementation)
    • Timing Summary (setup/hold time, worst negative slack)
    • Hardware debugging (ILA wave)
    • Creating IP project
    • Understanding of Vivado block design (AXI interconnect, DMA, ZYNQ7 processing system), port connecting
  • Understanding of Computer Architecture
    • DMA, AMBA AXI protocol
  • Understanding of FFT

memory-based-fft-accelerator-controller's People

Contributors

kyleparkjong avatar

Stargazers

 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.