Git Product home page Git Product logo

verilog's Introduction

Simple CPU design implementation in Verilog

This is a CPU design based on the http://nandgame.com/ that I very highly recommend to anyone who wants to play with the low level design of the CPU in a very comprehensive way. After finishing this game, I decided to rewrite my code into the Hardware Description Language Verilog. The structure of modules very closely maps the levels of the nand game as I played it during the April of 2020.

Tests

The tests in this repository are realy basic and does not show if the individual modules work under any circumstances. I will look at the tests once I have time to closely look at the advance testing of modules in Verilog.

Dependencies

All you need to have are two Verilog compilers: Verilator and Ikarus Verilog. The Verilator is considered faster but I have several problems with it during my work. It returns error because of cyclic dependencies as the Verilator does not distinguish between the single wire of some wire array and whole wire array.

Future work

I want to transfer this design into the DE10-Nano FPGA. This is quite problematic as it requires deeper understanding of the underlying communication between the on-board ARM chip and FPGA.

Known issues

In most of the advanced modules, I need to use /* verilator lint_off UNOPTFLAT */ so I am able to compile module using Verilator and run C++ tests. This is not because of some mistake in the implementation but rather on the Verilator missing ability to distinguish between individual wires of wire array.

verilog's People

Contributors

aj0sk avatar

Watchers

 avatar

Forkers

linecomparison

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.