-
clash-spaceinvaders
Intel 8080-based Space Invaders arcade machine implemented on an FPGA, written in CLaSH
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
ICFP2020_Bluespec_Tutorial
Tutorial on hardware design using Bluespec BH (Bluespec Classic) for Haskell programmers at ACM ICFP 2020 conference
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
The largest repo of public Clash code is probably https://github.com/gergoerdi/clash-spaceinvaders What’s nice about it in my view is that it takes a really Haskell-centric approach (as apposed to a write-verilog-in-Haskell approach)
In terms of not just code, but also text, https://github.com/standardsemiconductor/VELDT-getting-started is a really great tutorial
There are at least two RISCV implementations: - non-pipelined: https://github.com/christiaanb/contranomy - pipelined: https://github.com/adamwalker/clash-riscv
Interfacing with 3rd party IP remains non-trivial... we have: 1. Clash’s extensible primitives, http://hackage.haskell.org/package/clash-prelude-1.2.5/docs/Clash-Tutorial.html#g:14, but that only works for tiny IP as you have to provide a Haskell model 2. An alpha-version of Verilog co-simulation: https://github.com/clash-lang/clash-compiler/tree/master/clash-cosim, it’s VPI-based, tested with iVerilog and ModelSim, and might/should support encrypted IP through modelsim 3. Using Verilator to speed up Clash simulation, https://github.com/gergoerdi/clashilator, which might be retoolable for Verilog co-sim; but not for encrypted vendor IP 4. We’re working on a cocotb-based co-simulation, but we haven’t decided on open-sourcing it yet
I watched recently another talk, on Bluespec Haskell ( https://www.youtube.com/watch?v=JCxE3JQAXY0 / https://github.com/rsnikhil/ICFP2020_Bluespec_Tutorial ), and it seems that BH takes a really different approach from Clash. I wonder what you make of it. I have no clue about circuits, but it seems that they impose way more higher-order organisation on the circuit. (I know this isn't linear types related, but still).