Spade and Surfer - An HDL inspired by software languages and a modern waveform viewer
Sprache des Titels:
Englisch
Original Kurzfassung:
This talk will present two tools that I develop to make FPGA and ASIC design easier, less error-prone and more enjoyable. Spade, a hardware description language that draws inspiration from software languages like Rust.
This is done both by borrowing features where it makes sense and by borrowing design philosophy for hardware-specific features. The result is a language with native support for pipelines, a strong static type system and abstractions for common hardware constructs like memories an ports. This helps catch bugs early, enables easy fearless refactoring, and allows building new abstractions for ready-valid handshaking and streams. Spade is also designed to be a useful project, not only be an academic experiment, so it comes with solid tools including a build tool with dependency management, editor integration and a purpose built waveform viewer, Surfer, which is the topic of the second half of the presentation. Surfer is a Waveform viewer built to be snappy and extensible which makes debugging hardware
much nicer and more productive. The extensibility allows new debugging techniques such as integration with new HDLs like Spade or Chisel and translation of instructions from RISC-V, MIPS, and user defined instruction. Surfer is also embeddable in websites, teaching tools and CI pipelines. The project was started at Linköping University and is now a successful collaboration between LIU and JKU as well as several external open source contributors.