AI Computing Systems (EE219)

School of Science and Technology (SIST), ShanghaiTech University

Shanghai Institute of Semiconductor Innovation (SISI)

Lab 3

Introduction

In this lab, you will implement a fixed-point Sigmoid lookup-table module and a 4 × 4 output-stationary systolic array for matrix multiplication. Complete the RTL designs and verify them using the provided tests.

Lab Overview

Lab Tasks

Download the Lab 3 materials.

Complete two independent RTL exercises:

  • Part A: Sigmoid. Use the provided 64-entry lookup table to implement input clipping, address calculation, and the output pipeline, including valid handling and reset.
  • Part B: Systolic GEMM. Implement a processing element (PE) and a 4 × 4 output-stationary systolic array for unsigned matrix multiplication, including data forwarding, accumulation, and transaction control.

Grading (100 pts): RTL designs: 65 pts. Report: 20 pts. Verification and boundary-case handling: 15 pts.

Note: Please refer to README for the detailed requirements and instructions.

Lab Files

The Lab3 directory provides the RTL starters, the Sigmoid lookup table, testbenches, test scripts, and a Makefile.

Complete vsrc/src/sigmoid.v, vsrc/src/pe.v, and vsrc/src/systolic_array.v.

Environment setup and commands for both SISI and SIST are described in README.

SISI students are advised to follow SISI_ENVIRONMENT to set up your local environment.

Requirements

Complete the three RTL files and verify both parts with make test, using the command for your environment in the README.

  1. Implement the datapath and control described in the README.
  2. Keep the supplied file paths, module names, parameters, port lists, and Sigmoid LUT values unchanged.
  3. Keep the supplied testbenches and checking scripts unchanged.

Submission

Before submitting:

  • Package sigmoid.v, pe.v, systolic_array.v, and your report together in a ZIP or TAR archive, then submit the archive.
  • In the report, explain the Sigmoid fixed-point design and approximation error, and the PE/array architecture, dataflow, timing, protocol, and resource count.
  • Include the output of make test. Do not include build artifacts or generated vectors/results in the archive.

Important

If you used AI, follow the class requirement and submit a separate AI report on Gradescope.