Winston Lowe Recreates the COSMAC Elf in FPGA Form Using the SpinalHDL Description Language

After abandoning VHDL, Lowe's project finally reaches the finish line in the form of a functional reproduction of the 1802 microprocessor.

Gareth Halfacree
a year agoFPGAs / RetroTech

Winston Lowe is working on recreating the COSMAC Elf microcomputer in FPGA form, and has opted to do so in the SpinalHDL hardware description language — after abandoning an earlier attempt in VHDL.

A DIY 8-bit microcomputer built up through a series of articles in Popular Electronics throughout 1976 and 1977, and also available in third-party kit form from a number of clone creators, the COSMAC Elf was based on an RCA 1802 microprocessor — itself built on the complementary symmetry monolithic array computer (COSMAC) architecture which gave the system its name. Unusually for a device of its age, the RCA 1802 is still in production by Intersil Corporation in radiation-hardened and other high-reliability variants — but that hasn't stopped Lowe from opting to recreate the chip on an FPGA.

"The goal of this project is to end up with a cycle-accurate [RCA] 1802 processor that can be used in FPGA designs easily," Lowe explains. "When I start the project I was new to SpinalHDL but I had attempted in the past to write the same processor in VHDL. However, language complexity and the sheer amount of code and time needed to write and debug that project ended the work on it."

A switch from VHDL to SpinalHDL appears to have provided the breakthrough required: In an update published earlier this week, Lowe has alerted subscribers to a tested and working version of what he is calling the FPGA COSMAC Elf — complete with, in its most recent update, interrupt handling. The system now supports the ability to load programs over its serial interface, reading of incoming serial data in run and single-step modes, and serial transmission to an external system.

More information on the project is available on Lowe's project page, while the source code is available under the GNU General Public Licence 3.0 on his GitHub repository.

Gareth Halfacree
Freelance journalist, technical author, hacker, tinkerer, erstwhile sysadmin. For hire:
Related articles
Sponsored articles
Related articles