GithubHelp home page GithubHelp logo

luyunchenglyc / somvhdl Goto Github PK

View Code? Open in Web Editor NEW

This project forked from tuhalf/somvhdl

0.0 0.0 0.0 26.44 MB

A simple and scaleable Self Organizing Map implementation written in VHDL. Tested on ARTYA7-35T board.

Pascal 0.01% VHDL 94.36% Batchfile 0.01% Tcl 0.06% C 0.45% HTML 0.04% JavaScript 0.02% Shell 0.33% Verilog 3.18% V 1.49% Stata 0.03% Forth 0.01% PureBasic 0.01% R 0.01% C++ 0.01% Python 0.01% MATLAB 0.01%

somvhdl's Introduction

DOI

SOMVhdl - Self Organizing Map Implementation On FPGA

A simple and scaleable Self Organizing Map implementation written in VHDL. Tested on ARTYA7-35T board.

Tests

Test with 10 color inputs

Test with 50 color inputs

Features

  • Any number of data entries via serial interface. (Limit is set to 254 but can be changed)
  • Results output via serial interface.
  • Flexible iteration and specification counts and map sizes.
  • Non-repetitive psudo random map generation with Attiny85 extention.
  • Test button to get output before training.

How To Use

Installation

You can use Pre-Generated Bitstreams, which are avalible in releases or can generate from source.

! To generate random map to start, you have to connect a 6 bit random bit generator to JA pins. You can use an Attiny85 or an Arduino for this. The necesary codes are in /Tools/RandomInit_attiny85 folder.

To make sure random map generation works fine, uncomment the commented lines on getMap.py and press BTN1 while running the code. Random output looks something like that:

Training

To train inputs from CSV files, you can use the Python code in /Tools/getMap.py It reads the output from Train.csv and writes outputs to map.csv.

Visualization

For visualization, I used the idea from Isidroc SOMcpp Project Using his R script, you can easily visualize the generated map. You can find the script in /Tools/PlotColorMartix.R

Implementation Summary

Timing

WNS WHS
0,21 0,04

Place Design

LUT FF BRAM DSP I/O BUFG
19,36 18,14 34,00 6,67 8,57 3,13

To do

  • Divide map into smaller parts to do parallel processing.

End

somvhdl's People

Contributors

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