[LCA2019 Chat] (Almost) Free FPGA hardware (with open tool support!)

Tim 'mithro' Ansell me at mith.ro
Sun Jan 20 16:01:46 AEDT 2019


*Hi everyone!Here at Linux.conf.au <http://linux.conf.au/> I have a large
number of different types of FPGA based hardware that are looking for
homes! While the hardware is free (as in beer), I want it to be actually
used (rather than sitting on someone's shelf) so there are some
requirements you need to meet to get hardware.  Read on to find out
more!The three types of boards I have to give away are (I have multiple of
each); * Hacker FPGA Tomu - for people who want to start getting into FPGA
dev and help with Tomu, RISC-V IoT or FuPy. * Digilent Arty A7 - for people
who want to help with 32bit Linux on RISC-V and LiteX Linux support. *
Digilent Basys 3 - for people who want to help with the SymbiFlow
project.More information and the requirements for getting the boards are
below! If you get stuck, myself and other contributors to the project will
be more than happy to help you. Feel free to join the #timvideos or #tomu
channels on irc.freenode.net <http://irc.freenode.net> or find me at the
conference.Looking forward to seeing what people will do.Tim 'mithro'
Ansell"Hacker" FPGA Tomu Boards---------The first set of boards I have are
the hacker Tomu FPGA (“Fomu” for short). At LCA last year everyone got the
original Tomu board which was an ARM microcontroller that fit actually
inside your USB port (see https://tomu.im <https://tomu.im/>). The Fomu is
the same form factor as the original -- it fits inside your USB port -- but
replaces the ARM microcontroller with an iCE40 FPGA.The iCE40 FPGA is cool
because it has multiple totally open source FPGA toolchains! The FPGA is
also big enough to contain a small "IoT class" RISC-V soft CPU with
~128kbytes of RAM + 1Megabyte of XIP SPI flash. This makes it possible to
run MicroPython in the board thanks to the FuPy project
<https://fupy.github.io/>! There are two variants of the FPGA Tomu - the
production and hacker variants.The production boards are what you will get
if you order Fomu boards from the CrowdSupply campaign at
https://j.mp/fomu-cs <https://j.mp/fomu-cs> (active for one more week!) and
will ship a while after the campaign ends. They have nice features like
QSPI, a custom injection molded case, ESD protection and other more
advanced features. This version will ship with MicroPython running on the
RISC-V soft CPU and a UF2 <https://github.com/Microsoft/uf2> and DFU
<http://www.usb.org/developers/docs/devclass_docs/DFU_1.1.pdf> compatible
bootloader. You will be able to program the board via the web
<https://devanlai.github.io/webdfu/dfu-util/> or just dropping a file on a
virtual mass storage device
<https://makecode.com/blog/one-chip-to-flash-them-all> without needing any
drivers! Thus you can just get started using MicroPython in a similar way
to Adafruit's newer CircuitPython boards or treat the board as a RISC-V
microcontroller. These are not yet available.The hacker boards are what you
can get from me here at Linux.conf.au <http://Linux.conf.au> 2019. These
boards have a reduced set of features -- mostly around long term
reliability -- to keep the cost down and allow production in small
quantities by hobbyists. We will be working on implementing the bootloader
and other similar gateware + firmware functionally at Linux.conf.au
<http://Linux.conf.au> and want to test the compatibility with a wide range
of different hardware. The hacker boards are thus currently unprogrammed
and not guaranteed to work but we have bought a programming jig to the
conference.I have roughly 250 hacker Tomu FPGA here at the conference. To
get a hacker FPGA Tomu(s) you must do one of the following things;    (a)
Show me that you have successfully completed the "Compiling the Gateware
and BIOS
<https://github.com/timvideos/litex-buildenv/wiki/HowTo-FuPy-on-iCE40-Boards#compiling-the-gateware-and-bios>"
section of the "FuPy on iCE40 Boards
<https://github.com/timvideos/litex-buildenv/wiki/HowTo-FuPy-on-iCE40-Boards>"
how to (found on litex-buildenv wiki
<https://github.com/timvideos/litex-buildenv/wiki>).    (b) Contribute
(send a pull request, fix documentation, help people on IRC, write a blog
post, packaging) to any of my many projects including like TimVideos
<http://code.timvideos.us/>, HDMI2USB <https://hdmi2usb.tv/>, LiteX
BuildEnv <https://github.com/timvideos/litex-buildenv/wiki>, FuPy
<https://fupy.github.io/>, SymbiFlow <http://symbiflow.github.io> or
directly to anything Tomu related.    (c) Help improve support for the Tomu
/ Fomu (and LiteX related peripherals) in other projects like:         *
operating systems such as Zephyr, NuttX, RTEMS, ChibiOS or pretty much
anything else,         * emulation / simulation environments such as QEMU,
Renode and Verilator,         * tooling like OpenOCD, flashing tools and
host drivers,         * development environment like nextpnr
<https://github.com/YosysHQ/nextpnr>, Yosys
<http://www.clifford.at/yosys/>, Verilog to Routing
<https://verilogtorouting.org/>, etc,         * bare metal libraries,
examples, demos or writing tutorials.          Pretty much showing that you
will use and support the Tomu / Fomu in some way!    (d) Give me $250 USD
or $250 AUD to get roughly half a sheet (~24) of Fomu boards.    (e) Ask a
good question at a talk related to the Tomu FPGA happening here at
Linux.conf.au <http://Linux.conf.au> such as;         * "Plastic is
Forever: Designing Tomu's Injection-Molded Case"
<https://linux.conf.au/schedule/presentation/103/> talk covering the design
process for injection molded cases given by Sean 'xobs' Cross' talk on
Wednesday morning.         * "SymbiFlow - The next generation FOSS FPGA
toolchain <https://linux.conf.au/schedule/presentation/140/>" talk covering
the new open source toolchain for FPGAs given by myself, Tim 'mithro'
Ansell on Thursday morning.Digilent Arty A7---------The Digilent Arty A7
board
<https://store.digilentinc.com/arty-a7-artix-7-fpga-development-board-for-makers-and-hobbyists/>
is a much bigger and high performance Xilinx Series 7 Artix FPGA with
features like 256MB DDR memory and 100Mbit Ethernet. This makes it suitable
for running full operating systems like Linux. It is the same board that
was used last year at the LCA2018 FPGA Miniconf
<https://lca2018.org/programme/miniconfs/fpga/>.Due to this hardware being
more expensive I am reserving the boards for people who can demonstrate the
skills and time to contribute to improving support for the LiteX BuildEnv
SoCs in Linux and QEMU. The major areas for improvement are; * Improving
the 32bit RISC-V architecture in Linux. * Writing architecture independent
Linux device drivers for LiteX parts. * Getting support for our 32bit
RISC-V SoCs in QEMU up to a comparable level as the or1k and lm32
versions.To get a Digilent Arty A7 you must do both the following things; *
Demonstrate you have successfully gotten up to the "The instructions from
here can only be done after you receive hardware" section of the
"Linux.conf.au 2018 FPGA Miniconf Set Up Instructions
<https://github.com/timvideos/litex-buildenv/wiki/HowTo-LCA2018-FPGA-Miniconf>"
HowTo on the LiteX BuildEnv <https://github.com/timvideos/litex-buildenv>.
* Demonstrate ability to contribute to (or a history of contributing to)
Linux or QEMU development.Digilent Basys 3---------The Digilent Basys 3
board
<https://store.digilentinc.com/basys-3-artix-7-fpga-trainer-board-recommended-for-introductory-users/>
also has a high performance Xilinx Series 7 Artix FPGA but lacks some of
the external features required for things like Linux. The reason this board
is interesting is that it is currently the first Series 7 board to be
supported by the SymbiFlow toolchain <https://symbiflow.github.io/>,
meaning some development for the board can be done using open source tools
(without using the vendor tools).Again, due to this hardware being more
expensive I am reserving the boards for people who can demonstrate the
skills and time to contribute to SymbiFlow and related projects.To get a
Digilent Basys 3 you must do one of following things; * Set up the Project
X-Ray <https://github.com/SymbiFlow/prjxray> development environment and
send a pull request demonstrating some understanding of the process behind
the project. * Set up the SymbiFlow Architecture Definitions
<https://github.com/SymbiFlow/symbiflow-arch-defs> environment and send a
pull request demonstrating some understanding of the process behind the
project.*
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lca2019.linux.org.au/pipermail/chat/attachments/20190120/018f9ac5/attachment-0001.html>


More information about the Chat mailing list