Skip to content
/ verilog Public

Simple CPU design based on Nand game in Verilog

Notifications You must be signed in to change notification settings

Aj0SK/verilog

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

61 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

Simple CPU design based on Nand game in Verilog

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published