Improved Tooling for Digital Hardware Development: Spade, Surfer, and more

· Linköping Studies in Science and Technology. Dissertations Book 2460 · Linköping University Electronic Press
Ebook
55
Pages

About this ebook

Hardware complexity is ever-growing but the front-end tools used to design hardware are not keeping up, especially when compared with software tooling. While software and hardware have fundamental differences, there is enough overlap between the domains to warrant taking ideas and inspiration from software tooling to build better hardware tooling. This dissertation is made up of three parts, each focused around a tool that was built in part based on this idea.

The first tool is Spade, a hardware description language built with the explicit goal of improving developer productivity by taking inspiration from software programming languages. Some features are carried over outright: the type system, a build system with easy dependency management, and a compiler that produces helpful error messages. Most features however, are built specifically for hardware based on design philosophy from software, these include an abstraction for correct by construction pipelining, linear types for modeling memory ports, and the ability to define new custom hardware-centric abstractions such as ready valid interfaces.

The second tool is Surfer, a waveform viewer built from the ground up to accommodate new hardware design workflows. One example of this is integration with modern HDLs like Spade to allow full use of their complex type systems. Other examples include the ability to embed the waveform viewer in bigger project, to control it externally, and to use it in web technologies. The viewer has already seen widespread adoption, has integration with Chisel, Clash, and RHDL in addition to Spade, and is used as a component of several proprietary and open source tools.

The final part of the thesis is centered around Cinnabar, a new high level synthesis tool. It lays the groundwork for a way for domain experts to work with hardware engineers to build accelerators for model based control applications. To do this efficiently, it is helpful if the domain experts can work on the modeling largely independently of the hardware engineers working on the hardware architecture. This is achieved by a high level synthesis tool that compiles a simulation model to efficient hardware without requiring any domain expertise. In parallel, a hardware engineer can develop the hardware which executes the simulation, a task which requires less domain expertise and where high level synthesis typically performs worse than a handwritten solution.

In order to tie these works together, a simulation model of a hybrid electric vehicle synthesized with high level synthesis was combined with hardware written in Spade for performing dynamic programming. Together, this allows real time use of an algorithm for optimizing fuel efficiency, which has traditionally only been possible off-line when executing on CPUs.

Rate this ebook

Tell us what you think.

Reading information

Smartphones and tablets
Install the Google Play Books app for Android and iPad/iPhone. It syncs automatically with your account and allows you to read online or offline wherever you are.
Laptops and computers
You can listen to audiobooks purchased on Google Play using your computer's web browser.
eReaders and other devices
To read on e-ink devices like Kobo eReaders, you'll need to download a file and transfer it to your device. Follow the detailed Help Center instructions to transfer the files to supported eReaders.