@@ -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}
75517644Load 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
75567649Load 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
75587653Command file parser supports following commands:
75597654 +define - defines macro
0 commit comments