Close
0%
0%

The Moncky project

Creating a complete working retro 16-bit computer from scratch in the style of the C64, CPC 464 and alike using an FPGA

Public Chat
Similar projects worth following
Hi, welcome to the home of the Moncky project!
The goal is to create a complete working retro 16-bit computer but with modern technology (FPGA board). It is a work in progress. A lot of ideas are still floating around :-)
At the heart is a 16-bit single cycle self-made RISC processor (not pipelined): the Moncky-3. In this project you can also find its predecessors. The Moncky-1 was first conceived to teach students about digital logic and processors.
The Moncky-3 computer is implemented on an Arty S7: Spartan-7 FPGA Development Board. The Moncky-3 processor interfaces with 2x128KB dual-port RAM, a VGA output, a PS/2 keyboard input, and an SPI interface. The computer can read files from an SD card connected to the SPI port.
It currently runs at 20MHz but I hope to make it faster one day.

All code and documentation can be found at: https://gitlab.com/big-bat/moncky

Currently working on a C-compiler to make it easier to create programs (and games :-) )

The software is read from an SD card at startup.  So it is easy to change it.  Here you see a few video's.

MonckyProject.pdf

This document describes the Moncky project. It is also available through github.

Adobe Portable Document Format - 849.41 kB - 09/20/2021 at 17:15

Preview
Download

computersystems.pdf

This is the course text that I use for my students. In this document the Moncky-1 processor is introduced

Adobe Portable Document Format - 1.53 MB - 09/20/2021 at 17:14

Preview
Download

  • 1 × Digilent ArtyS7 50 FPGA board
  • 1 × Digilent pmod VGA adapter
  • 1 × Digilent pmod PS/2 adapter
  • 1 × Velleman SD card adapter
  • 1 × Arduino proto shield + mini bread board

View all 7 components

  • C compiler enhanced

    bigbat09/15/2021 at 12:48 0 comments

    The C compiler now also knows external functions (from firmware), while, if, and return statements.  See the file "testje.c" on gitlab. It will compile and execute on the Moncky computer.

  • Initial C compiler ready

    bigbat09/10/2021 at 11:58 0 comments

    A first implementation of the C compiler is available on gitlab. 

    The code can use some refactoring, and comments.

    The compiler can already parse a lot of C-files but code generation is not implemented for a lot of constructions.  However, the basic structure is there and just needs extra code.

    Still a lot of work :-) 

View all 2 project logs

  • 1
    How to make your own Moncky-3 computer

    Make sure the arduino shield does not have any components that could generate a 5V signal on one of the pins.  The FPGA cannot handle this!  I also took away the LED that was connected to pin 13.

    Use the arduino shield to connect the SD card reader to the board.  Power (3.3 V) can be drawn from the standard pins.  The SPI pins are also standard for an arduino UNO (pins 10, 11, 12, and 13 are used for SS, MOSI, MISO, CLK respectively).

    You can find the file "top.bit" in the "Moncky3_verilog" folder in the project files (https://gitlab.com/big-bat/moncky).  This file can be used to program the FPGA.  Uploading the file to the FPGA can be done with Vivado software (freely available at the Xilinx site).  The chipset of the flash-chip is "s25fl128sxxxxxxx0" and not the one in the documentation of the board.

  • 2
    Running a program on the Moncky-3 computer

    The assembler will output many different files.  One of them is a ".img" file.  Rename this file to "MONCKYOS".

    Now create a partition on an SD card <32 MB (currently only small partitions are supported).  Format the partition with a FAT16 file system.  Now copy the "MONCKYOS" file to the SD card.

    Put the SD card into the computer and boot it up.  It should load your project and execute it.

View all instructions

Enjoy this project?

Share

Discussions

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates