Strip trailing whitespace in README file.
Signed-off-by: Tim 'mithro' Ansell <tansell@google.com>
diff --git a/README b/README
index 9514ed0..299277c 100644
--- a/README
+++ b/README
@@ -46,7 +46,7 @@
Each foundry process is a subdirectory of the open_pdks top level and
has its own Makefile. The typical install process is to cd to the
foundry top level and run "make" (see below for details).
-
+
The general file structure created by open_pdks is as follows:
<foundry_root>/
@@ -70,7 +70,7 @@
...
<name_of_file_format_x>
<vendor_files>
-
+
Note that this format is very general and does not constrain the
EDA tools supported or file formats supported, so long as there
are scripts in the system to provide that support. It is intended
@@ -86,7 +86,7 @@
klayout klayout
qflow qflow
openlane openlane
-
+
Current IP library file formats supported in this version of open_pdks*:
Format Directory name
--------------------------
@@ -215,43 +215,43 @@
preproc.py Usage:
preproc.py input_file [output_file] [-D<variable> ...]
-
+
Where <variable> may be a keyword or a key=value pair
-
+
Syntax: Basically like cpp. However, this preprocessor handles
only a limited set of keywords, so it does not otherwise mangle
the file in the belief that it must be C code. Handling of boolean
relations is important, so these are thoroughly defined (see below)
-
+
#if defined(<variable>) [...]
#ifdef <variable>
#ifndef <variable>
#elseif <variable>
#else
#endif
-
+
#define <variable> [...]
#undef <variable>
-
+
#include <filename>
-
+
<variable> may be
<keyword>
<keyword>=<value>
-
+
<keyword> without '=' is effectively the same as <keyword>=1
Lack of a keyword is equivalent to <keyword>=0, in a conditional.
-
+
Boolean operators (in order of precedence):
! NOT
&& AND
|| OR
-
+
Comments:
Most comments (C-like or Tcl-like) are output as-is. A
line beginning with "###" is treated as a preprocessor
comment and is not copied to the output.
-
+
Examples;
#if defined(X) || defined(Y)
#else
@@ -278,7 +278,7 @@
missing and need to be generated.
Global options:
- -link_from <type>
+ -link_from <type>
Make symbolic links to vendor files from target
Types are: "none", "source", or a PDK name.
Default "none" (copy all files from source)
@@ -321,7 +321,7 @@
Each IP library install option has the syntax:
-<file_format_name> <path> [<option_arguments>]
-
+
The <path> is a directory path that is relative to the path prefix
given by the -source option. The path may be wildcarded with the
escape string "%l", which is replaced by the name of the library,
@@ -347,9 +347,9 @@
being passed to the install script.)
Library option:
-
+
-library <type> <name> [<target>]
-
+
<type> may be one of the following:
digital Digital standard cells
@@ -370,9 +370,9 @@
formats (gds, cdl, lef, etc.) happen to all work with the same wildcards.
But it is generally most common to declare only one library name per
call to foundry_install.py.
-
+
Common foundry_install.py options when used with "-library":
-
+
-techlef <path> [option_arguments] Technology LEF file
-doc <path> [option_arguments] library documentation
-lef <path> [option_arguments] LEF file
@@ -400,17 +400,17 @@
from <number> levels above the files indicated by <path>.
For example, if liberty files are kept in multiple
directories according to voltage level, then
-
+
-liberty x/y/z/PVT_*/*.lib
-
+
would install all .lib files directly into
libs.ref/<libname>/liberty/*.lib while
-
+
-liberty x/y/z/PVT_*/*.lib up=1
-
+
would install all .lib files into
libs.ref/liberty/<libname>/PVT_*/*.lib.
-
+
nospec
Remove timing specification before installing (used with
verilog files only; could be extended to liberty files).
@@ -527,7 +527,7 @@
master file that is parsed by preproc.py; therefore when specifying
"options", use #undef before specifying each option name so that the
option name itself is ignored by the pre-processor.
-
+
Goals of the open_pdks project: