A prototype is a preliminary model of something. Projects that offer physical products need to show backers documentation of a working prototype. This gallery features photos, videos, and other visual documentation that will give backers a sense of what’s been accomplished so far and what’s left to do. Though the development process can vary for each project, these are the stages we typically see:

What is Digital Design?

Digital design refers to creating digital circuits. Digital circuits are in basically everything today and range from something as simple as a circuit that turns an LED on when a button is pressed to the complex processor in the device you are reading this on. Traditionally, these circuits are built by making ASICs (Application Specific Integrated Circuits) out of silicon wafers. This process is incredibly expensive and complex.

FPGAs, or Field Programmable Gate Arrays, are a way to create digital circuits without these barriers. FPGAs are part of a class of devices known as programmable hardware. This means that you can design a digital circuit and program the FPGA to become that circuit. You can reconfigure the FPGA as many times as you want allowing you to create circuit after circuit without having to physically change a thing!

Background

Back in 2013, the Mojo was launched here on Kickstarter. The goal of this campaign was to bring digital design to hobbyists with a low cost board and plenty of tutorials.

The campaign was a success and in the five years since then I've written many tutorials guiding a beginner from blinking LEDs to creating a basic CPU. Development on the Mojo continued in ways that were outside the scope of the original campaign with the creation of the Mojo IDE and a custom easier to use language, Lucid. There is now even a book that supports all this.

Alchitry is the next step into simplified digital design. These new boards will bring all the goodies of the Mojo, simplicity, tutorials, an IDE, and Lucid. However, they are much more.

About the Boards

This time around, there are two FPGA boards! These are the Alchity Au (gold) and the Alchitry Cu (copper).

Alchitry Au

Artix 7 XC7A35T-1C - 33,280 logic cells (approx. 4x the capacity of the Mojo)

256MB DDR3 RAM

102 IO pins (3.3V logic level, 20 of then can be switched to 1.8V for LVDS)

9 differential analog inputs (1 dedicated, 8 mixed with digital IO)

USB C to configure and power the board

8 general purpose LEDs

1 button (typically used as a reset)

100 MHz on-board clock (can be multiplied internally by the FPGA)

Powered with 5V through USB C port, 0.1" holes, or headers

USB to serial interface for data transfer (up to 12Mbaud)

Dimensions of 65mm x 45mm

The Alchitry Au is the workhorse of the two boards. It features an Artix 7 FPGA which means no more dealing with Xilinx's antiquated ISE tool. This board also has 256MB of DDR3 RAM while still having 102 IO pins available for your projects!

Alchitry Cu

iCE40-HX8K FPGA - 7680 logic elements (approx. 0.8x the capacity of the Mojo)

79 IO pins (3.3V logic level)

USB C to configure and power the board



8 general purpose LEDs



1 button (typically used as a reset)



100 MHz on-board clock (can be multiplied internally by the FPGA)



Powered with 5V through USB C port, 0.1" holes, or headers



USB to serial interface for data transfer (up to 12Mbaud)



Dimensions of 65mm x 45mm



The Cu board is the lighter version of the two but offers something completely unique. The Cu uses a Lattice iCE40 HX FPGA that is supported by the open source tool chain Project IceStorm. The Mojo IDE will be transformed into Alchitry Labs to support the new boards. Alchitry Labs will be open source meaning that the Alchitry Cu can be developed for using entirely open source tools!

Alchitry Breakout

The connectors on the Alchitry boards have been changed to surface mount. This allows for much cheaper assembly of elements (expansion boards). The Alchitry Breakout allows you to easily connect whatever you want to your board through 0.1" holes!

Alchitry IO

4 7-segment LED digits

5 momentary push buttons

24 LEDs

24 DIP switches

The Alchitry IO is the perfect way to get your feet wet with digital design. The plethora of buttons and LEDs lend themselves to fantastic beginner tutorials that will walk you through all the basics!

The different elements (expansion boards) simply stack on top of one another! They also have cut outs so that the LEDs and button on the main board are still accessible.

FPGAs vs Microcontrollers

FPGAs and microcontrollers, like the Arduino, are very different devices. With a microcontroller you write software. That software gives you control of the built-in peripherals, like IO pins, serial ports, or analog to digital converters. The biggest limitation of software is that you can only do one thing at a time!

With FPGAs you are not creating software. You are designing the hardware! Instead of writing code to run on a fixed processor with fixed peripherals, you get to design your own circuit. If you really want to you can even create your very own processor and write software to run on it!

