mirror of https://github.com/VLSIDA/OpenRAM.git
basic rom usage info
This commit is contained in:
parent
7ed7ff4e9a
commit
a5a0cffe65
|
|
@ -23,3 +23,13 @@ This page of the documentation explains the architecture of OpenRAM.
|
||||||
* Control Logic with Replica Bitline
|
* Control Logic with Replica Bitline
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
## ROM Architecture
|
||||||
|
* Bit-cell Array
|
||||||
|
* 1T NAND Bitcell
|
||||||
|
* Row Address Decoder
|
||||||
|
* Wordline Driver(s)
|
||||||
|
* Column Multiplexer
|
||||||
|
* Column Pre-Decoder
|
||||||
|
* Bitline Precharge(s)
|
||||||
|
* Control Logic
|
||||||
|
|
@ -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"
|
||||||
|
```
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
### [Go Back](./index.md#table-of-contents)
|
### [Go Back](./index.md#table-of-contents)
|
||||||
|
|
||||||
# Basic Setup
|
# Basic Setup
|
||||||
This page shows the basic setup for using OpenRAM.
|
This page shows the basic setup for using OpenRAM to generate an SRAM.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
### [Go Back](./index.md#table-of-contents)
|
### [Go Back](./index.md#table-of-contents)
|
||||||
|
|
||||||
# Basic Usage
|
# 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.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue