mirror of https://github.com/VLSIDA/OpenRAM.git
Cleanup documentation
This commit is contained in:
parent
0fe8b3be17
commit
c8b5b81bd8
|
|
@ -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.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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.
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue