Code Monkey home page Code Monkey logo

simd_ce's Introduction

Efficient SIMD 2D convolution engine for FPGA-based heterogeneous embedded systems

Team number:

xohw20_244

Project name:

Efficient SIMD 2D convolution engine for FPGA-based heterogeneous embedded systems

Project link:

https://github.com/AMigali/SIMD_CE

Date:

2020/06/27

Version of uploaded archive:

1.0

University name:

University of Calabria

Supervisor name:

Stefania Perri

Supervisor e-mail:

[email protected]

Participant:

Andrea Migali

Email:

[email protected]

Participant:

Roman Huzyuk

Email:

[email protected]

Participant:

Mario Andrea Sangiovanni

Email:

[email protected]

Board used:

Nexys4DDR

Software Version:

Vivado 2017.4

Brief description of project:

The designed system is an Efficient Convolution Engine able to compute 2-D filterings in the space domain taking advantage of the SIMD paradigm. It also offers the possibility to configure, with an appropriate software, the values of the convolution kernel. The IP-Core has been described in VHDL and implemented within an embedded system built on a Nexys4-DDR board. The advantages introduced by the use of this system are an efficient exploitation of the hardware resources available inside the chip and a reduced power consumption. The proposed IP-Core, thanks to its features, can be adapted to various application areas where convolution operations are required. In particular, one of the main applications that could benefit from a system like this is that of Convolutional Neural Networks (CNNs) which are widely used in the realization of AI systems. In order to allow a wide development of this technology, it is essential to use techniques of energy consumption and hardware cost optimization without sacrificing performances.

Description of archive:

  • doc\ :

    .\xohw_20_244_project_report.pdf.

    .\DMAs_settings.txt: AXI DMA settings.

  • hw\ : contains the project bitstream.

  • ip\ : contains the SIMD Convolution Engine IP Core sources.

    .\SIMD_CONVOLUTION_ENGINE_3x3\src : contains all the VHDL design codes, including a testbench.

    .\AXI_LITE_REG.vhd: AXI4LITE interface for configuration.

    .\Convolver.vhd: Convolution Computation module.

    .\FIFO_param.vhd: Parametric FIFO structure.

    .\Filter_3x3.vhd: Convolution Engine top-module.

    .\filter_testbench.vhd: Simulation code.

    .\FSM.vhd: Convolution computation control unit.

    .\PixelBuffer.vhd: SIMD pixel Buffer.

    .\SIMD_Adder.vhd: SIMD adder tree.

    .\SIMD_Multiplier.vhd: SIMD binary Multiplier.

    .\SIMD_Sum.vhd: parametric SIMD binary adder.

    .\write_to_file.vhd: results writing code.

  • MATLAB\ :

    .\simulation_test.m performs the convolution by software and checks the Vivado Simulation results.

  • sw\ : contains the executable software.

  • SIMD_Convolution_Engine_System.xpr.zip : contains the complete VIVADO project.

  • SIMD_Convolution_Engine_IPCore.xpr.zip : contains the IPCore-only VIVADO project.

Instructions to build and test project:

  1. Decompress the SIMD_Convolution_Engine_System.xpr.zip archive and open the project by using VIVADO.

  2. Generate all the IP Core Output Products.

  3. Run Synthesis,Implementation & Bistream Generation.

  4. Export HW results into SDK and launch it.

  5. Program FPGA, open the Serial COM Port and run the configuration.

  6. Run Results will appear on the SDK Console.

Link to YouTube Video:

https://youtu.be/oM3hgEmobe8

simd_ce's People

Contributors

amigali 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.