Skip to content

Commit a7090e9

Browse files
committed
Update documentation
1 parent 9581b9a commit a7090e9

File tree

1 file changed

+96
-1
lines changed

1 file changed

+96
-1
lines changed

manual/command-reference-manual.tex

Lines changed: 96 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2222,6 +2222,89 @@ \section{fsm\_recode -- recoding finite state machines}
22222222
.map <old_bitpattern> <new_bitpattern>
22232223
\end{lstlisting}
22242224

2225+
\section{glift -- create GLIFT models and optimization problems}
2226+
\label{cmd:glift}
2227+
\begin{lstlisting}[numbers=left,frame=single]
2228+
glift <command> [options] [selection]
2229+
2230+
Augments the current or specified module with gate-level information flow tracking
2231+
(GLIFT) logic using the "constructive mapping" approach. Also can set up QBF-SAT
2232+
optimization problems in order to optimize GLIFT models or trade off precision and
2233+
complexity.
2234+
2235+
2236+
Commands:
2237+
2238+
-create-precise-model
2239+
Replaces the current or specified module with one that has corresponding "taint"
2240+
inputs, outputs, and internal nets along with precise taint tracking logic.
2241+
For example, precise taint tracking logic for an AND gate is:
2242+
2243+
y_t = a & b_t | b & a_t | a_t & b_t
2244+
2245+
2246+
-create-imprecise-model
2247+
Replaces the current or specified module with one that has corresponding "taint"
2248+
inputs, outputs, and internal nets along with imprecise "All OR" taint tracking
2249+
logic:
2250+
2251+
y_t = a_t | b_t
2252+
2253+
2254+
-create-instrumented-model
2255+
Replaces the current or specified module with one that has corresponding "taint"
2256+
inputs, outputs, and internal nets along with 4 varying-precision versions of taint
2257+
tracking logic. Which version of taint tracking logic is used for a given gate is
2258+
determined by a MUX selected by an $anyconst cell. By default, unless the
2259+
`-no-cost-model` option is provided, an additional wire named `__glift_weight` with
2260+
the `keep` and `minimize` attributes is added to the module along with pmuxes and
2261+
adders to calculate a rough estimate of the number of logic gates in the GLIFT model
2262+
given an assignment for the $anyconst cells. The four versions of taint tracking logic
2263+
for an AND gate are:
2264+
y_t = a & b_t | b & a_t | a_t & b_t (like `-create-precise-model`)
2265+
y_t = a_t | a & b_t
2266+
y_t = b_t | b & a_t
2267+
y_t = a_t | b_t (like `-create-imprecise-model`)
2268+
2269+
2270+
Options:
2271+
2272+
-taint-constants
2273+
Constant values in the design are labeled as tainted.
2274+
(default: label constants as un-tainted)
2275+
2276+
-keep-outputs
2277+
Do not remove module outputs. Taint tracking outputs will appear in the module ports
2278+
alongside the orignal outputs.
2279+
(default: original module outputs are removed)
2280+
2281+
-simple-cost-model
2282+
Do not model logic area. Instead model the number of non-zero assignments to $anyconsts.
2283+
Taint tracking logic versions vary in their size, but all reduced-precision versions are
2284+
significantly smaller than the fully-precise version. A non-zero $anyconst assignment means
2285+
that reduced-precision taint tracking logic was chosen for some gate.
2286+
Only applicable in combination with `-create-instrumented-model`.
2287+
(default: use a complex model and give that wire the "keep" and "minimize" attributes)
2288+
2289+
-no-cost-model
2290+
Do not model taint tracking logic area and do not create a `__glift_weight` wire.
2291+
Only applicable in combination with `-create-instrumented-model`.
2292+
(default: model area and give that wire the "keep" and "minimize" attributes)
2293+
2294+
-instrument-more
2295+
Allow choice from more versions of (even simpler) taint tracking logic. A total
2296+
of 8 versions of taint tracking logic will be added per gate, including the 4
2297+
versions from `-create-instrumented-model` and these additional versions:
2298+
2299+
y_t = a_t
2300+
y_t = b_t
2301+
y_t = 1
2302+
y_t = 0
2303+
2304+
Only applicable in combination with `-create-instrumented-model`.
2305+
(default: do not add more versions of taint tracking logic.
2306+
\end{lstlisting}
2307+
22252308
\section{greenpak4\_dffinv -- merge greenpak4 inverters and DFF/latches}
22262309
\label{cmd:greenpak4_dffinv}
22272310
\begin{lstlisting}[numbers=left,frame=single]
@@ -4834,6 +4917,13 @@ \section{sim -- simulate the circuit}
48344917
-fst <filename>
48354918
write the simulation results to the given FST file
48364919

4920+
-aiw <filename>
4921+
write the simulation results to an AIGER witness file
4922+
(requires a *.aim file via -map)
4923+
4924+
-x
4925+
ignore constant x outputs in simulation file.
4926+
48374927
-clock <portname>
48384928
name of top-level clock input
48394929

@@ -4867,6 +4957,9 @@ \section{sim -- simulate the circuit}
48674957
-r
48684958
read simulation results file (file formats supported: FST)
48694959

4960+
-map <filename>
4961+
read file with port and latch symbols, needed for AIGER witness input
4962+
48704963
-scope
48714964
scope of simulation top model
48724965

@@ -7551,9 +7644,11 @@ \section{verific -- load Verilog and VHDL designs using Verific}
75517644
Load the specified VHDL files into Verific.
75527645

75537646

7554-
verific {-f|-F} <command-file>
7647+
verific {-f|-F} [-vlog95|-vlog2k|-sv2005|-sv2009|-sv2012|-sv|-formal] <command-file>
75557648

75567649
Load and execute the specified command file.
7650+
Override verilog parsing mode can be set.
7651+
The macros YOSYS, SYNTHESIS/FORMAL, and VERIFIC are defined implicitly.
75577652

75587653
Command file parser supports following commands:
75597654
+define - defines macro

0 commit comments

Comments
 (0)