Demonstrate how to use a 100% Free Software based toolchain to program Field-Programmable Gate Arrays(FPGA’s). We will have fun describing simple logic circuits in software and finally running them on the IceStick evaluation board - without using any proprietary software!
FPGA’s are powerful tools for building digital systems. Unfortunately, most FPGA vendors are still living under a rock - the information required to program FPGA’s is kept secret with the result that you have to depend on vendor specific tools which are often hard to install and ridiculously bloated (think of downloading a few Gigabytes of software to implement a simple logic circuit). The end result: unlike microcontrollers, which can be programmed by school kids thanks to stuff like Arduino, FPGA’s are accessible only to specialists.
In March 2015, Clifford Wolf and Mathias Lasser succeeded in reverse engineering the “bitstream” format of the ICE40 FPGA’s manufactured by Lattice Semiconductor; they created a collection of Free Software tools which when combined with Free Software implementations of hardware-description languages like Verilog provided the world’s first completely Free Software based toolchain for designing FPGA based systems (“project IceStorm”)!
In this talk/demo, I will provide all the information needed by a beginner to get started with the exciting world of FPGA design based on 100% Free Software tools. You will learn how to describe simple digital circuits in a high level language and ultimately transform this description to the bitstream format of ICE40 FPGA’s using the tools provided by project IceStorm. All our experiments will be done on the IceStick evaluation board - so we will see some real hardware in action!
Basic knowledge of digital logic design. Particpants need NOT have any background in hardware description languages or FPGA based design.
I am a programmer and Free Software enthusiast from Trichur, Kerala. More info: http://pramode.net
http://pramode.net/downloads/fpga.tgz
{{ gettext('Login to leave a comment') }}
{{ gettext('Post a comment…') }}{{ errorMsg }}
{{ gettext('No comments posted yet') }}