Tutorials

ISCA 2024 tutorial
The ESP Approach to Agile Chip Design ESP

Latest update: 2024-03-10

Logistics

Tutorial date: Saturday June 29 or Sunday June 30, 2024.

Tutorial venue: Hilton Buenos Aires.

Tutorial registration: (COMING SOON!).

Preliminary setup: Instructions.

Hands-on tutorial steps: (COMING SOON!).

If you are interested in attending this tutorial, please be sure to sign up for it when registering for ISCA.

Tutorial Overview

Energy-efficient, high-performance computing requires the integration of specialized accelerators with general-purpose processors. Designing such systems, however, imposes a difficult set of challenges, particularly for small teams. Integrating and verifying many components, potentially designed by different teams with different tools, into a single SoC is already a difficult task. Arriving at functional FPGA prototypes and real silicon implementations further increases the complexity exponentially. In this tutorial, we present ESP, an open-source platform to support research on the design and programming of heterogeneous SoC architectures. By combining a scalable, modular, tile-based architecture with a flexible system-level design methodology, ESP simplifies the design of individual accelerators and automates their hardware/software integration into complete SoCs. This tutorial focuses on recent developments to ESP for ASIC design, which are backed by real silicon implementations.

In the first part of the tutorial, attendees will be given a hands-on introduction to ESP, showing them how to design a new custom accelerator for ESP, how to generate an FPGA bitstream for a complete SoC featuring that accelerator, and how to deploy software applications that invoke the accelerator. We will also demo new extensions to the ESP network-on-chip that enhance the flexibility of on-chip communication for many-accelerator SoCs.

The next section of the tutorial will focus on ASIC design of ESP SoCs. We will leverage an open-source process design kit (PDK) to integrate memories, pads, and clock generators into the design. Next, we will show how to perform functional verification of the SoC – both with the RTL design and synthesized netlists – and describe how the same tests can be leveraged to perform bring-up on the fabricated silicon thanks to our provided test infrastructure. Finally, we will show how to prepare the design for synthesis and place and route and discuss some best practices for physical design based on our experience with two complex silicon implementations.

The last part of the tutorial focuses on the design and integration of embedded FPGAs into ESP-based SoCs. We first demonstrate the design and tool flow to generate the RTL of the custom FPGA, leveraging the open-source OpenFPGA framework to automate this process. We then describe the architectural modifications and new components designed to enable the integration of an FPGA fabric inside ESP alongside CPUs, memory, I/O peripherals, and fixed-function accelerators. Finally, we demonstrate the compilation and execution flow of applications targeting the embedded FPGA inside ESP.

For more information check out the Github release, the Publications page and the Tutorials and talks page on this website.

Back to top

Preliminary setup

If they wish, participants have the opportunity to try the parts of the tutorial that don’t require licensed CAD tools or FPGAs. Doing so requires to go through some preliminary setup before the beginning of the tutorial. There are two options:

  • use the Docker image for the ESP tutorial: instructions.

  • install on your machine the packages and tools required by ESP: instructions.

Back to top

Program

(COMING SOON!).

Back to top

Video recording

(COMING SOON!)

Back to top

Team

System-Level Design (SLD) group at Columbia University, New York.

Speakers

Luca P. Carloni is professor and chair of Computer Science at Columbia University in the City of New York. He holds a Laurea Degree Summa cum Laude in Electronics Engineering from the University of Bologna, Italy, and the MS and PhD degrees in Electrical Engineering and Computer Sciences from the University of California, Berkeley. His research interests include heterogeneous computing, system-on-chip platforms, embedded systems,and open-source hardware. He coauthored over one hundred and seventy refereed papers. Luca received the NSF CAREER Award, the Alfred P. Sloan Research Fellowship, and the ONR Young Investigator Award. He is an IEEE Fellow.

Biruk Seyoum received his PhD from the Real-Time Systems (ReTiS) Laboratory of Scuola Superiore Sant’Anna. He is currently a post-doctoral research scientist in the System-Level Design group at Columbia university. His research interests include design and implementation of heterogeneous architectures for reconfigurable platforms, design tools and applications for dynamic partially reconfigurable platforms, and FPGA-based deep neural network acceleration.

Joseph Zuckerman is a Computer Science PhD candidate at Columbia University, working in the System-Level Design group. His research interests include agile design methodologies, novel architectures, and runtime optimization of heterogeneous systems-on-chip. He is the recipient of an NSF Graduate Research Fellowship and previously completed his bachelor’s degree in electrical engineering at Harvard University in 2019. Joseph currently leads the development of ESP.

Back to top