# Previous Specifications

Originally,
the very first member of the Kestrel-3 family
would have supported
[my use-cases](wiki/Ecosystem)
with the following

as found on my
[Altera/TerasIC DE-1 development

* 512KiB RAM
* 640&times;480 display resolution with 16 colors out of 4096.
* Built-in SD card slot for bootstrapping, loading data, and saving data.
* PS/2 keyboard for user input.
* A 9-pin RS-232 port.

I wanted to target this board for the purposes of simplicity:
it has everything I need to make a reference implementation of the computer.
It also is quite affordable at US$150,
at least until such time as they stop manufacturing it.

However, in having discussions with a number of people
who were interested in
following along with the Kestrel-3's development for themselves,
tutorial-style,
I've decided to **not** go this route
(at least, not primarily).
Instead,
I'm now looking to use two or more iCE40HX8K-based FPGA boards
in tandem to construct the first Kestrel-3 prototype.
These boards are, in particular,
[icoBoard
and
[MyStorm
boards.
Both are targeted with the open-source toolchain, Yosys.
Additionally,
both icoBoard and BlackIce boards are
free/open-source hardware projects.
So this would be a great way of supporting their efforts as well.

This does mean it'll be more expensive to build;
at a minimum,
you'll need to purchase more adapters
to get a working desktop computer.
You'll want to contain everything inside a project box, as well.

# Current Specifications

This design concept is not fully fleshed out, however;
details to come as I resolve fundamental problems with this approach.

Right now I'm looking at using two open-source FPGA boards
built around the open-source accessible Lattice iCE40HX4K or iCE40HX8K FPGAs.
One board will consist of the CPU,
at least 512KiB of local SRAM,
and one serial port to facilitate bootstrapping the system.
Another board will consist of the I/O hardware,
at least 512KiB of I/O-accessible SRAM,
and related ports and adapters.

My plan is to use the MyStorm BlackIce as the I/O board,
because it has more usable PMOD ports.
It should be able to handle
a [two-PMOD VGA
providing 4096 color output,
two [PS/2
(one for keyboard, one for mouse),
a PMOD for driving audio,
and the two PMODs needed for the ByteLink interconnect.
It also has an SD card slot that can be used as a "built-in" storage device.

This leaves the icoBoard Gamma to serve as the CPU board.
Although this board has more I/O capacity, it's less accessible to the casual user.
It does, however, expose four PMODs,
two of which are conveniently usable for the ByteLink interconnect.
This leaves two more PMODs free for use as high-speed serial interfaces
for intelligent peripherals and/or debugging terminals.

## The CPU Board

This would almost certainly be built on the icoBoard Gamma.

* KCP53000/C processor running at 25MHz.  This processor would be a port of the KCP53000 processor from Verilog and Shen into pure Chisel, and equipped with a 16-bit TileLink TL-UL (minimum) front-side bus.  Along the way, it would fix a number of long-standing performance regressions as well.  Eventually to be replaced with a KCP53010.
* 512KiB SRAM (minimum).
* 16KiB ROM (minimum) to store a ported version of the Kestrel-2DX BIOS.
* SIA port.  This would implement a synchronous serial connection to talk to the outside world via a terminal (uses one PMOD 1x6).
* SD Card, to boot from.
* [ByteLink Interconnect](wiki/ByteLink) (4.5MB/s throughput to I/O board)

## The I/O Board

This would almost certainly be built on the MyStorm BlackIce.

* ByteLink Interconnect (4.5MB/s throughput to CPU board)
* VGA Port
* PS/2 Port(s)
* Audio outputs
* 512KiB "I/O" SRAM (minimum)

# Standard Disclaimers Apply.

Of course, I reserve the right to change my plans depending upon
changes in general hardware availability.