https://github.com/broccolimicro/course-self-timed-circuits
Introductory course to Self Timed Circuits
Science Score: 13.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
○.zenodo.json file
-
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (10.6%) to scientific vocabulary
Keywords
Repository
Introductory course to Self Timed Circuits
Basic Info
- Host: GitHub
- Owner: broccolimicro
- License: mit
- Language: Makefile
- Default Branch: main
- Homepage: https://broccolimicro.io
- Size: 77.1 KB
Statistics
- Stars: 7
- Watchers: 3
- Forks: 1
- Open Issues: 1
- Releases: 1
Topics
Metadata Files
README.md
Introduction to Self-Timed Circuits (Summer, 2024)
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.
Set up the toolset
- On Ubuntu, install the
docker.iopackage from apt:sudo apt install docker.io, thedocker-cepackage 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://github.com/broccolimicro/bcli.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
Digital and analog simulation
- 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.rcexit- run the analog simulation:
cd e1 prsim env.prssource prsim.rcexit
Fundamentals
- 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)
Templated Synthesis
- 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)
Formal Synthesis
- 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)
Advanced Topics
- 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)
Owner
- Name: broccolimicro
- Login: broccolimicro
- Kind: organization
- Repositories: 1
- Profile: https://github.com/broccolimicro
GitHub Events
Total
- Watch event: 2
- Push event: 1
Last Year
- Watch event: 2
- Push event: 1