basic rom usage info

This commit is contained in:
Sage Walker 2023-04-19 23:32:06 -07:00
parent 7ed7ff4e9a
commit a5a0cffe65
4 changed files with 99 additions and 3 deletions

View File

@ -22,4 +22,14 @@ This page of the documentation explains the architecture of OpenRAM.
* Write Driver(s)
* Control Logic with Replica Bitline
![OpenRAM SRAM Architecture](../assets/images/architecture/sram_architecture.png)
![OpenRAM SRAM Architecture](../assets/images/architecture/sram_architecture.png)
## ROM Architecture
* Bit-cell Array
* 1T NAND Bitcell
* Row Address Decoder
* Wordline Driver(s)
* Column Multiplexer
* Column Pre-Decoder
* Bitline Precharge(s)
* Control Logic

View File

@ -0,0 +1,86 @@
### [Go Back](./index.md#table-of-contents)
# Basic Usage
This page of the documentation explains the basic usage of OpenRAM's ROM compiler (OpenROM).
## Table of Contents
1. [Environment Variable Setup](#environment-variable-setup-assuming-bash)
1. [Command Line Usage](#command-line-usage)
1. [Script Usage](#script-usage)
1. [Configuration Files](#configuration-files)
1. [Common Configuration File Options](#common-configuration-file-options)
1. [Output Files](#output-files)
## Environment Variable Setup (assuming bash)
Environment configuration is the same as described in [basic SRAM usage](./basic_usage#environment-variable-setup-assuming-bash)
## Accepted Data formats
OpenROM currently supports input data formatted as a binary file or a text file
of hexadecimal-encoded data. For hexadecimal data, the input file must contain
a single line of hexadecimal text. The data in any input file will be written
the ROM in the order it appears in the input file, ie. the first bit in the input
will be written to address 0.
## Command Line Usage
Once you have defined the environment, you can run OpenROM from the command line
using a single configuration file written in Python. You can then run OpenROM by
executing:
```
python3 $OPENRAM_HOME/../rom_compiler.py myconfig
```
You can see all of the options for the configuration file in
$OPENRAM\_HOME/options.py
To run macros, it is suggested to use, for example:
```
cd OpenRAM/macros/rom_configs
make sky130_rom_1kbyte
```
* Common arguments:
* `-h` print all arguments
* `-t` specify technology (currently only sky130 is supported)
* `-v` increase verbosity of output
* `-n` don't run DRC/LVS
* `-d` don't purge /tmp directory contents
## Configuration Files
* Shares some configuration options with SRAM compiler.
* Complete configuration options are in `$OPENRAM_HOME/options.py`
* Some options can be specified on the command line as well
* Not recommended for replicating results
* Example configuration file:
```python
# Data word size
word_size = 2
# Enable LVS/DRC checking
check_lvsdrc = True
# Path to input data. Either binary file or hex.
rom_data = "data_1kbyte.bin"
# Format type of input data
data_type = "bin"
# Technology to use in $OPENRAM_TECH, currently only sky130 is supported
tech_name = "sky130"
# Output directory for the results
output_path = "temp"
# Output file base name
output_name = "rom_1kbyte"
# Only nominal process corner generation is currently supported
nominal_corner_only = True
# Add a supply ring to the generated layout
route_supplies = "ring"
```

View File

@ -1,7 +1,7 @@
### [Go Back](./index.md#table-of-contents)
# Basic Setup
This page shows the basic setup for using OpenRAM.
This page shows the basic setup for using OpenRAM to generate an SRAM.

View File

@ -1,7 +1,7 @@
### [Go Back](./index.md#table-of-contents)
# Basic Usage
This page of the documentation explains the basic usage of OpenRAM.
This page of the documentation explains the basic usage of OpenRAM's SRAM compiler.