Cleanup documentation

This commit is contained in:
Eren Dogan 2023-03-16 14:10:22 -07:00
parent 0fe8b3be17
commit c8b5b81bd8
4 changed files with 63 additions and 51 deletions

View File

@ -25,46 +25,49 @@ In general, the OpenRAM compiler has very few dependencies:
## Anaconda ## Anaconda
We use Anaconda package manager to install the tools used by OpenRAM. This way, you don't have to We use Anaconda package manager to install the tools used by OpenRAM. This way,
worry about updating/installing these tools. OpenRAM installs Anaconda silently in the background you don't have to worry about updating/installing these tools. OpenRAM installs
(without affecting any existing anaconda setup you have). Anaconda silently in the background (without affecting any existing Anaconda
setup you have).
OpenRAM uses Anaconda by default, but you can turn this feature off by setting `use_conda = False` OpenRAM uses Anaconda by default, but you can turn this feature off by setting
in your config file. Then, OpenRAM will use the tools you have installed on your system. `use_conda = False` in your config file. Then, OpenRAM will use the tools you
have installed on your system.
If you want to install Anaconda without running OpenRAM (for example to run unit tests, which do > **Note**: If you want to install Anaconda without running OpenRAM (for example
not install Anaconda), you can run: > to run unit tests, which do not install Anaconda), you can run:
``` > ```
cd OpenRAM > ./install_conda.sh
./install_conda.sh > ```
```
## Docker (deprecated, use Anaconda instead) ## Docker (deprecated, use Anaconda instead)
We have a [docker setup](../../docker) to run OpenRAM. To use this, you should run: We have a [docker setup](../../docker) to run OpenRAM. To use this, you should
run:
``` ```
cd OpenRAM/docker cd OpenRAM/docker
make build make build
``` ```
This must be run once and will take a while to build all the tools. If you have the This must be run once and will take a while to build all the tools. If you have
OpenRAM library installed, you can also run the docker setup from the package the OpenRAM library installed, you can also run the docker setup from the
installation directory. package installation directory.
## Environment ## Environment
If you haven't installed the OpenRAM library or you want to use a different OpenRAM installation, If you haven't installed the OpenRAM library or you want to use a different
you can set two environment variables: OpenRAM installation, you can set two environment variables:
+ OPENRAM\_HOME should point to the compiler source directory. + `OPENRAM_HOME` should point to the compiler source directory.
+ OPENRAM\_TECH should point to one or more root technology directories (colon separated). + `OPENRAM_TECH` should point to one or more root technology directories (colon
separated).
If you have the library installed and OPENRAM\_HOME set, the library will use the installation on If you have the library installed and `OPENRAM_HOME` set, the library will use
the OPENRAM\_HOME path. the installation on the `OPENRAM_HOME` path.
If you don't have the library, you should also add OPENRAM\_HOME to your PYTHONPATH. This is not If you don't have the library, you should also add `OPENRAM_HOME` to your
needed if you have the library. `PYTHONPATH`. This is not needed if you have the library.
You can add these environment variables to your `.bashrc`: You can add these environment variables to your `.bashrc`:
``` ```
@ -73,44 +76,46 @@ export OPENRAM_TECH="$HOME/OpenRAM/technology"
export PYTHONPATH=$OPENRAM_HOME export PYTHONPATH=$OPENRAM_HOME
``` ```
Note that if you want symbols to resolve in your editor, you may also want to add the specific technology Note that if you want symbols to resolve in your editor, you may also want to
directory that you use and any custom technology modules as well. For example: add the specific technology directory that you use and any custom technology
modules as well. For example:
``` ```
export PYTHONPATH="$OPENRAM_HOME:$OPENRAM_TECH/sky130:$OPENRAM_TECH/sky130/custom" export PYTHONPATH="$OPENRAM_HOME:$OPENRAM_TECH/sky130:$OPENRAM_TECH/sky130/custom"
``` ```
We include the tech files necessary for [SCMOS] SCN4M\_SUBM, We include the tech files necessary for [SCMOS] SCN4M\_SUBM, [FreePDK45]. The
[FreePDK45]. The [SCMOS] spice models, however, are [SCMOS] spice models, however, are generic and should be replaced with foundry
generic and should be replaced with foundry models. You may get the models. You may get the entire [FreePDK45 PDK here][FreePDK45].
entire [FreePDK45 PDK here][FreePDK45].
## Sky130 Setup ## Sky130 Setup
To install [Sky130], you must have open\_pdks installed in $PDK\_ROOT. We highly recommend that you To install [Sky130], you must have open\_pdks installed in $PDK\_ROOT. We highly
use the version tagged in the Makefile as others have not been verified. recommend that you use the version tagged in the Makefile as others have not
To install this automatically, you can run: been verified. To install this automatically, you can run:
``` ```
cd $HOME/OpenRAM cd $HOME/OpenRAM
make pdk make pdk
``` ```
> **Note**: If you don't have Magic installed, you need to install and activate the conda environment before running this command. > **Note**: If you don't have Magic installed, you need to install and activate
> You can install conda with: > the conda environment before running this command. You can run:
> >
> ``` > ```
> ./install_conda.sh
> source miniconda/bin/activate > source miniconda/bin/activate
> ``` > ```
Then you must also install the [Sky130] SRAM build space with the appropriate cell views into the OpenRAM technology directory Then you must also install the [Sky130] SRAM build space with the appropriate
by running: cell views into the OpenRAM technology directory by running:
``` ```
cd $HOME/OpenRAM cd $HOME/OpenRAM
make install make install
``` ```
You can also run these from the package installation directory if you have the OpenRAM library. You can also run these from the package installation directory if you have the
OpenRAM library.

