See Summer 2023
Lecturer: Ned Bingham
Time: June 3, 2024 to August 21, 2024
This course covers the fundamentals of self-timed circuits including timing assumptions and guarantees, failure modes, pipeline structures, data encodings, conditional logic, internal memory, and non-deterministic behavior, hardware description languages for different layers of abstraction, and two design methodologies. It is designed with a bottom up approach, starting with circuitry and working its way up through more abstract representations. Background experience with programming is required, and circuit design is helpful but optional. The course is offered for free with the goal of building local expertise and community in VLSI, Computer Architecture, and Self-Timed Circuits.
There are 24 sessions and each involves roughly 30 minutes of lecture and 30 minutes of exercises. A full toolset will be provided in the form of a docker container for Linux, facilitating both digital and analog simulation. Each session will be recorded and made available within 24 hours.
- On Ubuntu, install the
docker.io
package from apt:sudo apt install docker.io
, thedocker-ce
package doesn't let you write files from within the container. - Pull the development environment image:
docker pull public.ecr.aws/l5h5o6z4/broccoli-cli:latest
- Clone the Toolset for Self Timed Circuits:
git clone https://git.broccolimicro.io/Broccoli/broccoli-cli.git
- Clone the Lectures and Exercises:
git clone https://github.com/broccolimicro/course-self-timed-circuits.git
- Set up the toolset:
source broccoli-cli/bcli-develop.sh
- Download the Skywater 130nm PDK and Configuration Files
- Extract to your home directory:
mkdir ~/tech; tar -xzvf sky130.tar.gz -C ~/tech
- Configure the technology directory location:
export BCLI_TECH="$HOME/tech"
- Start the docker container for the toolset:
bcli up
- Connect to the docker container for the toolset:
bcli
cd /host/course-self-timed-circuits/lecture_1
- fill in
e1.act
- compile:
make e1
- run the digital simulation:
prsim e1.prs
source e1.rc
exit
- run the analog simulation:
cd e1
prsim env.prs
source prsim.rc
exit
- Alain Martin. "The limitations to delay-insensitivity in asynchronous circuits." Springer New York, 1990.
- Digital Logic and Production Rules (slides, video)
- Introduction to Self Timed Circuits (slides, video)
- Weak Condition Half Buffers (slides, video)
- Fundamental Concepts (slides, video)
- Pre-Charge Half Buffers (slides, video)
- Encoding Data (slides, video)
- Andrew Lines. "Pipelined asynchronous circuits." California Institute of Technology, 1998.
- Multiple Requests (slides, video)
- Early Out and Stack Length (slides, video)
- Conditional Inputs and Outputs (slides, video)
- Internal Memory (slides, video)
- Protected Forward Drivers (slides, video)
- ACT Language (slides, video)
- Alain Martin. "Synthesis of asynchronous VLSI circuits." California Institute of Technology, 1991.
- Rajit Manohar. "An analysis of reshuffled handshaking expansions." Proceedings Seventh International Symposium on Asynchronous Circuits and Systems (ASYNC), IEEE, 2001.
- Martin, Alain J. "The design of an asynchronous microprocessor." (1989).
- Manohar, Rajit, and Alain J. Martin. "Slack elasticity in concurrent computing." International Conference on Mathematics of Program Construction. Berlin, Heidelberg: Springer Berlin Heidelberg, 1998.
- Manohar, Rajit, Tak-Kwan Lee, and Alain J. Martin. "Projection: A synthesis technique for concurrent systems." Proceedings. Fifth International Symposium on Advanced Research in Asynchronous Circuits and Systems. IEEE, 1999.
- Handshake Expansion and Reshuffling (slides, video)
- Projection and Process Decomposition (slides, video)
- Simulation and State Elaboration (slides, video)
- State Conflicts and State Variable Insertion (slides, video)
- Guard Strengthening (slides, video)
- Bubble Reshuffling (slides, video)
- Jackson, Sandra, and Rajit Manohar. "Gradual synchronization." International Symposium on Asynchronous Circuits and Systems (ASYNC). IEEE, 2016.
- Bingham, Ned, and Rajit Manohar. "QDI constant-time counters." Transactions on Very Large Scale Integration Systems, volume 27 issue 1 pages 83-91. IEEE, 2018.
- Bingham, Ned, and Rajit Manohar. "A Systematic Approach for Arbitration Expressions." Transactions on Circuits and Systems I: Regular Papers, volume 67 issue 12 pages 4960-4969. IEEE, 2020.
- Exchange Channels (slides, video)
- Design Strategies (slides, video)
- Implementation Strategies (slides, video)
- Synchronization and Non-Deterministic Behavior (slides, video)
- Arbitration Expressions (slides, video)
- Asynchronous to Synchronous Interfacing (slides, video)