Code Monkey home page Code Monkey logo

vhdl2019's Introduction

Final project for logical networks course

Problem: Given 8 points and a 9th reference point in a 2D space (256x256) and an 8 bit mask that specifies which points to evaluate, create a mask that indicates which of the given points are at the minimum distance from the reference point.

Solution: We have to calculate of all the points from the reference one, calculate the minimum of these distances and generate the output mask. To calculate the distances we need the information on the points, but we can only read the data about one point at a time, therefore there are two possible choices:

  1. recalculate the output mask every time a point is read
  2. read the coordinates of all the points and then calculate distances and mask

I chose the second option, because it requires fewer operations and will be more energy efficient as well. We should note that executing fewer operations doesn't imply the system will be faster, in the first option it is possible to recalculate the mask and read a new point in parallel. The second option also requires more memory, because we have to store the coordinates of all the points.

This diagram describes the operation of the machine, each state takes one clock cycle:

state diagram

In order to test the proper operation of the design I wrote a C program to generate test inputs.

This image illustrates the values of some signals during operation:

signal values

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.