These pages provide the documentation of OpenRAM. You can use the links below to navigate through the documentation.
- OpenRAM Dependencies
- Supported Technologies
- Online Playground
- Basic Setup
- Basic SRAM Usage
- Basic ROM Usage
- Python Library
- Bitcells
- Architecture
- Implementation
- Technology and Tool Portability
- Tutorials
- Debugging and Unit Testing
- Technology Setup
- Library Cells
- Base Data Structures
- Hierarchical Design Modules
- Control Logic and Timing
- Routing
- Characterization
- Results
- FAQ
- Contributors/Collaborators
In general, the OpenRAM compiler has very few dependencies:
- Git
- Make
- Python 3.5 or higher
- Various Python packages (pip install -r requirements.txt)
- Anaconda
Commercial tools (optional):
- Spice Simulator
- Hspice I-2013.12-1 (or later)
- CustomSim 2017 (or later)
- DRC
- Calibre 2017.3_29.23
- LVS
- Calibre 2017.3_29.23
- NCSU FreePDK 45nm
- Non-fabricable but contains DSM rules
- Calibre or klayout for DRC/LVS
- MOSIS 0.35um (SCN4M_SUBM)
- Fabricable technology
- Magic/Netgen or Calibre for DRC/LVS
- Skywater 130nm (sky130)
- Fabricable technology
- Magic/Netgen or klayout
- Front-end mode
- Generates SPICE, layout views, timing models
- Netlist-only mode can skip the physical design too
- Doesn't perform DRC/LVS
- Estimates power/delay analytically
- Generates SPICE, layout views, timing models
- Back-end mode
- Generates SPICE, layout views, timing models
- Performs DRC/LVS
- Can perform at each level of hierarchy or at the end
- Simulates power/delay
- Can be back-annotated or not
- OpenRAM is technology independent by using a technology directory that
includes:
- Technology's specific information
- Technology's rules such as DRC rules and the GDS layer map
- Custom designed library cells (6T, sense amp, DFF) to improve the SRAM density.
- For technologies that have specific design requirements, such as specialized well contacts, the user can include helper functions in the technology directory.
- Verification wrapper scripts
- Uses a wrapper interface with DRC and LVS tools that allow flexibility
- DRC and LVS can be performed at all levels of the design hierarchy to enhance bug tracking.
- DRC and LVS can be disabled completely for improved run-time or if licenses are not available.
- Prof. Matthew Guthaus (UCSC)
- Prof. James Stine & Dr. Samira Ataei (Oklahoma State University)
- UCSC students:
- Bin Wu
- Hunter Nichols
- Michael Grimes
- Jennifer Sowash
- Jesse Cirimelli-Low https://www.youtube.com/watch?v=rd5j8mG24H4&t=0s
- Many other past students:
- Jeff Butera
- Tom Golubev
- Marcelo Sero
- Seokjoong Kim
- Sage Walker