From c8b5b81bd87cdfca1bf44d5789a6a2d17ca6a689 Mon Sep 17 00:00:00 2001 From: Eren Dogan Date: Thu, 16 Mar 2023 14:10:22 -0700 Subject: [PATCH] Cleanup documentation --- docs/source/basic_setup.md | 79 +++++++++++++++++++---------------- docs/source/basic_usage.md | 11 ++--- docs/source/index.md | 16 ++++--- docs/source/python_library.md | 8 ++-- 4 files changed, 63 insertions(+), 51 deletions(-) diff --git a/docs/source/basic_setup.md b/docs/source/basic_setup.md index f76d6cd5..9b0d0517 100644 --- a/docs/source/basic_setup.md +++ b/docs/source/basic_setup.md @@ -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. diff --git a/docs/source/basic_usage.md b/docs/source/basic_usage.md index bef7c85b..7550137f 100644 --- a/docs/source/basic_usage.md +++ b/docs/source/basic_usage.md @@ -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. diff --git a/docs/source/index.md b/docs/source/index.md index bb2ede04..2bb59fbe 100644 --- a/docs/source/index.md +++ b/docs/source/index.md @@ -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. diff --git a/docs/source/python_library.md b/docs/source/python_library.md index 5cba22e8..a4b92c5c 100644 --- a/docs/source/python_library.md +++ b/docs/source/python_library.md @@ -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.