Clash @ ZuriHac 2019

Clash tutorial

We’ll be running a small tutorial where you will learn the basics of Clash, and hardware design, by building a stack-based CPU (think Forth). Hopefully (see the next point for why) by the end of the weekend we will get to configure an actual FPGA with your designs.

To prepare, have the following installed on your machine:

  • cabal, at least version 2.4 (stack should also work)
  • ghc, at least version 8.4.*

Then clone the Clash git repo:

git clone https://github.com/clash-lang/clash-compiler.git

And run cabal new-build all in the directory (stack build should also work). And after that to confirm everything is working:

cabal new-run clashi

or

stack exec clashi

MiniZed project setup

We will have (at least) one MiniZed FPGA development kit with us. This is a fairly feature-complete kit: * Xilinx Zync ARMv7 CPU + FPGA System-on-Chip, * 512 MB DRAM, 8GB Flash, * WiFi+BlueTooth, * Arduino-shield and 2 PMOD headers; * and also relatively inexpensive at $89.

We hope to have it mostly setup before ZuriHac for easy Clash deployment, but could probably do with some help with further automation. This will then serve as a basis for other Clash Board Support Packages (BSPs). I will try to get this running while people are doing their exercises; any help from someone with (intimate) knowledge of Xilinx Vivado/SDx would be greatly appreciated.