Giter Club home page Giter Club logo

arilla's Introduction

Arilla

Arilla - Computer Architecture project, spring 2021.

About

The project was about running Paint on a Cyclone III FPGA. This included:

  • a RISC-V (rv32i) CPU,
  • a C program compiled using GCC,
  • a GPU (outputting on a VGA display) with the ability to draw a pixel, line or square,
  • a module for communication with SDRAM (within the GPU),
  • a PS/2 mouse controller, and
  • additional tools.

You can read additional information under folders for each of these components.

Development tools

Best practices

The following are best practices when developing components for Arilla - they allow easier simulation through ModelSim and make development more consistent:

  • Single bit constant signals should not be named 0 and 1, but zero and one instead.
    • 0 and 1 are reserved VHDL characters.
  • Signals should not be named IN or OUT, but I and O.
    • Similarly to the above.
  • Identifiers must begin with a letter and should end with a letter (ending with a digit is allowed but discouraged).
  • When generating components, generate them in the components folder from the components project and make sure they are included in that project.
  • Generate megafunctions using VHDL and only generate required files (.vhd and .bsf).
  • Microcode memory initialization (.mif) files should be placed in the mic folder while .vhd asynchronous ROM files belong to folder of the project in which they are used.

Documentation

arilla's People

Contributors

ivan-pesic avatar kockaadmiralac avatar lazar2222 avatar topofkeks avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

mfkiwl ackomsft

arilla's Issues

Paint improvements

  • Improve flood fill to be more cache friendly
  • Add logos
  • Move logos and icons into the stack
  • Correct gpu behavior to be inline with what was discussed
  • Keep in mind that drawing invalidates cache

Read cache metrics

add counters for cache hits, delayed cache hits and cache misses
and a way to display them

Check necessary manual vhd changes

Check 442099d for manual changes to autogenerated .vhd files that have to be reapplied manually whenever associated .bdf file is changed and .vhd file is regenerated.

Adding @KockaAdmiralac if he wants to corect .bdf files to decrease requred amout of manual changes (check in with me for required corections).

Mouse Controller improvements

  • Invert Y axis
  • Fix position underflow
  • Maximal X and Y values should be 799 and 599 respectively (instead of 800 and 600 since we are counting from 0)
  • Make resetting controller during runtime possible

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.