Linked: Microprocessors Running on Air?

There was a time, now forgotten, where the expectations was that computers would run on fluid currents rather than electric currents.

(From: https://erik-engheim.medium.com/microprocessors-running-on-air-a47a702dd41f)

Fascinating! I’d never heard of this technology, but it makes sense and it’s really interesting that it could be useful for computing in ultra-harsh environments like the surface of Venus.

Linked: Pick-and-mix to create your own custom computer on a low-cost FPGA board

Pick-and-mix to create your own custom computer on a low-cost FPGA board
(BASIC, Z80, 6502, 6809, internal/external RAM, serial/keyboard+monitor, SD-card for CP/M or other storage)

…step by step design and implementation

(From: http://www.searle.wales/)

The ZedRipper project I previously linked used some FPGA cores from this project, which is very cool in its own right. I’m looking forward to trying this one someday!

Linked: GitHub – RSD: RISC-V Out-of-Order Superscalar Processor

RSD is a 32-bit RISC-V out-of-order superscalar processor core. RSD is very fast due to aggressive OoO features, while it is very compact and can be synthesized for small FPGAs.

(From: https://github.com/rsd-devel/rsd)

I’m excited about all of the innovation and ongoing development around RISC-V, especially for FPGA implementations and custom chips. The original academic paper for this one (RSD) was published in 2019, but it’s still being actively developed.

Linked: Writing 800kB Mac disks with FluxEngine

I’ve just merged in a change to FluxEngine, my open-source and easy to build USB floppy drive interface, which will let you use it to write Macintosh 800kB GCR disks using a normal PC drive.

(From: http://cowlark.com/2021-01-05-mac-800k-discs/)

This is fantastic! Writing 800k floppies for old Macs that don’t support 1.4 MB floppies has long been a huge problem for the retro Mac community, especially those that don’t have any SuperDrive equipped Macs to be a bridge machine.

DE10-Nano Overview

DE10-Nano Product Shot

Image source: DE10-Nano Product Page

One of the items on my Christmas list this year was the Terasic DE10-Nano Cyclone V system-on-chip (SoC) FPGA development board, which forms the base platform for the MiSTer emulation/replication project. From the MiSTer wiki:

MiSTer is an open project that aims to recreate various classic computers, game consoles and arcade machines, using modern hardware.

As someone with a love of retro computing/gaming (especially classic Macs) AND FPGAs, this project is almost perfectly targeted at me, and I’m looking forward to playing with it (and hopefully contributing to it) in the future. More on that at a later date.

Since I was mostly interested in the DE10-Nano as a host for MiSTer cores, I hadn’t done much research about it in advance. Once I had it, I decided it would be worth spending some time with it as an FPGA board before diving into the MiSTer world.

DE10-Nano Layout

Image source: DE10-Nano Layout Page

At the heart of the DE10-Nano is one of the SoC variants of the Cyclone V, the Cyclone V SE, specifically the 5CSEBA6U23I7NDK. According to Intel’s Device Overview (PDF), this decodes as:

  • 5C : Cyclone V
  • SE : SoC with enhanced logic/memory
  • B : No hard PCIe or hard memory controller
  • A6 : 110k logic elements
  • U : Ultra FineLine BGA (UBGA),
  • 23 : UBGA Package type 23, 672 pins, 23x23mm
  • I : Industrial temperature grade, Tj = -40C to 100C
  • 7 : Speed grade 7 (middle, 6 = fastest, 8 = slowest)
  • N : Lead-free packaging
  • DK : ???, best guess is “Developer Kit”, to ensure that devices sold for evaluation boards aren’t resold into other channels. It could also be a customer specific part number suffix for Terasic.

As an SoC FPGA, the Cyclone V SE can be thought of as two couples, semi-independent devices: the FPGA fabric subsystem, and the ARM SoC subsystem (Hard Processor System or HPS in Intel terminology).

The FPGA fabric is the standard Cyclone V FPGA fabric, which is primarily comprised of logic blocks (Adaptive Logic Modules or ALMs), RAM blocks, and DSP (multiplier/accumulator) blocks. The HPS is comprised of a single or dual core ARM Cortex A9 processor complex, along with a DDR2/LPDDR2/DDR3 SDRAM controller, various interface peripherals (Ethernet, USB 2.0, SD/eMMC), and more – basically all of the components you’d expect to find in a comparable standalone ARM SoC. As an SoC FPGA, the FPGA fabric and processor subsystem are designed to be used in conjunction, though nothing requires you to do so.

In a future post I’ll go into more detail on reading FPGA datasheets and product guides, but for now suffice it to say this is a VERY powerful FPGA for most hobbyist (and many commercial) applications. Much larger and faster FPGAs are available on the market, including SoC variants with faster processors and more peripherals, but this is a very competent device, especially since the DE10-Nano lists for $135 USD (direct from Terasic, less with an academic discount), or $140 USD on Amazon.

In addition to the Cyclone V, the DE10-Nano has a full compliment of peripherals connected to the various interfaces provided by the Cyclone V. 1GB of DDR3 SDRAM is available for the HPS, providing ample RAM for many embedded Linux solutions and applications. USB 2.0 On-the-Go (OTG), 10/100/1000 Copper Ethernet, Micro SD, and HDMI Output are all provided. The board also integrates a built-in ByteBlaster II JTAG interface for use with the Quartus software, and a built-in USB/UART for serial console access.

DE10-Nano Block Diagram

Image source: DE10-Nano Product Brief (PDF)

Some of the peripherals are directly connected to the FPGA fabric, while others are connected to the HPS. The block diagram above shows how the peripherals are allocated. Peripherals in one domain can be accessed from the other domain via the memory mapped interconnect between the two domains. For example, the ARM A9 processors running Linux can display video via the HDMI output by interfacing with HDMI pipeline logic located in the FPGA fabric.

That’s a very quick overview of the DE10-Nano and its component parts, but there’s a lot more to cover as we dig in further. Next time we’ll look at setting up the DE10-Nano, and the example environment and applications included by Terasic and Intel.