22 Nov 2017
I think it’s time to work on the Kestrel-3 again. I’ve been employed long enough that I feel the urge to resume working on it. But, some things will definitely need to change going forward.
I’ve been employed for some time now, and I’m feeling the urge to work on the Kestrel-3 again. More or less secretly, I’ve been working on updating the Kestrel-2 design with my 64-bit RISC-V processor, and have gotten a working computer again. Hardware-wise, the computer is very nearly done; it only lacks support for interrupts and hardware timers. Software-wise, I need only finish its Forth environment. I’m currently in the process of writing its own implementation of Forth to use as its host operating system. This new computer is called the Kestrel-2DX, and because of that, the Forth environment is called DX-Forth.
Like its predecessor, this computer remains limited in some ways. From the user’s perspective, this computer is more closely related to a Jupiter ACE than it is to the Atari ST or Amiga. The processor can address no more than 64KB of FPGA block RAM (the Nexys2 only has 48KB of usable block RAM, however). However, unlike its predecessor, the following new features exist:
$00000
, providing BIOS-like functionality.$10000
.$10000
at reset, though).$20000
.The goal of the 2DX is to help me in bringing up the Kestrel-3 later on. In particular, having a computer with which I can interactively toggle bits should prove quite helpful for all manner of things:
I’m no longer compromising on this computer’s specs. I’m done playing the race to the bottom. Effective immediately, I’m setting what I think are imminently achievable goals for this computer design. In particular:
Depending on how things go, and on which specific configuration of processor I use, I may change the CPU out for a Rocket core instead. I’ve been trying to learn Chisel, and for whatever reason, “this time” I seem to be getting it (it’s still a bit of a slog though). If I find Rocket too hard to use, I’ll just stick with the KCP53000 as it is. Regardless of what happens, this computer will run!
The board also has a 24-bit audio CODEC as well; but I don’t really know much about audio. I’m not a musician, and I’ve never programmed CODECs before, so this would be a learning experience for me. However, I’m not willing to commit to this, since it’s not a mission critical component to an MVP of the computer.
I’m not sure if/how to support a mouse on the DE-1 board. Unlike my other FPGA boards, the DE-1 does not have any PMOD ports. To support additional PMOD peripherals, I will need to build a riser card or expansion box for one of the 40-pin expansion ports.
Verilog is always a safe fall-back; I know it well enough to build a working system. I’m going to make a concerted effort to apply Chisel to the job of building the Kestrel-3, though. I’m motivated by:
iverilog
. This might be useful if I can only reproduce a hardware bug under certain circumstances triggered by buggy software, for instance. Instead of waiting weeks for emulation time, it might take hours or days instead. (Yeah, it can take that long.)I’ve always considered the possibility of also selling a Kestrel kit of some kind, especially to supplement my income in the event of another job-related “event.” My vision consists of a backplane and a few plug-in cards, a lot like the RC2014 computer concept.
I’m not sure the Kestrel-2DX would be of interest to anyone beyond myself, considering how limited this computer design is. However, I’ve definitely been considering it for the Kestrel-3. It’s hard to say what will happen so early in its development stage.
If I do this, I would need to redesign the Kestrel-3 to use Lattice iCE40HX4K or 8K parts on a custom motherboard. I’ve pondered this before, as some of my Hackaday.io readers would know.
Perhaps alternatively, I could just sell pre-programmed parts based on the icoBoard Gamma, MyStorm BlackIce, or even Terasic DE-1 boards.
The latter, especially, might be terribly expensive on my part though; DE1 boards can be purchased cheaply enough at around $150, though I’d have to pay double shipping costs (to get the board, then to ship it out after programming), etc. There’s inventory costs (storage), costs incurred from handling returns (you know there’ll be returns), technical support costs, and more I’m probably ignorant of.
Anyway, these are just things I’m thinking about; nothing has been decided on yet.
Let this article serve as notice that I’m officially rebooting the Kestrel Computer Project, starting in 2018. I see it as a necessity in the open-source hardware community, even if it never attains any significant degree of popularity. This is particularly relevant given the recent batch of articles and discoveries concerning Intel’s management engine, and how insecure it has been discovered to be. I think the biggest advertisement for the Kestrel-3 is a simple one: no management engine.
Samuel A. Falvo II
Twitter: @SamuelAFalvoII
Google+: +Samuel A. Falvo II
Software engineer by day. Amateur computer engineer by night. Founded the Kestrel Computer Project as a proof-of-concept back in 2007, with the Kestrel-1 computer built around the 65816 CPU. Since then, he's evolved the design to use a simple stack-architecture CPU with the Kestrel-2, and is now in the process of refining the design once more with a 64-bit RISC-V compatible engine in the Kestrel-3.
Samuel is or was:
Samuel seeks inspirations in many things, but is particularly moved by those things which moved or enabled him as a child. These include all things Commodore, Amiga, Atari, and all those old Radio-Electronics magazines he used to read as a kid.
Today, he lives in the San Francisco Bay Area with his beautiful wife, Steph, and four cats; 13, 6.5, Tabitha, and Panther.