Kestrel 2DX

Kestrel 2DX

Kestrel 2DX

Hello, and welcome to the Fossil repository for the Kestrel 2DX computer. This computer is not intended to be a full-featured computer. Rather, its purpose is to be a test-mule for software and cores intended to bring up external RAM on FPGA development systems.

Problem Statement

Most FPGA development systems have some kind of external RAM which a synthesized CPU can use to store data or execute software from. However, each FPGA board has a different amount of RAM, a different kind of RAM (e.g., static, SDRAM, pseudo-SDRAM, et. al.), and sometimes a different port width to that RAM.

Bringing up the 16MB of pseudo-SDRAM on a Digilent Nexys-2 proved impossible for me, causing me to start a multi-year cycle of down-specs ultimately culminating in a design focusing on using Lattice iCE40HX8K FPGAs with CPU and static RAM only. With a configuration like this, the computer shares its architecture more with IBM System/360 computers than with the Amiga or Atari ST computers I originally wanted to build.

The Altera/Terasic DE-1 FPGA development board has both 512KB of static RAM and 64MB of SDRAM. Considering the difficulty of bringing up SDRAM, I've decided to focus only on bringing up static RAM for the time being. However, the Nexys-2 board does not have built-in static RAM.

Therefore, this computer design, as with the Kestrel 2 computer, exclusively targets the use of on-chip memory resources only. Sufficient gaps exist in the address space to experiment with accessing external RAM or other peripherals as needed.

Technical Resources

Project/Organizational Resources

About the Name

It's kind of an inside joke, a play on the Commodore 64DX.

Why Use Fossil?

I use my Github account for public-facing developments. This exploration is intended to remain private to me. Making it private has the following consequences:

If this project works like I hope it will, I will almost certainly port everything in this repository over to the official Git repository. But, not until then! (I might even just include the whole fossil repo as a binary blob in the Git repo.)