Student Filip Szkandera has put the finishing touches to a processor implementing the free and open source RISC-V instruction set architecture (ISA) in a novel way: It's built using discrete components.
Made available under permissive licensing terms, the RISC-V instruction set architecture allows anyone to build a processor core of their very own — either implementing the whole ISA and extensions, a subset, or even adding extensions open or otherwise of their very own. Typically these cores are built using a hardware description language (HDL) and implemented in simulation, on a field-programmable gate array (FPGA), or — more rarely, owing to the costs involved — in silicon.
Szkandera's approach uses none of these. Instead, inspired by Ben Eater's work to build a simple eight-bit processor, it implements the RISC-V ISA in discrete logic components, harkening back to the days before Intel released the 4004 and changed the face of electronics forever.
"I started making my own RISC-V CPU implementation in a program called Logisim-Evolution," Szkandera explains. "I set my goal not use ANY microcontrollers or FPGAs in my build - just basic discrete logic components. I needed to NOT set too a high goal for myself, so I would be able to finish this project in relatively short time. The most basic RISC-V CPU, that is supported by compilers, must include the extension 'I' (Integer) and it must be at least 32-bit."
"After 6 months of fiddling with Logisim, I had a working 'simulation.' The next step would be to create schematics for all of the modules, design all PCBs and order them from JLCPCB. But, as this would be my first time ordering PCBs, I didn't want to screw up everything - so I separated the design into modules, and chose few at a time, so as to not overwhelm myself."
The result is the Pineapple ONE, a stack of modular boards - each sized to reach the maximum footprint for the manufacturer's cheapest PCB pricing — connecting to one another through a series of headers. These then tie into a back panel which includes serial connectivity, power and reset switches, and a VGA video output which was, again, implemented using discrete logic components.
A series of RJ45 connectors at top of the back panel provide connectivity to external input and output devices, including a PS/2 keyboard converter, a game pad, and an LED board. Everything is enclosed in a neat, 3D-printed housing the design of which brings to mind Apple's divisive cylindrical Mac Pro. Running a custom operating system which implements some basic functions, including "a very simple snake game," the system works - albeit at a "relatively stable" clock speed of just 500kHz.
With the boards made and tested, and schematics publicly released, Szkandera's project could be considered complete - except for plans to hopefully turn the design into an educational tool. "I would love to turn this into an open source project and maybe design a do-it-yourself 'kit,' so everybody could make their own 32-bit RISC-V CPU at home," Szkandera notes. "For this to happen, some things would need to be redesigned, so the CPU could be 'useful' and run much more complex programs, or be even faster.
"This is where I need your help. These improvements are too much for one person to do alone and I'm doing these things in my free time only (because of school), so if you think you could help in any way, please, write a comment, contact me on my Twitter, or drop me an email."
More details, including the schematics, can be found on the Pineapple ONE Hackaday.io project page.