A huge benefit of working with FPGAs is that every element of your design runs independently of each other. That means one part of your design can be reading in some serial data, while another part is controlling a servo, while another is reading some sensors, and yet another is controlling a display.

With a microcontroller you can often be limited by the built in peripherals. There is a set number of serial ports, PWM pins, or maybe you can't use some components, like a camera, because you can't interface with them fast enough. With FPGAs every pin has the potential to become whatever you need it to be. Do you need 70 PWM signals to control a lot of servos? Alchitry has you covered. What about a bunch of serial ports or controlling a big LED display? You're covered there too. Since you are designing the hardware, you are deciding what each pin will do!

GPU Example Project

So what's something crazy you can do with an FPGA that a microcontroller could never do? Make your own GPU!

GPU Demo rendering Suzanne, the Blender monkey

This demo is running on the Alchitry Au. The FPGA is driving the display and generating every frame from scratch! The model is stored in a ROM and it consists of nearly 1000 triangles. Each triangle is transformed (rotated in this case), lighting calculated, projected onto the 2D space of the screen, rasterized, and checked against a z-buffer (so triangles in the front block triangles in the back).

This will be one of the first demo projects to be detailed after the campaign is over. It will cover everything from how all the rendering works to more common design elements like a cache for the RAM (the DDR3 on the Alchitry Au acts as a frame buffer).

It will be detailed through written tutorials as well as a video series.

How does this all work?

Digital circuits are not usually designed by drawing out a circuit. You don't sit down and wire up logic gates individually. That would make designing anything but very basic circuits very difficult and tedious. Instead, you use things called HDLs, or Hardware Description Languages, to design the circuits. These languages are almost like writing code, as you are basically just creating text files, except that you are actually describing a digital circuit that will get synthesized into hardware.

You can use whatever method you'd like that is supported by Xilinx's or Lattice's tools to work with the Alchitry boards. This includes Verilog and VHDL, the two industry standard HDLs. You will also be able to use Alchitry Labs to create designs in the much simpler Lucid HDL.

Once you have created a design, it is loaded onto the board over USB from your computer. The FPGA then becomes the circuit you made! The boards have on board memory that stores your design between power cycles.

If you would like to check out some of the existing tutorials for the Mojo click here.

Alchitry Labs

The Mojo IDE is changing into Alchitry Labs. This means that the Alchitry boards have full Lucid support, a built in library of useful components to use in your project, and a debugger!

Alchitry Labs will be open source and support Project IceStorm. This means you can work with the Alchitry Cu using completely open source code! It will also integrate with Vivado and iCEcube2 allowing you to work with the Au and choose between proprietary or open tool chains for the Cu.

Debugger in the Mojo IDE

The debugger in the Mojo IDE is currently pretty limited and a bit of a hassle to setup. This is largely due to how the USB interface was designed. The Alchitry boards are different and allow for a more seamless debugger. You'll be able to simply select the signals in your design you'd like to inspect and the tools will build a version of your project to inspect these!

If you haven't used the Mojo IDE before, here are some of the awesome features you can look forward to!

Real time error checking for Lucid

Auto-complete for Lucid

A large library of components

Example projects

The Future of Alchitry

This isn't a one-off Kickstarter project and development will continue far into the future. The near term effort will be focused on updating the software to support Alchitry. Once there is a solid working base, existing tutorials will be ported to the new platform. New elements (expansion boards) will be created (HDMI, camera, and sensors are on the short list).

I am also planning to augment the written tutorials with video tutorials.

I will also continue to expand the list of tutorials into more advanced subjects likely through example projects. Send me your ideas!

Stretch Goals

To make the campaign a little more exciting, let me introduce some stretch goals! If the campaign makes it to these higher benchmarks the rewards will be unlocked for everyone!

$50K: Every reward will come with stickers!

$75K: Every Au and Cu board will come with standoff screws!

$100K: Every Au and Cu board will come with a USB C to USB A cable!

Compatibility

The tools from Xilinx and Lattice only support Windows and Linux (sorry OSX users). These are required for building your projects. Many people have had success using a virtual machine running Linux on Macs to get around this.

However, the Alchitry Cu can be developed for natively on OSX using the open source tools, Project IceStorm. These tools are pretty new and may not be fully functional.

Alchitry Labs will initially only support Windows and Linux but support for OSX will be added if Project IceStorm turns out to be a fully viable alternative.