FPGA Starter Videos To Help Soften That Learning Curve

Digi-Key have been producing YouTube videos for a number of years now, and if you weren’t aware, they’re definitely worthy of some viewing time. The playlist we’re highlighting here is a pretty good introduction to FPGAs, specifically those supported by open source tools, with low cost hardware. If you’ve always wanted to get into hacking FPGA platforms, but don’t know where to start, this is going to be a big help. After first covering what an FPGA is and is not, and why you want to use one, [Shawn Hymel] dives in to the toolchain.

We’re really lucky that the bitstream for the Lattice iCE40 was reverse engineered by the super talented Claire (née Clifford) Wolf (AMP hour interview) which enabled the project ICEstorm toolchain to be created. Leveraging Yosys for synthesis and logic mapping, Icarus verilog coupled with GTKwave for simulation, netpnr for place and route and finally the project ICEstorm bitstream tools for packing into iCE40 format and loading onto the hardware. The whole toolchain flow is managed by APIO for simplicity, that is, provided your FPGA board is supported!

Of course, [Shawn] is using the low cost (for an FPGA) ICEStick by Lattice for this tutorial series, and they’re currently hard to get (you know why by now!) but, there are many other boards you could use. If you want to play with applications coupling a ARM micro to an FPGA, then the excellent BlackIce Mx is an option, but there are many other boards now with an decent micro nestled next to an FPGA and a few peripherals for convenience.

We should mention here, that project ICEstorm and the iCE40 is not the only show in town. Project Trellis has had our eye for a while, which targets the more complex Lattice ECP5 device. Yosys and friends do support more architectures, but the available flows usually require at least some vendor tool support at this time (looking straight at you, Xilinx) but as more devices get decoded, the open source tools will grow, and we will bring you that news!

What’s nice about this Digi-Key YT series, is that it doesn’t just cover the basic toolchain flow, then drop you in at the deep end of a big learning curve. There are videos covering subjects such as finite state machines (FSMs), test-benching and simulation, using embedded (block) memories, PLLs, harder subjects like dealing with metastability and clock-domain crossing (OK, he covers one technique – there’s more than one way to skin that particular cat) before finally looking at soft cores like the RISC-V. Lots to learn, and pretty well executed if you ask us! A Github version is available, for those who can’t stand watching the videos!

Continue reading “FPGA Starter Videos To Help Soften That Learning Curve”

Gameduino + Mystorm = Oscilloscope!

There has to be more than one of us who over the years since the launch of systems like the original Game Boy have eyed up these handheld platforms and thought “You could make a really neat little oscilloscope with that!” But the commercial systems are closed-source, locked down, and proprietary, so in many cases there’s little easy prospect of such a device being created.

Fortunately though, there are now very accessible handheld gaming platforms, and [James Bowman], the creator of the Gameduino series of boards, writes in to tell us about an oscilloscope project for the Gameduino 3 created by [Lawrie Griffiths]. It uses a Mystorm FPGA board with an AN108 analogue board, and while the heavy lifting of acquisition is handled by the FPGA it is left to the Mystorm’s STM32 to talk to the Gameduino. There are a few teething troubles such as the Gameduino complaining when it is fed data too quickly, but the result is an effective 8 MHz bandwidth instrument with a touchscreen interface. He does however admit that the interface is a little fiddly at the moment. All the code is available via GitHub, so should you wish to pursue this particular avenue yourself, you can.

The Mystorm has made more than one appearance here over the years, and we’re sure we’ll see more. We saw it emulating a small OLED display to put Arduboy graphics on the big screen, for example, and implementing a complete Acorn BBC Micro home computer.

A Very 2017 Take On A BBC Micro

In the early 1980s, there were a plethora of 8-bit microcomputers on the market, and the chances are that if you were interested in such things you belonged to one of the different tribes of enthusiasts for a particular manufacturer’s product. If you are British though there is likely to be one machine that will provide a common frame of reference for owners of all machines of that era: The Acorn BBC Microcomputer which was ubiquitous in the nation’s schools. This 6502-driven machine is remembered today as the progenitor and host of the first ARM processors, but at the time was notable for the huge array of built-in interfaces it contained. Its relatively high price though meant that convincing your parents to buy you one instead of a ZX Spectrum was always going to be an uphill struggle.

So, you never owned a BBC Micro, and this has scarred you for life. Never mind, all is not lost, for now you can have that Acorn experience without scouring eBay for a classic micro, by running one entirely in silicon on a myStorm FPGA board.

To be fair, running classic hardware on an FPGA is nothing new and there have been a few BBC Micros implemented in this way, not to mention an Acorn Atom. But this project builds on the previous FPGA BBC Micros by porting it entirely to Verilog and incorporating some of the bug fixes from their various forks. There are screenshots of the result running several classic games, as well as test screens and a benchmark revealing it to be a faithful reproduction of a 2MHz BBC Micro.

We covered the myStorm board when it arrived last year. We’ve also brought you another FPGA board running as a coprocessor for a real BBC micro.

Thanks [monsonite] for the tip. He also alerts us that the myStorm board’s ARM microcontroller can now be programmed from the Arduino IDE.