View File

@ -17,11 +17,11 @@ This page of the documentation explains the basic usage of OpenRAM.
## Environment Variable Setup (assuming bash) ## Environment Variable Setup (assuming bash)
> **Note**: This is optional if you have the OpenRAM library. > **Note**: This is optional if you have the OpenRAM library. See
> See [Python library](./python_library.md#go-back) for details. > [Python library](./python_library.md#go-back) for details.
* OPENRAM\_HOME defines where the compiler directory is * `OPENRAM_HOME` defines where the compiler directory is
* `export OPENRAM_HOME="$HOME/openram/compiler"` * `export OPENRAM_HOME="$HOME/openram/compiler"`
* OPENRAM\_TECH defines list of paths where the technologies exist * `OPENRAM_TECH` defines list of paths where the technologies exist
* `export OPENRAM_TECH="$HOME/openram/technology"` * `export OPENRAM_TECH="$HOME/openram/technology"`
* Colon separated list so you can have private technology directories * Colon separated list so you can have private technology directories
* Must also have any PDK related variables set up * Must also have any PDK related variables set up
@ -131,7 +131,8 @@ OpenRAM is also available as a Python library. See
## Output Files ## Output Files
The output files are placed in the `output_dir` defined in the configuration file. The output files are placed in the `output_dir` defined in the configuration
file.
The base name is specified by `output_name` and suffixes are added. The base name is specified by `output_name` and suffixes are added.

View File

@ -79,15 +79,21 @@ Commercial tools (optional):
## Technology and Tool Portability ## Technology and Tool Portability
* OpenRAM is technology independent by using a technology directory that includes: * OpenRAM is technology independent by using a technology directory that
includes:
* Technology's specific information * Technology's specific information
* Technology's rules such as DRC rules and the GDS layer map * 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. * Custom designed library cells (6T, sense amp, DFF) to improve the SRAM
* For technologies that have specific design requirements, such as specialized well contacts, the user can include helper functions in the technology directory. 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 * Verification wrapper scripts
* Uses a wrapper interface with DRC and LVS tools that allow flexibility * 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 performed at all levels of the design hierarchy to
* DRC and LVS can be disabled completely for improved run-time or if licenses are not available. enhance bug tracking.
* DRC and LVS can be disabled completely for improved run-time or if
licenses are not available.

View File

@ -15,7 +15,7 @@ This page explains the Python library of OpenRAM.
## Installation ## Installation
OpenRAM is available as a Python library. There are a few ways to install it: OpenRAM is available as a Python library. There are a few ways to install it:
+ Install the latest _stable_ version with pip: + Install the latest _stable_ version:
``` ```
pip3 install openram pip3 install openram
``` ```
@ -35,14 +35,14 @@ make library
## Environment Variables ## Environment Variables
OpenRAM library doesn't need any envinronment variable by default. However, if OpenRAM library doesn't need any environment variables by default. However, if
you have set the environment variables explained on you have set the environment variables explained on
[basic usage](.basic_usage.md#go-back), the library will use the OpenRAM source [basic usage](.basic_usage.md#go-back), the library will use the OpenRAM source
code located at `OPENRAM_HOME`. code located at `OPENRAM_HOME`.
If you want the convenience of being able to call OpenRAM from any Python script If you want the convenience of being able to run OpenRAM from any Python script
and have a custom OpenRAM setup, you can set these environment variables to and have a custom OpenRAM setup, you can set these environment variables to
point to that OpenRAM installation. point to that OpenRAM installation directory.
If you don't want to use this feature, you can simply unset these environment If you don't want to use this feature, you can simply unset these environment
variables. variables.