Close

icoBoard Received; Kestrel-3 Thoughts.

A project log for Kestrel Computer Project

The Kestrel project is all about freedom of computing and the freedom of learning using a completely open hardware and software design.

samuel-a-falvo-iiSamuel A. Falvo II 01/28/2017 at 17:072 Comments

A few days ago, I received an icoBoard Gamma with 1MB of SRAM on board. I'm thinking I should port the Kestrel-3 directly to this platform, and just ditch the Nexys-2 (at least as the primary development platform). The latter is costing me much time and frustration, and honestly, I'm growing impatient. It *sucks* that I won't have 16MB of RAM to play with, though.

The problem with the icoBoard is the same problem I have with my homebrew, BackBone-based design for the Kestrel --- the FPGA is an iCE40HX8K device, and that means only 7000-ish 4-input LUTs at my disposal. Kestrel-3, as it's currently defined, will push this chip to its absolute limits. My full vision for the Kestrel-3, where it's powerful enough to run Plan 9 for its OS on a color display with decent resolution and audio capabilities, won't fit on this at all. Guaranteed.

According to Xilinx's tools, I'm already using somewhere around 5500 LUTs. If I were to add a page-table-walker to implement support for walking page tables, even without changing anything else, the resulting design is not likely to fit on the icoBoard without off-loading at least I/O onto a separate module.

An additional challenge is the potential lack of ROM resources. I don't believe I can place code in ROM like I can with the Nexys-2-based design, for that'll cost yet more LUTs. I'll try, but I won't expect much success here. I fully anticipate I'll need to add hardware to IPL the computer off of a serial interface or something.

Finally, there's the small issue of general purpose computing I/O: keyboard, mouse, video display, and SD card access for mass storage. Keyboard and mouse are easily achievable with the addition of a pair of $15 boards from Xess. Video display is also achievable with a similarly priced board that takes up two PMODs to give me only 1024 colors on the screen (due to what I feel is a design error). Alas, the icoBoard only has four PMODs, so that exhausts its easily accessible I/O capacity. To go beyond this, you'll need to solder something directly to its 4*17 interface, or use flat cables (which provides vastly more I/O capacity, but it's not cheap and it's fragile).

So, I've been thinking, maybe I should just ditch the idea of a home computer design all-together, and just go with a mainframe-inspired design. E.g., the core of the computer is a processor, some tightly bound memory, and a number of DMA-driven I/O channels that communicates with the outside world somehow. Period. That's all you get.

The idea being, some PMODs can be configured as dumb, RS-232, XON/XOFF-flow-controlled channels, while other PMODs can be built out for beefier I/O requirements. For example:

This would mean that you now need a separate and dedicated terminal to talk to the Kestrel-3's compute core. It would also destroy any hope for 60fps video refreshes except when using external GPU devices. OTOH, it does allow the use of external GPU devices, such as Gameduino and Gameduino-2 boards, provided suitable drivers are written to support them.

I hate having to make these compromises. I know my original vision is possible. It's just frustrating that I seem inept or incapable of achieving my goals.

Discussions

Samuel A. Falvo II wrote 01/28/2017 at 21:58 point

I'm going to change the scope of the Kestrel-3 to incorporate some features I humorously proposed in my April Fool's announcement for the Kestrel-4.  This will result in a computer which is better factored and more scalable.  The disadvantage is that it's not the "home computer" concept I had envisioned.  It'll be closer in architectural lineage to an IBM System/360 mainframe than to a Commodore-Amiga.

  Are you sure? yes | no

Thomas wrote 01/28/2017 at 18:17 point

Nice writeup, thanks! Please scrap the part where you take the blame for problems caused by complexity. Complexity is here to stay. Attempts to create a simple and clean, yet powerful and competitive alternative realities should be considered a piece of art. Something to learn from, to think new ideas, and to use them to deal with complexity in positive way. The world won't get any simpler by applying the new ideas. Only (hopefully) more fun to live in!

  Are you sure? yes | no