Monday 29 March 2021

Running an Amiga core on a Zybo Board: Part 1

Foreword

It has been quite some time since my last post on this blog. Things were pretty busy at work, so I ended up taking quite a long break from writing blog posts.

Recently some of my readers asked whether it was possible to implement an Amiga on an FPGA that provides 20K Logic Elements. The summary of my answer was 'I don't know'.

The Amiga was based on the Motorola 68000 CPU, which in itself consists out of far more components than a 6502. So, one doesn't even know if there would be enough Logic elements left for the rest of the Amiga system.

One of the known Amiga cores can be found in the MiSTer project, here. This project is based on the DE10-Nano development board, which has 110k Logic elements. So, even with this project it was still unclear whether an Amiga core can be accommodated on a 20K FPGA, or even on my 30K element Zybo board.

After about a couple of weeks I started to become interested in implementing an Amiga on an FPGA myself. I never owned an Amiga, so it would be nice to implement it on a Zybo board, to see what I have missed in 90's concerning games 😀.

So, in the next couple of Blog Posts, I will attempt to get an Amiga core from the MiSTer project working on the Zybo board.

Whether I would be able to succeed, I cannot tell, but let us see how far we can get! 😀

Approach

In the coming Blog posts I will basically focus on the Mini Amiga sub project, here, from the MiSTer project.

Perhaps, before I continue, I should just give credit to the people that was involved for producing this core and providing it under the GPL 3 license:

  • Rok Krajnc, providing the project of which the source code of this core is based
  • Dennis van Weeren, Jakub Bednarski, Sascha Boing, A.M. Robinson, Tobias Gubener, Till Harbaum: For various contributions to the Mini Amiga project
  • Sorgelig: Maintainer of the overall MiSTer project
My approach would be to take the various components of the Mini Amiga project, bit by bit, and writing a top level module for each and trying to get it to work on the Zybo board. With such an incremental approach, it would be easier to isolate bugs that pops up.

I will start off with trying to get the CPU to work, by running a very simple 68000 machine language program and verifying that all inputs/outputs of this core are as expected.

The mini Amiga core supports two implementations for a 68000 core: fx68k and tg68k. I have chosen the fx68k core for this blog series. So, also special thanks to Jorge Cwik for providing this core as open source.

In Summary

This post was basically an introduction to the series of Blog Posts that will follow where I will attempt to get an Amiga core to run on a Zybo Board.

My focus will be on the Mini Amiga project and I will follow an incremental approach in an attempt to get the core running on the Zybo board.

In the next post I will try and get the fx68k core running on the Zybo board, using very simple 68000 machine code program as a test.

Till next time!

No comments:

Post a Comment