Fixed command line arguments to take priority over config file. Any option can be specified in config file now.

This commit is contained in:
Matt Guthaus
2018-01-21 11:21:09 -08:00
parent c80a55c13d
commit 10ced33127
6 changed files with 23 additions and 68 deletions
+11 -7
View File
@@ -218,14 +218,18 @@ also includes parameters for the output path, base output file name,
and technology of an SRAM.
The configuration file can be used to over-ride any option in the
options.py file. Many of these are controlled by the command-line,
but the configuration file takes priority and allows repeatable
generation of memories.
options.py file. Many of these can also be controlled by the command-line
which over-ride the configuration file.
Lastly, the configuration file can over-ride any
of the different circuit implementations for each module. For example, you
can replace the default address decoder or bitcell with a new one by
specifying a new python module that implements a new one.
The one exception is the technology name. The technology name of a
config file will over-ride a command-line option. The unit tests use
the command line to read a configuration file, so it is a chicken and
egg situation.
Lastly, the configuration file can over-ride any of the different
circuit implementations for each module. For example, you can replace
the default address decoder or bitcell with a new one by specifying a
new python module that implements a new one.
An entire example configuration file looks like:
\begin{verbatim}
-47
View File
@@ -1,47 +0,0 @@
\BOOKMARK [1][-]{section.1}{License}{}% 1
\BOOKMARK [1][-]{section.2}{Introduction}{}% 2
\BOOKMARK [2][-]{subsection.2.1}{Requirements}{section.2}% 3
\BOOKMARK [2][-]{subsection.2.2}{Environment Variables}{section.2}% 4
\BOOKMARK [2][-]{subsection.2.3}{Design Flow}{section.2}% 5
\BOOKMARK [2][-]{subsection.2.4}{Usage}{section.2}% 6
\BOOKMARK [1][-]{section.3}{Overview of the SRAM Structure}{}% 7
\BOOKMARK [2][-]{subsection.3.1}{Inputs/Outputs}{section.3}% 8
\BOOKMARK [2][-]{subsection.3.2}{Top-Level SRAM Module}{section.3}% 9
\BOOKMARK [1][-]{section.4}{Modules}{}% 10
\BOOKMARK [2][-]{subsection.4.1}{The Bitcell and Bitcell Array}{section.4}% 11
\BOOKMARK [2][-]{subsection.4.2}{Precharge Circuitry}{section.4}% 12
\BOOKMARK [2][-]{subsection.4.3}{Address Decoders}{section.4}% 13
\BOOKMARK [2][-]{subsection.4.4}{Wordline Driver}{section.4}% 14
\BOOKMARK [2][-]{subsection.4.5}{Column Mux}{section.4}% 15
\BOOKMARK [2][-]{subsection.4.6}{Sense Amplifier}{section.4}% 16
\BOOKMARK [2][-]{subsection.4.7}{Write Driver}{section.4}% 17
\BOOKMARK [2][-]{subsection.4.8}{Flip-Flop Array}{section.4}% 18
\BOOKMARK [2][-]{subsection.4.9}{Control Logic}{section.4}% 19
\BOOKMARK [1][-]{section.5}{Bank and SRAM}{}% 20
\BOOKMARK [1][-]{section.6}{Software Implementation}{}% 21
\BOOKMARK [2][-]{subsection.6.1}{Design Hierarchy}{section.6}% 22
\BOOKMARK [2][-]{subsection.6.2}{Creating a New Design Module}{section.6}% 23
\BOOKMARK [2][-]{subsection.6.3}{GDSII Files and GdsMill\)}{section.6}% 24
\BOOKMARK [2][-]{subsection.6.4}{Technology Directory}{section.6}% 25
\BOOKMARK [2][-]{subsection.6.5}{DRC/LVS Interface}{section.6}% 26
\BOOKMARK [1][-]{section.7}{Custom Layout Design Functions in Software}{}% 27
\BOOKMARK [2][-]{subsection.7.1}{Parameterized Transistor}{section.7}% 28
\BOOKMARK [2][-]{subsection.7.2}{Parameterized Inverter}{section.7}% 29
\BOOKMARK [2][-]{subsection.7.3}{Parameterized NAND2}{section.7}% 30
\BOOKMARK [2][-]{subsection.7.4}{Parameterized NAND3}{section.7}% 31
\BOOKMARK [2][-]{subsection.7.5}{Parameterized NOR2}{section.7}% 32
\BOOKMARK [2][-]{subsection.7.6}{Path and Wire}{section.7}% 33
\BOOKMARK [1][-]{section.8}{Porting to a new Technologies}{}% 34
\BOOKMARK [2][-]{subsection.8.1}{The GDS and Spice Libraries}{section.8}% 35
\BOOKMARK [2][-]{subsection.8.2}{Technology Directory}{section.8}% 36
\BOOKMARK [1][-]{section.9}{Timing and Control Logic}{}% 37
\BOOKMARK [2][-]{subsection.9.1}{Signals}{section.9}% 38
\BOOKMARK [2][-]{subsection.9.2}{Timing Considerations}{section.9}% 39
\BOOKMARK [2][-]{subsection.9.3}{SRAM Operation}{section.9}% 40
\BOOKMARK [2][-]{subsection.9.4}{Zero Bus Turnaround \(ZBT\)}{section.9}% 41
\BOOKMARK [2][-]{subsection.9.5}{Control Logic}{section.9}% 42
\BOOKMARK [2][-]{subsection.9.6}{Replica Bitline Delay}{section.9}% 43
\BOOKMARK [2][-]{subsection.9.7}{Timing and Power Characterizer}{section.9}% 44
\BOOKMARK [1][-]{section.10}{Unit Tests}{}% 45
\BOOKMARK [2][-]{subsection.10.1}{Usage}{section.10}% 46
\BOOKMARK [1][-]{section.11}{Debug Framework}{}% 47