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

View File

@ -79,15 +79,21 @@ Commercial tools (optional):
## 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 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.
* 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.
* 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.

View File

@ -15,7 +15,7 @@ This page explains the Python library of OpenRAM.
## Installation
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
```
@ -35,14 +35,14 @@ make library
## 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
[basic usage](.basic_usage.md#go-back), the library will use the OpenRAM source
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
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
variables.