mirror of https://github.com/YosysHQ/yosys.git
Update documentation
This commit is contained in:
parent
9313549cdd
commit
6d5adb6a65
|
@ -23,27 +23,29 @@ library to a target architecture.
|
||||||
if no -script parameter is given, the following scripts are used:
|
if no -script parameter is given, the following scripts are used:
|
||||||
|
|
||||||
for -liberty/-genlib without -constr:
|
for -liberty/-genlib without -constr:
|
||||||
strash; ifraig; scorr; dc2; dretime; strash; &get -n; &dch -f;
|
strash; &get -n; &fraig -x; &put; scorr; dc2; dretime; strash;
|
||||||
&nf {D}; &put
|
&get -n; &dch -f; &nf {D}; &put
|
||||||
|
|
||||||
for -liberty/-genlib with -constr:
|
for -liberty/-genlib with -constr:
|
||||||
strash; ifraig; scorr; dc2; dretime; strash; &get -n; &dch -f;
|
strash; &get -n; &fraig -x; &put; scorr; dc2; dretime; strash;
|
||||||
&nf {D}; &put; buffer; upsize {D}; dnsize {D}; stime -p
|
&get -n; &dch -f; &nf {D}; &put; buffer; upsize {D};
|
||||||
|
dnsize {D}; stime -p
|
||||||
|
|
||||||
for -lut/-luts (only one LUT size):
|
for -lut/-luts (only one LUT size):
|
||||||
strash; ifraig; scorr; dc2; dretime; strash; dch -f; if; mfs2;
|
strash; &get -n; &fraig -x; &put; scorr; dc2; dretime; strash;
|
||||||
lutpack {S}
|
dch -f; if; mfs2; lutpack {S}
|
||||||
|
|
||||||
for -lut/-luts (different LUT sizes):
|
for -lut/-luts (different LUT sizes):
|
||||||
strash; ifraig; scorr; dc2; dretime; strash; dch -f; if; mfs2
|
strash; &get -n; &fraig -x; &put; scorr; dc2; dretime; strash;
|
||||||
|
dch -f; if; mfs2
|
||||||
|
|
||||||
for -sop:
|
for -sop:
|
||||||
strash; ifraig; scorr; dc2; dretime; strash; dch -f;
|
strash; &get -n; &fraig -x; &put; scorr; dc2; dretime; strash;
|
||||||
cover {I} {P}
|
dch -f; cover {I} {P}
|
||||||
|
|
||||||
otherwise:
|
otherwise:
|
||||||
strash; ifraig; scorr; dc2; dretime; strash; &get -n; &dch -f;
|
strash; &get -n; &fraig -x; &put; scorr; dc2; dretime; strash;
|
||||||
&nf {D}; &put
|
&get -n; &dch -f; &nf {D}; &put
|
||||||
|
|
||||||
-fast
|
-fast
|
||||||
use different default scripts that are slightly faster (at the cost
|
use different default scripts that are slightly faster (at the cost
|
||||||
|
@ -125,7 +127,8 @@ library to a target architecture.
|
||||||
NMUX, AOI3, OAI3, AOI4, OAI4.
|
NMUX, AOI3, OAI3, AOI4, OAI4.
|
||||||
(The NOT gate is always added to this list automatically.)
|
(The NOT gate is always added to this list automatically.)
|
||||||
|
|
||||||
The following aliases can be used to reference common sets of gate types:
|
The following aliases can be used to reference common sets of gate
|
||||||
|
types:
|
||||||
simple: AND OR XOR MUX
|
simple: AND OR XOR MUX
|
||||||
cmos2: NAND NOR
|
cmos2: NAND NOR
|
||||||
cmos3: NAND NOR AOI3 OAI3
|
cmos3: NAND NOR AOI3 OAI3
|
||||||
|
@ -169,8 +172,8 @@ library to a target architecture.
|
||||||
|
|
||||||
-dress
|
-dress
|
||||||
run the 'dress' command after all other ABC commands. This aims to
|
run the 'dress' command after all other ABC commands. This aims to
|
||||||
preserve naming by an equivalence check between the original and post-ABC
|
preserve naming by an equivalence check between the original and
|
||||||
netlists (experimental).
|
post-ABC netlists (experimental).
|
||||||
|
|
||||||
When no target cell library is specified the Yosys standard cell library is
|
When no target cell library is specified the Yosys standard cell library is
|
||||||
loaded into ABC before the ABC script is executed.
|
loaded into ABC before the ABC script is executed.
|
||||||
|
@ -190,8 +193,8 @@ you want to use ABC to convert your design into another format.
|
||||||
\begin{lstlisting}[numbers=left,frame=single]
|
\begin{lstlisting}[numbers=left,frame=single]
|
||||||
abc9 [options] [selection]
|
abc9 [options] [selection]
|
||||||
|
|
||||||
This script pass performs a sequence of commands to facilitate the use of the ABC
|
This script pass performs a sequence of commands to facilitate the use of the
|
||||||
tool [1] for technology mapping of the current design to a target FPGA
|
ABC tool [1] for technology mapping of the current design to a target FPGA
|
||||||
architecture. Only fully-selected modules are supported.
|
architecture. Only fully-selected modules are supported.
|
||||||
|
|
||||||
-run <from_label>:<to_label>
|
-run <from_label>:<to_label>
|
||||||
|
@ -337,8 +340,8 @@ externally if you want to use ABC to convert your design into another format.
|
||||||
|
|
||||||
|
|
||||||
This pass uses the ABC tool [1] for technology mapping of the top module
|
This pass uses the ABC tool [1] for technology mapping of the top module
|
||||||
(according to the (* top *) attribute or if only one module is currently selected)
|
(according to the (* top *) attribute or if only one module is currently
|
||||||
to a target FPGA architecture.
|
selected) to a target FPGA architecture.
|
||||||
|
|
||||||
-exe <command>
|
-exe <command>
|
||||||
use the specified command instead of "<yosys-bindir>/yosys-abc" to execute ABC.
|
use the specified command instead of "<yosys-bindir>/yosys-abc" to execute ABC.
|
||||||
|
@ -413,14 +416,14 @@ mapping, and is expected to be called in conjunction with other operations from
|
||||||
the `abc9' script pass. Only fully-selected modules are supported.
|
the `abc9' script pass. Only fully-selected modules are supported.
|
||||||
|
|
||||||
-check
|
-check
|
||||||
check that the design is valid, e.g. (* abc9_box_id *) values are unique,
|
check that the design is valid, e.g. (* abc9_box_id *) values are
|
||||||
(* abc9_carry *) is only given for one input/output port, etc.
|
unique, (* abc9_carry *) is only given for one input/output port, etc.
|
||||||
|
|
||||||
-prep_hier
|
-prep_hier
|
||||||
derive all used (* abc9_box *) or (* abc9_flop *) (if -dff option)
|
derive all used (* abc9_box *) or (* abc9_flop *) (if -dff option)
|
||||||
whitebox modules. with (* abc9_flop *) modules, only those containing
|
whitebox modules. with (* abc9_flop *) modules, only those containing
|
||||||
$dff/$_DFF_[NP]_ cells with zero initial state -- due to an ABC limitation
|
$dff/$_DFF_[NP]_ cells with zero initial state -- due to an ABC
|
||||||
-- will be derived.
|
limitation -- will be derived.
|
||||||
|
|
||||||
-prep_bypass
|
-prep_bypass
|
||||||
create techmap rules in the '$abc9_map' and '$abc9_unmap' designs for
|
create techmap rules in the '$abc9_map' and '$abc9_unmap' designs for
|
||||||
|
@ -438,33 +441,35 @@ the `abc9' script pass. Only fully-selected modules are supported.
|
||||||
-prep_dff_submod
|
-prep_dff_submod
|
||||||
within (* abc9_flop *) modules, rewrite all edge-sensitive path
|
within (* abc9_flop *) modules, rewrite all edge-sensitive path
|
||||||
declarations and $setup() timing checks ($specify3 and $specrule cells)
|
declarations and $setup() timing checks ($specify3 and $specrule cells)
|
||||||
that share a 'DST' port with the $_DFF_[NP]_.Q port from this 'Q' port to
|
that share a 'DST' port with the $_DFF_[NP]_.Q port from this 'Q' port
|
||||||
the DFF's 'D' port. this is to prepare such specify cells to be moved
|
to the DFF's 'D' port. this is to prepare such specify cells to be moved
|
||||||
into the flop box.
|
into the flop box.
|
||||||
|
|
||||||
-prep_dff_unmap
|
-prep_dff_unmap
|
||||||
populate the '$abc9_unmap' design with techmap rules for mapping *_$abc9_flop
|
populate the '$abc9_unmap' design with techmap rules for mapping
|
||||||
cells back into their derived cell types (where the rules created by
|
*_$abc9_flop cells back into their derived cell types (where the rules
|
||||||
-prep_hier will then map back to the original cell with parameters).
|
created by -prep_hier will then map back to the original cell with
|
||||||
|
parameters).
|
||||||
|
|
||||||
-prep_delays
|
-prep_delays
|
||||||
insert `$__ABC9_DELAY' blackbox cells into the design to account for
|
insert `$__ABC9_DELAY' blackbox cells into the design to account for
|
||||||
certain required times.
|
certain required times.
|
||||||
|
|
||||||
-break_scc
|
-break_scc
|
||||||
for an arbitrarily chosen cell in each unique SCC of each selected module
|
for an arbitrarily chosen cell in each unique SCC of each selected
|
||||||
(tagged with an (* abc9_scc_id = <int> *) attribute) interrupt all wires
|
module (tagged with an (* abc9_scc_id = <int> *) attribute) interrupt
|
||||||
driven by this cell's outputs with a temporary $__ABC9_SCC_BREAKER cell
|
all wires driven by this cell's outputs with a temporary
|
||||||
to break the SCC.
|
$__ABC9_SCC_BREAKER cell to break the SCC.
|
||||||
|
|
||||||
-prep_xaiger
|
-prep_xaiger
|
||||||
prepare the design for XAIGER output. this includes computing the
|
prepare the design for XAIGER output. this includes computing the
|
||||||
topological ordering of ABC9 boxes, as well as preparing the '$abc9_holes'
|
topological ordering of ABC9 boxes, as well as preparing the
|
||||||
design that contains the logic behaviour of ABC9 whiteboxes.
|
'$abc9_holes' design that contains the logic behaviour of ABC9
|
||||||
|
whiteboxes.
|
||||||
|
|
||||||
-dff
|
-dff
|
||||||
consider flop cells (those instantiating modules marked with (* abc9_flop *))
|
consider flop cells (those instantiating modules marked with
|
||||||
during -prep_{delays,xaiger,box}.
|
(* abc9_flop *)) during -prep_{delays,xaiger,box}.
|
||||||
|
|
||||||
-prep_lut <maxlut>
|
-prep_lut <maxlut>
|
||||||
pre-compute the lut library by analysing all modules marked with
|
pre-compute the lut library by analysing all modules marked with
|
||||||
|
@ -482,8 +487,8 @@ the `abc9' script pass. Only fully-selected modules are supported.
|
||||||
|
|
||||||
-reintegrate
|
-reintegrate
|
||||||
for each selected module, re-intergrate the module '<module-name>$abc9'
|
for each selected module, re-intergrate the module '<module-name>$abc9'
|
||||||
by first recovering ABC9 boxes, and then stitching in the remaining primary
|
by first recovering ABC9 boxes, and then stitching in the remaining
|
||||||
inputs and outputs.
|
primary inputs and outputs.
|
||||||
\end{lstlisting}
|
\end{lstlisting}
|
||||||
|
|
||||||
\section{add -- add objects to the design}
|
\section{add -- add objects to the design}
|
||||||
|
@ -686,10 +691,10 @@ This pass transforms $bmux cells to trees of $mux cells.
|
||||||
|
|
||||||
This command minimizes the current design that is known to crash Yosys with the
|
This command minimizes the current design that is known to crash Yosys with the
|
||||||
given script into a smaller testcase. It does this by removing an arbitrary part
|
given script into a smaller testcase. It does this by removing an arbitrary part
|
||||||
of the design and recursively invokes a new Yosys process with this modified design
|
of the design and recursively invokes a new Yosys process with this modified
|
||||||
and the same script, repeating these steps while it can find a smaller design that
|
design and the same script, repeating these steps while it can find a smaller
|
||||||
still causes a crash. Once this command finishes, it replaces the current design
|
design that still causes a crash. Once this command finishes, it replaces the
|
||||||
with the smallest testcase it was able to produce.
|
current design with the smallest testcase it was able to produce.
|
||||||
In order to save the reduced testcase you must write this out to a file with
|
In order to save the reduced testcase you must write this out to a file with
|
||||||
another command after `bugpoint` like `write_rtlil` or `write_verilog`.
|
another command after `bugpoint` like `write_rtlil` or `write_verilog`.
|
||||||
|
|
||||||
|
@ -807,8 +812,8 @@ Options:
|
||||||
chformal [types] [mode] [options] [selection]
|
chformal [types] [mode] [options] [selection]
|
||||||
|
|
||||||
Make changes to the formal constraints of the design. The [types] options
|
Make changes to the formal constraints of the design. The [types] options
|
||||||
the type of constraint to operate on. If none of the following options are given,
|
the type of constraint to operate on. If none of the following options are
|
||||||
the command will operate on all constraint types:
|
given, the command will operate on all constraint types:
|
||||||
|
|
||||||
-assert $assert cells, representing assert(...) constraints
|
-assert $assert cells, representing assert(...) constraints
|
||||||
-assume $assume cells, representing assume(...) constraints
|
-assume $assume cells, representing assume(...) constraints
|
||||||
|
@ -997,12 +1002,12 @@ of JSON. Frontend responds with data or error message by replying with exactly
|
||||||
request for the module <module-name> to be derived for a specific set of
|
request for the module <module-name> to be derived for a specific set of
|
||||||
parameters. <param-name> starts with \ for named parameters, and with $
|
parameters. <param-name> starts with \ for named parameters, and with $
|
||||||
for unnamed parameters, which are numbered starting at 1.<param-value>
|
for unnamed parameters, which are numbered starting at 1.<param-value>
|
||||||
for integer parameters is always specified as a binary string of unlimited
|
for integer parameters is always specified as a binary string of
|
||||||
precision. the <source> returned by the frontend is hygienically parsed
|
unlimited precision. the <source> returned by the frontend is
|
||||||
by a built-in Yosys <frontend>, allowing the RPC frontend to return any
|
hygienically parsedby a built-in Yosys <frontend>, allowing the RPC
|
||||||
convenient representation of the module. the derived module is cached,
|
frontend to return anyconvenient representation of the module. the
|
||||||
so the response should be the same whenever the same set of parameters
|
derived module is cached,so the response should be the same whenever the
|
||||||
is provided.
|
same set of parameters is provided.
|
||||||
\end{lstlisting}
|
\end{lstlisting}
|
||||||
|
|
||||||
\section{connwrappers -- match width of input-output port pairs}
|
\section{connwrappers -- match width of input-output port pairs}
|
||||||
|
@ -1294,7 +1299,9 @@ and can be specified as allowed targets):
|
||||||
- $_DLATCHSR_[NP][NP][NP]_
|
- $_DLATCHSR_[NP][NP][NP]_
|
||||||
|
|
||||||
The following transformations are performed by this pass:
|
The following transformations are performed by this pass:
|
||||||
- upconversion from a less capable cell to a more capable cell, if the less capable cell is not supported (eg. dff -> dffe, or adff -> dffsr)
|
|
||||||
|
- upconversion from a less capable cell to a more capable cell, if the less
|
||||||
|
capable cell is not supported (eg. dff -> dffe, or adff -> dffsr)
|
||||||
- unmapping FFs with clock enable (due to unsupported cell type or -mince)
|
- unmapping FFs with clock enable (due to unsupported cell type or -mince)
|
||||||
- unmapping FFs with sync reset (due to unsupported cell type or -minsrst)
|
- unmapping FFs with sync reset (due to unsupported cell type or -minsrst)
|
||||||
- adding inverters on the control pins (due to unsupported polarity)
|
- adding inverters on the control pins (due to unsupported polarity)
|
||||||
|
@ -1307,7 +1314,8 @@ The following transformations are performed by this pass:
|
||||||
dff + adff + dlatch + mux
|
dff + adff + dlatch + mux
|
||||||
- emulating adlatch when the (reset, init) value combination is unsupported by
|
- emulating adlatch when the (reset, init) value combination is unsupported by
|
||||||
- dlatch + adlatch + dlatch + mux
|
- dlatch + adlatch + dlatch + mux
|
||||||
If the pass is unable to realize a given cell type (eg. adff when only plain dffis available), an error is raised.
|
If the pass is unable to realize a given cell type (eg. adff when only plain dff
|
||||||
|
is available), an error is raised.
|
||||||
\end{lstlisting}
|
\end{lstlisting}
|
||||||
|
|
||||||
\section{dfflibmap -- technology mapping of flip-flops}
|
\section{dfflibmap -- technology mapping of flip-flops}
|
||||||
|
@ -1330,7 +1338,8 @@ types that are already of exactly the right type to match the target
|
||||||
cells, leaving remaining internal cells untouched.
|
cells, leaving remaining internal cells untouched.
|
||||||
|
|
||||||
When called with -info, this command will only print the target cell
|
When called with -info, this command will only print the target cell
|
||||||
list, along with their associated internal cell types, and the argumentsthat would be passed to the dfflegalize pass. The design will not be
|
list, along with their associated internal cell types, and the arguments
|
||||||
|
that would be passed to the dfflegalize pass. The design will not be
|
||||||
changed.
|
changed.
|
||||||
\end{lstlisting}
|
\end{lstlisting}
|
||||||
|
|
||||||
|
@ -1340,8 +1349,8 @@ changed.
|
||||||
dffunmap [options] [selection]
|
dffunmap [options] [selection]
|
||||||
|
|
||||||
This pass transforms FF types with clock enable and/or synchronous reset into
|
This pass transforms FF types with clock enable and/or synchronous reset into
|
||||||
their base type (with neither clock enable nor sync reset) by emulating the clock
|
their base type (with neither clock enable nor sync reset) by emulating the
|
||||||
enable and synchronous reset with multiplexers on the cell input.
|
clock enable and synchronous reset with multiplexers on the cell input.
|
||||||
|
|
||||||
-ce-only
|
-ce-only
|
||||||
unmap only clock enables, leave synchronous resets alone.
|
unmap only clock enables, leave synchronous resets alone.
|
||||||
|
@ -1690,8 +1699,8 @@ inputs.
|
||||||
|
|
||||||
Execute a command in the operating system shell. All supplied arguments are
|
Execute a command in the operating system shell. All supplied arguments are
|
||||||
concatenated and passed as a command to popen(3). Whitespace is not guaranteed
|
concatenated and passed as a command to popen(3). Whitespace is not guaranteed
|
||||||
to be preserved, even if quoted. stdin and stderr are not connected, while stdout is
|
to be preserved, even if quoted. stdin and stderr are not connected, while
|
||||||
logged unless the "-q" option is specified.
|
stdout is logged unless the "-q" option is specified.
|
||||||
|
|
||||||
|
|
||||||
-q
|
-q
|
||||||
|
@ -2036,6 +2045,49 @@ model.
|
||||||
Set clock for init sequences
|
Set clock for init sequences
|
||||||
\end{lstlisting}
|
\end{lstlisting}
|
||||||
|
|
||||||
|
\section{formalff -- prepare FFs for formal}
|
||||||
|
\label{cmd:formalff}
|
||||||
|
\begin{lstlisting}[numbers=left,frame=single]
|
||||||
|
formalff [options] [selection]
|
||||||
|
|
||||||
|
This pass transforms clocked flip-flops to prepare a design for formal
|
||||||
|
verification. If a design contains latches and/or multiple different clocks run
|
||||||
|
the async2sync or clk2fflogic passes before using this pass.
|
||||||
|
|
||||||
|
-clk2ff
|
||||||
|
Replace all clocked flip-flops with $ff cells that use the implicit
|
||||||
|
global clock. This assumes, without checking, that the design uses a
|
||||||
|
single global clock. If that is not the case, the clk2fflogic pass
|
||||||
|
should be used instead.
|
||||||
|
|
||||||
|
-ff2anyinit
|
||||||
|
Replace uninitialized bits of $ff cells with $anyinit cells. An
|
||||||
|
$anyinit cell behaves exactly like an $ff cell with an undefined
|
||||||
|
initialization value. The difference is that $anyinit inhibits
|
||||||
|
don't-care optimizations and is used to track solver-provided values
|
||||||
|
in witness traces.
|
||||||
|
|
||||||
|
If combined with -clk2ff this also affects newly created $ff cells.
|
||||||
|
|
||||||
|
-anyinit2ff
|
||||||
|
Replaces $anyinit cells with uninitialized $ff cells. This performs the
|
||||||
|
reverse of -ff2anyinit and can be used, before running a backend pass
|
||||||
|
(or similar) that is not yet aware of $anyinit cells.
|
||||||
|
|
||||||
|
Note that after running -anyinit2ff, in general, performing don't-care
|
||||||
|
optimizations is not sound in a formal verification setting.
|
||||||
|
|
||||||
|
-fine
|
||||||
|
Emit fine-grained $_FF_ cells instead of coarse-grained $ff cells for
|
||||||
|
-anyinit2ff. Cannot be combined with -clk2ff or -ff2anyinit.
|
||||||
|
|
||||||
|
-setundef
|
||||||
|
Find FFs with undefined initialization values for which changing the
|
||||||
|
initialization does not change the observable behavior and initialize
|
||||||
|
them. For -ff2anyinit, this reduces the number of generated $anyinit
|
||||||
|
cells that drive wires with private names.
|
||||||
|
\end{lstlisting}
|
||||||
|
|
||||||
\section{freduce -- perform functional reduction}
|
\section{freduce -- perform functional reduction}
|
||||||
\label{cmd:freduce}
|
\label{cmd:freduce}
|
||||||
\begin{lstlisting}[numbers=left,frame=single]
|
\begin{lstlisting}[numbers=left,frame=single]
|
||||||
|
@ -2227,8 +2279,8 @@ one-hot encoding and binary encoding is supported.
|
||||||
\begin{lstlisting}[numbers=left,frame=single]
|
\begin{lstlisting}[numbers=left,frame=single]
|
||||||
fst2tb [options] [top-level]
|
fst2tb [options] [top-level]
|
||||||
|
|
||||||
This command generates testbench for the circuit using the given top-level module
|
This command generates testbench for the circuit using the given top-level
|
||||||
and simulus signal from FST file
|
module and simulus signal from FST file
|
||||||
|
|
||||||
-tb <name>
|
-tb <name>
|
||||||
generated testbench name.
|
generated testbench name.
|
||||||
|
@ -2271,44 +2323,46 @@ and CC_L2T5 cells as created by LUT tree mapping.
|
||||||
\begin{lstlisting}[numbers=left,frame=single]
|
\begin{lstlisting}[numbers=left,frame=single]
|
||||||
glift <command> [options] [selection]
|
glift <command> [options] [selection]
|
||||||
|
|
||||||
Augments the current or specified module with gate-level information flow tracking
|
Augments the current or specified module with gate-level information flow
|
||||||
(GLIFT) logic using the "constructive mapping" approach. Also can set up QBF-SAT
|
tracking (GLIFT) logic using the "constructive mapping" approach. Also can set
|
||||||
optimization problems in order to optimize GLIFT models or trade off precision and
|
up QBF-SAT optimization problems in order to optimize GLIFT models or trade off
|
||||||
complexity.
|
precision and complexity.
|
||||||
|
|
||||||
|
|
||||||
Commands:
|
Commands:
|
||||||
|
|
||||||
-create-precise-model
|
-create-precise-model
|
||||||
Replaces the current or specified module with one that has corresponding "taint"
|
Replaces the current or specified module with one that has corresponding
|
||||||
inputs, outputs, and internal nets along with precise taint tracking logic.
|
"taint" inputs, outputs, and internal nets along with precise taint
|
||||||
For example, precise taint tracking logic for an AND gate is:
|
tracking logic. For example, precise taint tracking logic for an AND gate
|
||||||
|
is:
|
||||||
|
|
||||||
y_t = a & b_t | b & a_t | a_t & b_t
|
y_t = a & b_t | b & a_t | a_t & b_t
|
||||||
|
|
||||||
|
|
||||||
-create-imprecise-model
|
-create-imprecise-model
|
||||||
Replaces the current or specified module with one that has corresponding "taint"
|
Replaces the current or specified module with one that has corresponding
|
||||||
inputs, outputs, and internal nets along with imprecise "All OR" taint tracking
|
"taint" inputs, outputs, and internal nets along with imprecise "All OR"
|
||||||
logic:
|
taint tracking logic:
|
||||||
|
|
||||||
y_t = a_t | b_t
|
y_t = a_t | b_t
|
||||||
|
|
||||||
|
|
||||||
-create-instrumented-model
|
-create-instrumented-model
|
||||||
Replaces the current or specified module with one that has corresponding "taint"
|
Replaces the current or specified module with one that has corresponding
|
||||||
inputs, outputs, and internal nets along with 4 varying-precision versions of taint
|
"taint" inputs, outputs, and internal nets along with 4 varying-precision
|
||||||
tracking logic. Which version of taint tracking logic is used for a given gate is
|
versions of taint tracking logic. Which version of taint tracking logic is
|
||||||
determined by a MUX selected by an $anyconst cell. By default, unless the
|
used for a given gate is determined by a MUX selected by an $anyconst cell.
|
||||||
`-no-cost-model` option is provided, an additional wire named `__glift_weight` with
|
By default, unless the `-no-cost-model` option is provided, an additional
|
||||||
the `keep` and `minimize` attributes is added to the module along with pmuxes and
|
wire named `__glift_weight` with the `keep` and `minimize` attributes is
|
||||||
adders to calculate a rough estimate of the number of logic gates in the GLIFT model
|
added to the module along with pmuxes and adders to calculate a rough
|
||||||
given an assignment for the $anyconst cells. The four versions of taint tracking logic
|
estimate of the number of logic gates in the GLIFT model given an assignment
|
||||||
for an AND gate are:
|
for the $anyconst cells. The four versions of taint tracking logic for an
|
||||||
y_t = a & b_t | b & a_t | a_t & b_t (like `-create-precise-model`)
|
AND gate are:
|
||||||
|
y_t = a & b_t | b & a_t | a_t & b_t (like `-create-precise-model`)
|
||||||
y_t = a_t | a & b_t
|
y_t = a_t | a & b_t
|
||||||
y_t = b_t | b & a_t
|
y_t = b_t | b & a_t
|
||||||
y_t = a_t | b_t (like `-create-imprecise-model`)
|
y_t = a_t | b_t (like `-create-imprecise-model`)
|
||||||
|
|
||||||
|
|
||||||
Options:
|
Options:
|
||||||
|
@ -2318,27 +2372,30 @@ Options:
|
||||||
(default: label constants as un-tainted)
|
(default: label constants as un-tainted)
|
||||||
|
|
||||||
-keep-outputs
|
-keep-outputs
|
||||||
Do not remove module outputs. Taint tracking outputs will appear in the module ports
|
Do not remove module outputs. Taint tracking outputs will appear in the
|
||||||
alongside the orignal outputs.
|
module ports alongside the orignal outputs.
|
||||||
(default: original module outputs are removed)
|
(default: original module outputs are removed)
|
||||||
|
|
||||||
-simple-cost-model
|
-simple-cost-model
|
||||||
Do not model logic area. Instead model the number of non-zero assignments to $anyconsts.
|
Do not model logic area. Instead model the number of non-zero assignments to
|
||||||
Taint tracking logic versions vary in their size, but all reduced-precision versions are
|
$anyconsts. Taint tracking logic versions vary in their size, but all
|
||||||
significantly smaller than the fully-precise version. A non-zero $anyconst assignment means
|
reduced-precision versions are significantly smaller than the fully-precise
|
||||||
that reduced-precision taint tracking logic was chosen for some gate.
|
version. A non-zero $anyconst assignment means that reduced-precision taint
|
||||||
Only applicable in combination with `-create-instrumented-model`.
|
tracking logic was chosen for some gate. Only applicable in combination with
|
||||||
(default: use a complex model and give that wire the "keep" and "minimize" attributes)
|
`-create-instrumented-model`. (default: use a complex model and give that
|
||||||
|
wire the "keep" and "minimize" attributes)
|
||||||
|
|
||||||
-no-cost-model
|
-no-cost-model
|
||||||
Do not model taint tracking logic area and do not create a `__glift_weight` wire.
|
Do not model taint tracking logic area and do not create a `__glift_weight`
|
||||||
Only applicable in combination with `-create-instrumented-model`.
|
wire. Only applicable in combination with `-create-instrumented-model`.
|
||||||
(default: model area and give that wire the "keep" and "minimize" attributes)
|
(default: model area and give that wire the "keep" and "minimize"
|
||||||
|
attributes)
|
||||||
|
|
||||||
-instrument-more
|
-instrument-more
|
||||||
Allow choice from more versions of (even simpler) taint tracking logic. A total
|
Allow choice from more versions of (even simpler) taint tracking logic. A
|
||||||
of 8 versions of taint tracking logic will be added per gate, including the 4
|
total of 8 versions of taint tracking logic will be added per gate,
|
||||||
versions from `-create-instrumented-model` and these additional versions:
|
including the 4 versions from `-create-instrumented-model` and these
|
||||||
|
additional versions:
|
||||||
|
|
||||||
y_t = a_t
|
y_t = a_t
|
||||||
y_t = b_t
|
y_t = b_t
|
||||||
|
@ -2657,8 +2714,9 @@ scripts, because the TCL command "puts" only goes to stdout but not to
|
||||||
logfiles.
|
logfiles.
|
||||||
|
|
||||||
-stdout
|
-stdout
|
||||||
Print the output to stdout too. This is useful when all Yosys is executed
|
Print the output to stdout too. This is useful when all Yosys is
|
||||||
with a script and the -q (quiet operation) argument to notify the user.
|
executed with a script and the -q (quiet operation) argument to notify
|
||||||
|
the user.
|
||||||
|
|
||||||
-stderr
|
-stderr
|
||||||
Print the output to stderr too.
|
Print the output to stderr too.
|
||||||
|
@ -2830,7 +2888,8 @@ and a value greater than 1 means configurable. All groups with the same value
|
||||||
greater than 1 share the same configuration bit.
|
greater than 1 share the same configuration bit.
|
||||||
|
|
||||||
Using the same bram name in different bram blocks will create different variants
|
Using the same bram name in different bram blocks will create different variants
|
||||||
of the bram. Verilog configuration parameters for the bram are created as needed.
|
of the bram. Verilog configuration parameters for the bram are created as
|
||||||
|
needed.
|
||||||
|
|
||||||
It is also possible to create variants by repeating statements in the bram block
|
It is also possible to create variants by repeating statements in the bram block
|
||||||
and appending '@<label>' to the individual statements.
|
and appending '@<label>' to the individual statements.
|
||||||
|
@ -2902,8 +2961,8 @@ memory cells.
|
||||||
\begin{lstlisting}[numbers=left,frame=single]
|
\begin{lstlisting}[numbers=left,frame=single]
|
||||||
memory_dff [-no-rw-check] [selection]
|
memory_dff [-no-rw-check] [selection]
|
||||||
|
|
||||||
This pass detects DFFs at memory read ports and merges them into the memory port.
|
This pass detects DFFs at memory read ports and merges them into the memory
|
||||||
I.e. it consumes an asynchronous memory port and the flip-flops at its
|
port. I.e. it consumes an asynchronous memory port and the flip-flops at its
|
||||||
interface and yields a synchronous memory port.
|
interface and yields a synchronous memory port.
|
||||||
|
|
||||||
-no-rw-check
|
-no-rw-check
|
||||||
|
@ -2966,6 +3025,12 @@ pass to word-wide DFFs and address decoders.
|
||||||
|
|
||||||
-keepdc
|
-keepdc
|
||||||
when mapping ROMs, keep x-bits shared across read ports.
|
when mapping ROMs, keep x-bits shared across read ports.
|
||||||
|
|
||||||
|
-formal
|
||||||
|
map memories for a global clock based formal verification flow.
|
||||||
|
This implies -keepdc, uses $ff cells for ROMs and sets hdlname
|
||||||
|
attributes. It also has limited support for async write ports
|
||||||
|
as generated by clk2fflogic.
|
||||||
\end{lstlisting}
|
\end{lstlisting}
|
||||||
|
|
||||||
\section{memory\_memx -- emulate vlog sim behavior for mem ports}
|
\section{memory\_memx -- emulate vlog sim behavior for mem ports}
|
||||||
|
@ -3006,8 +3071,8 @@ The following methods are used to consolidate the number of memory ports:
|
||||||
- When multiple write ports access the same address then this is converted
|
- When multiple write ports access the same address then this is converted
|
||||||
to a single write port with a more complex data and/or enable logic path.
|
to a single write port with a more complex data and/or enable logic path.
|
||||||
|
|
||||||
- When multiple read or write ports access adjacent aligned addresses, they are
|
- When multiple read or write ports access adjacent aligned addresses, they
|
||||||
merged to a single wide read or write port. This transformation can be
|
are merged to a single wide read or write port. This transformation can be
|
||||||
disabled with the "-nowiden" option.
|
disabled with the "-nowiden" option.
|
||||||
|
|
||||||
- When multiple write ports are never accessed at the same time (a SAT
|
- When multiple write ports are never accessed at the same time (a SAT
|
||||||
|
@ -3276,14 +3341,17 @@ overall gate count of the circuit
|
||||||
opt_dff [-nodffe] [-nosdff] [-keepdc] [-sat] [selection]
|
opt_dff [-nodffe] [-nosdff] [-keepdc] [-sat] [selection]
|
||||||
|
|
||||||
This pass converts flip-flops to a more suitable type by merging clock enables
|
This pass converts flip-flops to a more suitable type by merging clock enables
|
||||||
and synchronous reset multiplexers, removing unused control inputs, or potentially
|
and synchronous reset multiplexers, removing unused control inputs, or
|
||||||
removes the flip-flop altogether, converting it to a constant driver.
|
potentially removes the flip-flop altogether, converting it to a constant
|
||||||
|
driver.
|
||||||
|
|
||||||
-nodffe
|
-nodffe
|
||||||
disables dff -> dffe conversion, and other transforms recognizing clock enable
|
disables dff -> dffe conversion, and other transforms recognizing clock
|
||||||
|
enable
|
||||||
|
|
||||||
-nosdff
|
-nosdff
|
||||||
disables dff -> sdff conversion, and other transforms recognizing sync resets
|
disables dff -> sdff conversion, and other transforms recognizing sync
|
||||||
|
resets
|
||||||
|
|
||||||
-simple-dffe
|
-simple-dffe
|
||||||
only enables clock enable recognition transform for obvious cases
|
only enables clock enable recognition transform for obvious cases
|
||||||
|
@ -3804,11 +3872,11 @@ This pass converts switches into read-only memories when appropriate.
|
||||||
\begin{lstlisting}[numbers=left,frame=single]
|
\begin{lstlisting}[numbers=left,frame=single]
|
||||||
qbfsat [options] [selection]
|
qbfsat [options] [selection]
|
||||||
|
|
||||||
This command solves an "exists-forall" 2QBF-SAT problem defined over the currently
|
This command solves an "exists-forall" 2QBF-SAT problem defined over the
|
||||||
selected module. Existentially-quantified variables are declared by assigning a wire
|
currently selected module. Existentially-quantified variables are declared by
|
||||||
"$anyconst". Universally-quantified variables may be explicitly declared by assigning
|
assigning a wire "$anyconst". Universally-quantified variables may be
|
||||||
a wire "$allconst", but module inputs will be treated as universally-quantified
|
explicitly declared by assigning a wire "$allconst", but module inputs will be
|
||||||
variables by default.
|
treated as universally-quantified variables by default.
|
||||||
|
|
||||||
-nocleanup
|
-nocleanup
|
||||||
Do not delete temporary files and directories. Useful for debugging.
|
Do not delete temporary files and directories. Useful for debugging.
|
||||||
|
@ -3817,23 +3885,25 @@ variables by default.
|
||||||
Pass the --dump-smt2 option to yosys-smtbmc.
|
Pass the --dump-smt2 option to yosys-smtbmc.
|
||||||
|
|
||||||
-assume-outputs
|
-assume-outputs
|
||||||
Add an "$assume" cell for the conjunction of all one-bit module output wires.
|
Add an "$assume" cell for the conjunction of all one-bit module output
|
||||||
|
wires.
|
||||||
|
|
||||||
-assume-negative-polarity
|
-assume-negative-polarity
|
||||||
When adding $assume cells for one-bit module output wires, assume they are
|
When adding $assume cells for one-bit module output wires, assume they
|
||||||
negative polarity signals and should always be low, for example like the
|
are negative polarity signals and should always be low, for example like
|
||||||
miters created with the `miter` command.
|
the miters created with the `miter` command.
|
||||||
|
|
||||||
-nooptimize
|
-nooptimize
|
||||||
Ignore "\minimize" and "\maximize" attributes, do not emit "(maximize)" or
|
Ignore "\minimize" and "\maximize" attributes, do not emit
|
||||||
"(minimize)" in the SMT-LIBv2, and generally make no attempt to optimize anything.
|
"(maximize)" or "(minimize)" in the SMT-LIBv2, and generally make no
|
||||||
|
attempt to optimize anything.
|
||||||
|
|
||||||
-nobisection
|
-nobisection
|
||||||
If a wire is marked with the "\minimize" or "\maximize" attribute, do not
|
If a wire is marked with the "\minimize" or "\maximize" attribute,
|
||||||
attempt to optimize that value with the default iterated solving and threshold
|
do not attempt to optimize that value with the default iterated solving
|
||||||
bisection approach. Instead, have yosys-smtbmc emit a "(minimize)" or "(maximize)"
|
and threshold bisection approach. Instead, have yosys-smtbmc emit a
|
||||||
command in the SMT-LIBv2 output and hope that the solver supports optimizing
|
"(minimize)" or "(maximize)" command in the SMT-LIBv2 output and
|
||||||
quantified bitvector problems.
|
hope that the solver supports optimizing quantified bitvector problems.
|
||||||
|
|
||||||
-solver <solver>
|
-solver <solver>
|
||||||
Use a particular solver. Choose one of: "z3", "yices", and "cvc4".
|
Use a particular solver. Choose one of: "z3", "yices", and "cvc4".
|
||||||
|
@ -3863,12 +3933,14 @@ variables by default.
|
||||||
corresponding constant value from the model produced by the solver.
|
corresponding constant value from the model produced by the solver.
|
||||||
|
|
||||||
-specialize-from-file <solution file>
|
-specialize-from-file <solution file>
|
||||||
Do not run the solver, but instead only attempt to replace each "$anyconst"
|
Do not run the solver, but instead only attempt to replace each
|
||||||
cell in the current module with a constant value provided by the specified file.
|
"$anyconst" cell in the current module with a constant value provided
|
||||||
|
by the specified file.
|
||||||
|
|
||||||
-write-solution <solution file>
|
-write-solution <solution file>
|
||||||
If the problem is satisfiable, write the corresponding constant value for each
|
If the problem is satisfiable, write the corresponding constant value
|
||||||
"$anyconst" cell from the model produced by the solver to the specified file.
|
for each "$anyconst" cell from the model produced by the solver to the
|
||||||
|
specified file.
|
||||||
\end{lstlisting}
|
\end{lstlisting}
|
||||||
|
|
||||||
\section{qwp -- quadratic wirelength placer}
|
\section{qwp -- quadratic wirelength placer}
|
||||||
|
@ -4261,6 +4333,14 @@ The character % in the pattern is replaced with a integer number. The default
|
||||||
pattern is '_%_'.
|
pattern is '_%_'.
|
||||||
|
|
||||||
|
|
||||||
|
rename -witness
|
||||||
|
|
||||||
|
Assigns auto-generated names to all $any*/$all* output wires and containing
|
||||||
|
cells that do not have a public name. This ensures that, during formal
|
||||||
|
verification, a solver-found trace can be fully specified using a public
|
||||||
|
hierarchical names.
|
||||||
|
|
||||||
|
|
||||||
rename -hide [selection]
|
rename -hide [selection]
|
||||||
|
|
||||||
Assign private names (the ones with $-prefix) to all selected wires and cells
|
Assign private names (the ones with $-prefix) to all selected wires and cells
|
||||||
|
@ -4270,6 +4350,13 @@ with public names. This ignores all selected ports.
|
||||||
rename -top new_name
|
rename -top new_name
|
||||||
|
|
||||||
Rename top module.
|
Rename top module.
|
||||||
|
|
||||||
|
|
||||||
|
rename -scramble-name [-seed <seed>] [selection]
|
||||||
|
|
||||||
|
Assign randomly-generated names to all selected wires and cells. The seed option
|
||||||
|
can be used to change the random number generator seed from the default, but it
|
||||||
|
must be non-zero.
|
||||||
\end{lstlisting}
|
\end{lstlisting}
|
||||||
|
|
||||||
\section{rmports -- remove module ports with no connections}
|
\section{rmports -- remove module ports with no connections}
|
||||||
|
@ -4520,7 +4607,8 @@ design. Options:
|
||||||
copy the value of the first identifier to the second identifier.
|
copy the value of the first identifier to the second identifier.
|
||||||
|
|
||||||
-assert <identifier> <value>
|
-assert <identifier> <value>
|
||||||
assert that the entry for the given identifier is set to the given value.
|
assert that the entry for the given identifier is set to the given
|
||||||
|
value.
|
||||||
|
|
||||||
-assert-set <identifier>
|
-assert-set <identifier>
|
||||||
assert that the entry for the given identifier exists.
|
assert that the entry for the given identifier exists.
|
||||||
|
@ -4657,7 +4745,8 @@ Pushing (selecting) object when in -module mode:
|
||||||
<obj_pattern>
|
<obj_pattern>
|
||||||
select the specified object(s) from the current module
|
select the specified object(s) from the current module
|
||||||
|
|
||||||
By default, patterns will not match black/white-box modules or theircontents. To include such objects, prefix the pattern with '='.
|
By default, patterns will not match black/white-box modules or their
|
||||||
|
contents. To include such objects, prefix the pattern with '='.
|
||||||
|
|
||||||
A <mod_pattern> can be a module name, wildcard expression (*, ?, [..])
|
A <mod_pattern> can be a module name, wildcard expression (*, ?, [..])
|
||||||
matching module names, or one of the following:
|
matching module names, or one of the following:
|
||||||
|
@ -5069,6 +5158,10 @@ This command simulates the circuit using the given top-level module.
|
||||||
write the simulation results to an AIGER witness file
|
write the simulation results to an AIGER witness file
|
||||||
(requires a *.aim file via -map)
|
(requires a *.aim file via -map)
|
||||||
|
|
||||||
|
-hdlname
|
||||||
|
use the hdlname attribute when writing simulation results
|
||||||
|
(preserves hierarchy in a flattened design)
|
||||||
|
|
||||||
-x
|
-x
|
||||||
ignore constant x outputs in simulation file.
|
ignore constant x outputs in simulation file.
|
||||||
|
|
||||||
|
@ -5109,7 +5202,8 @@ This command simulates the circuit using the given top-level module.
|
||||||
writeback mode: use final simulation state as new init state
|
writeback mode: use final simulation state as new init state
|
||||||
|
|
||||||
-r
|
-r
|
||||||
read simulation results file (file formats supported: FST, VCD, AIW and WIT)
|
read simulation results file
|
||||||
|
File formats supported: FST, VCD, AIW and WIT
|
||||||
VCD support requires vcd2fst external tool to be present
|
VCD support requires vcd2fst external tool to be present
|
||||||
|
|
||||||
-map <filename>
|
-map <filename>
|
||||||
|
@ -5157,7 +5251,8 @@ primitives. The following internal cell types are mapped by this pass:
|
||||||
$not, $pos, $and, $or, $xor, $xnor
|
$not, $pos, $and, $or, $xor, $xnor
|
||||||
$reduce_and, $reduce_or, $reduce_xor, $reduce_xnor, $reduce_bool
|
$reduce_and, $reduce_or, $reduce_xor, $reduce_xnor, $reduce_bool
|
||||||
$logic_not, $logic_and, $logic_or, $mux, $tribuf
|
$logic_not, $logic_and, $logic_or, $mux, $tribuf
|
||||||
$sr, $ff, $dff, $dffe, $dffsr, $dffsre, $adff, $adffe, $aldff, $aldffe, $sdff, $sdffe, $sdffce, $dlatch, $adlatch, $dlatchsr
|
$sr, $ff, $dff, $dffe, $dffsr, $dffsre, $adff, $adffe, $aldff, $aldffe, $sdff,
|
||||||
|
$sdffe, $sdffce, $dlatch, $adlatch, $dlatchsr
|
||||||
\end{lstlisting}
|
\end{lstlisting}
|
||||||
|
|
||||||
\section{splice -- create explicit splicing cells}
|
\section{splice -- create explicit splicing cells}
|
||||||
|
@ -5253,6 +5348,10 @@ design.
|
||||||
-width
|
-width
|
||||||
annotate internal cell types with their word width.
|
annotate internal cell types with their word width.
|
||||||
e.g. $add_8 for an 8 bit wide $add cell.
|
e.g. $add_8 for an 8 bit wide $add cell.
|
||||||
|
|
||||||
|
-json
|
||||||
|
output the statistics in a machine-readable JSON format.
|
||||||
|
this is output to the console; use "tee" to output to a file.
|
||||||
\end{lstlisting}
|
\end{lstlisting}
|
||||||
|
|
||||||
\section{submod -- moving part of a module to a new submodule}
|
\section{submod -- moving part of a module to a new submodule}
|
||||||
|
@ -5282,8 +5381,8 @@ or memories.
|
||||||
|
|
||||||
-hidden
|
-hidden
|
||||||
instead of creating submodule ports with public names, create ports with
|
instead of creating submodule ports with public names, create ports with
|
||||||
private names so that a subsequent 'flatten; clean' call will restore the
|
private names so that a subsequent 'flatten; clean' call will restore
|
||||||
original module with original public names.
|
the original module with original public names.
|
||||||
\end{lstlisting}
|
\end{lstlisting}
|
||||||
|
|
||||||
\section{supercover -- add hi/lo cover cells for each wire bit}
|
\section{supercover -- add hi/lo cover cells for each wire bit}
|
||||||
|
@ -6333,8 +6432,8 @@ The following commands are executed by this synthesis command:
|
||||||
This command runs synthesis for iCE40 FPGAs.
|
This command runs synthesis for iCE40 FPGAs.
|
||||||
|
|
||||||
-device < hx | lp | u >
|
-device < hx | lp | u >
|
||||||
relevant only for '-abc9' flow, optimise timing for the specified device.
|
relevant only for '-abc9' flow, optimise timing for the specified
|
||||||
default: hx
|
device. default: hx
|
||||||
|
|
||||||
-top <module>
|
-top <module>
|
||||||
use the specified module as top module
|
use the specified module as top module
|
||||||
|
@ -6517,21 +6616,22 @@ This command runs synthesis for Intel FPGAs.
|
||||||
-family <max10 | cyclone10lp | cycloneiv | cycloneive>
|
-family <max10 | cyclone10lp | cycloneiv | cycloneive>
|
||||||
generate the synthesis netlist for the specified family.
|
generate the synthesis netlist for the specified family.
|
||||||
MAX10 is the default target if no family argument specified.
|
MAX10 is the default target if no family argument specified.
|
||||||
For Cyclone IV GX devices, use cycloneiv argument; for Cyclone IV E, use cycloneive.
|
For Cyclone IV GX devices, use cycloneiv argument; for Cyclone IV E, use
|
||||||
For Cyclone V and Cyclone 10 GX, use the synth_intel_alm backend instead.
|
cycloneive. For Cyclone V and Cyclone 10 GX, use the synth_intel_alm
|
||||||
|
backend instead.
|
||||||
|
|
||||||
-top <module>
|
-top <module>
|
||||||
use the specified module as top module (default='top')
|
use the specified module as top module (default='top')
|
||||||
|
|
||||||
-vqm <file>
|
-vqm <file>
|
||||||
write the design to the specified Verilog Quartus Mapping File. Writing of an
|
write the design to the specified Verilog Quartus Mapping File. Writing
|
||||||
output file is omitted if this parameter is not specified.
|
of an output file is omitted if this parameter is not specified.
|
||||||
Note that this backend has not been tested and is likely incompatible
|
Note that this backend has not been tested and is likely incompatible
|
||||||
with recent versions of Quartus.
|
with recent versions of Quartus.
|
||||||
|
|
||||||
-vpr <file>
|
-vpr <file>
|
||||||
write BLIF files for VPR flow experiments. The synthesized BLIF output file is not
|
write BLIF files for VPR flow experiments. The synthesized BLIF output
|
||||||
compatible with the Quartus flow. Writing of an
|
file is not compatible with the Quartus flow. Writing of an
|
||||||
output file is omitted if this parameter is not specified.
|
output file is omitted if this parameter is not specified.
|
||||||
|
|
||||||
-run <from_label>:<to_label>
|
-run <from_label>:<to_label>
|
||||||
|
@ -6627,20 +6727,24 @@ This command runs synthesis for ALM-based Intel FPGAs.
|
||||||
-family <family>
|
-family <family>
|
||||||
target one of:
|
target one of:
|
||||||
"cyclonev" - Cyclone V (default)
|
"cyclonev" - Cyclone V (default)
|
||||||
"arriav" - Arria V (non-GZ) "cyclone10gx" - Cyclone 10GX
|
"arriav" - Arria V (non-GZ)
|
||||||
|
"cyclone10gx" - Cyclone 10GX
|
||||||
|
|
||||||
-vqm <file>
|
-vqm <file>
|
||||||
write the design to the specified Verilog Quartus Mapping File. Writing of an
|
write the design to the specified Verilog Quartus Mapping File. Writing
|
||||||
output file is omitted if this parameter is not specified. Implies -quartus.
|
of an output file is omitted if this parameter is not specified. Implies
|
||||||
|
-quartus.
|
||||||
|
|
||||||
-noflatten
|
-noflatten
|
||||||
do not flatten design before synthesis; useful for per-module area statistics
|
do not flatten design before synthesis; useful for per-module area
|
||||||
|
statistics
|
||||||
|
|
||||||
-quartus
|
-quartus
|
||||||
output a netlist using Quartus cells instead of MISTRAL_* cells
|
output a netlist using Quartus cells instead of MISTRAL_* cells
|
||||||
|
|
||||||
-dff
|
-dff
|
||||||
pass DFFs to ABC to perform sequential logic optimisations (EXPERIMENTAL)
|
pass DFFs to ABC to perform sequential logic optimisations
|
||||||
|
(EXPERIMENTAL)
|
||||||
|
|
||||||
-run <from_label>:<to_label>
|
-run <from_label>:<to_label>
|
||||||
only run the commands between the labels (see below). an empty
|
only run the commands between the labels (see below). an empty
|
||||||
|
@ -7013,8 +7117,8 @@ This command runs synthesis for QuickLogic FPGAs
|
||||||
is omitted if this parameter is not specified.
|
is omitted if this parameter is not specified.
|
||||||
|
|
||||||
-verilog <file>
|
-verilog <file>
|
||||||
write the design to the specified verilog file. writing of an output file
|
write the design to the specified verilog file. writing of an output
|
||||||
is omitted if this parameter is not specified.
|
file is omitted if this parameter is not specified.
|
||||||
|
|
||||||
-abc
|
-abc
|
||||||
use old ABC flow, which has generally worse mapping results but is less
|
use old ABC flow, which has generally worse mapping results but is less
|
||||||
|
@ -7118,8 +7222,8 @@ This command runs synthesis for SmartFusion2 and IGLOO2 FPGAs.
|
||||||
is omitted if this parameter is not specified.
|
is omitted if this parameter is not specified.
|
||||||
|
|
||||||
-vlog <file>
|
-vlog <file>
|
||||||
write the design to the specified Verilog file. writing of an output file
|
write the design to the specified Verilog file. writing of an output
|
||||||
is omitted if this parameter is not specified.
|
file is omitted if this parameter is not specified.
|
||||||
|
|
||||||
-json <file>
|
-json <file>
|
||||||
write the design to the specified JSON file. writing of an output file
|
write the design to the specified JSON file. writing of an output file
|
||||||
|
@ -7139,6 +7243,9 @@ This command runs synthesis for SmartFusion2 and IGLOO2 FPGAs.
|
||||||
-clkbuf
|
-clkbuf
|
||||||
insert direct PAD->global_net buffers
|
insert direct PAD->global_net buffers
|
||||||
|
|
||||||
|
-discard-ffinit
|
||||||
|
discard FF init value instead of emitting an error
|
||||||
|
|
||||||
-retime
|
-retime
|
||||||
run 'abc' with '-dff -D 1' options
|
run 'abc' with '-dff -D 1' options
|
||||||
|
|
||||||
|
@ -7156,6 +7263,7 @@ The following commands are executed by this synthesis command:
|
||||||
deminout
|
deminout
|
||||||
|
|
||||||
coarse:
|
coarse:
|
||||||
|
attrmap -remove init (only if -discard-ffinit)
|
||||||
synth -run coarse
|
synth -run coarse
|
||||||
|
|
||||||
fine:
|
fine:
|
||||||
|
@ -7182,8 +7290,8 @@ The following commands are executed by this synthesis command:
|
||||||
|
|
||||||
map_iobs:
|
map_iobs:
|
||||||
clkbufmap -buf CLKINT Y:A [-inpad CLKBUF Y:PAD] (unless -noiobs, -inpad only passed if -clkbuf)
|
clkbufmap -buf CLKINT Y:A [-inpad CLKBUF Y:PAD] (unless -noiobs, -inpad only passed if -clkbuf)
|
||||||
iopadmap -bits -inpad INBUF Y:PAD -outpad OUTBUF D:PAD -toutpad TRIBUFF E:D:PAD -tinoutpad BIBUF E:Y:D:PAD (unless -noiobs
|
iopadmap -bits -inpad INBUF Y:PAD -outpad OUTBUF D:PAD -toutpad TRIBUFF E:D:PAD -tinoutpad BIBUF E:Y:D:PAD (unless -noiobs)
|
||||||
clean
|
clean -purge
|
||||||
|
|
||||||
check:
|
check:
|
||||||
hierarchy -check
|
hierarchy -check
|
||||||
|
@ -7257,7 +7365,8 @@ compatible with 7-Series Xilinx devices.
|
||||||
do not use XORCY/MUXCY/CARRY4 cells in output netlist
|
do not use XORCY/MUXCY/CARRY4 cells in output netlist
|
||||||
|
|
||||||
-nowidelut
|
-nowidelut
|
||||||
do not use MUXF[5-9] resources to implement LUTs larger than native for the target
|
do not use MUXF[5-9] resources to implement LUTs larger than native for
|
||||||
|
the target
|
||||||
|
|
||||||
-nodsp
|
-nodsp
|
||||||
do not use DSP48*s to implement multipliers and associated logic
|
do not use DSP48*s to implement multipliers and associated logic
|
||||||
|
@ -7273,8 +7382,8 @@ compatible with 7-Series Xilinx devices.
|
||||||
infer URAM288s for large memories (xcup only)
|
infer URAM288s for large memories (xcup only)
|
||||||
|
|
||||||
-widemux <int>
|
-widemux <int>
|
||||||
enable inference of hard multiplexer resources (MUXF[78]) for muxes at or
|
enable inference of hard multiplexer resources (MUXF[78]) for muxes at
|
||||||
above this number of inputs (minimum value 2, recommended value >= 5).
|
or above this number of inputs (minimum value 2, recommended value >= 5)
|
||||||
default: 0 (no inference)
|
default: 0 (no inference)
|
||||||
|
|
||||||
-run <from_label>:<to_label>
|
-run <from_label>:<to_label>
|
||||||
|
@ -7466,8 +7575,8 @@ file.
|
||||||
When a module in the map file has the 'techmap_celltype' attribute set, it will
|
When a module in the map file has the 'techmap_celltype' attribute set, it will
|
||||||
match cells with a type that match the text value of this attribute. Otherwise
|
match cells with a type that match the text value of this attribute. Otherwise
|
||||||
the module name will be used to match the cell. Multiple space-separated cell
|
the module name will be used to match the cell. Multiple space-separated cell
|
||||||
types can be listed, and wildcards using [] will be expanded (ie. "$_DFF_[PN]_"
|
types can be listed, and wildcards using [] will be expanded (ie.
|
||||||
is the same as "$_DFF_P_ $_DFF_N_").
|
"$_DFF_[PN]_" is the same as "$_DFF_P_ $_DFF_N_").
|
||||||
|
|
||||||
When a module in the map file has the 'techmap_simplemap' attribute set, techmap
|
When a module in the map file has the 'techmap_simplemap' attribute set, techmap
|
||||||
will use 'simplemap' (see 'help simplemap') to map cells matching the module.
|
will use 'simplemap' (see 'help simplemap') to map cells matching the module.
|
||||||
|
@ -7523,11 +7632,11 @@ wires are supported:
|
||||||
It is possible to combine both prefixes to 'RECURSION; CONSTMAP; '.
|
It is possible to combine both prefixes to 'RECURSION; CONSTMAP; '.
|
||||||
|
|
||||||
_TECHMAP_REMOVEINIT_<port-name>_
|
_TECHMAP_REMOVEINIT_<port-name>_
|
||||||
When this wire is set to a constant value, the init attribute of the wire(s)
|
When this wire is set to a constant value, the init attribute of the
|
||||||
connected to this port will be consumed. This wire must have the same
|
wire(s) connected to this port will be consumed. This wire must have
|
||||||
width as the given port, and for every bit that is set to 1 in the value,
|
the same width as the given port, and for every bit that is set to 1 in
|
||||||
the corresponding init attribute bit will be changed to 1'bx. If all
|
the value, the corresponding init attribute bit will be changed to 1'bx.
|
||||||
bits of an init attribute are left as x, it will be removed.
|
If all bits of an init attribute are left as x, it will be removed.
|
||||||
|
|
||||||
In addition to this special wires, techmap also supports special parameters in
|
In addition to this special wires, techmap also supports special parameters in
|
||||||
modules in the map file:
|
modules in the map file:
|
||||||
|
@ -7548,8 +7657,8 @@ modules in the map file:
|
||||||
|
|
||||||
_TECHMAP_WIREINIT_<port-name>_
|
_TECHMAP_WIREINIT_<port-name>_
|
||||||
When a parameter with this name exists, it will be set to the initial
|
When a parameter with this name exists, it will be set to the initial
|
||||||
value of the wire(s) connected to the given port, as specified by the init
|
value of the wire(s) connected to the given port, as specified by the
|
||||||
attribute. If the attribute doesn't exist, x will be filled for the
|
init attribute. If the attribute doesn't exist, x will be filled for the
|
||||||
missing bits. To remove the init attribute bits used, use the
|
missing bits. To remove the init attribute bits used, use the
|
||||||
_TECHMAP_REMOVEINIT_*_ wires.
|
_TECHMAP_REMOVEINIT_*_ wires.
|
||||||
|
|
||||||
|
@ -8097,6 +8206,9 @@ invariant constraints.
|
||||||
-no-startoffset
|
-no-startoffset
|
||||||
make indexes zero based, enable using map files with smt solvers.
|
make indexes zero based, enable using map files with smt solvers.
|
||||||
|
|
||||||
|
-ywmap <filename>
|
||||||
|
write a map file for conversion to and from yosys witness traces.
|
||||||
|
|
||||||
-I, -O, -B, -L
|
-I, -O, -B, -L
|
||||||
If the design contains no input/output/assert/flip-flop then create one
|
If the design contains no input/output/assert/flip-flop then create one
|
||||||
dummy input/output/bad_state-pin or latch to make the tools reading the
|
dummy input/output/bad_state-pin or latch to make the tools reading the
|
||||||
|
@ -8136,8 +8248,8 @@ Write the current design to an BLIF file.
|
||||||
suppresses the generation of this nets without fanout.
|
suppresses the generation of this nets without fanout.
|
||||||
|
|
||||||
The following options can be useful when the generated file is not going to be
|
The following options can be useful when the generated file is not going to be
|
||||||
read by a BLIF parser but a custom tool. It is recommended to not name the output
|
read by a BLIF parser but a custom tool. It is recommended to not name the
|
||||||
file *.blif when any of this options is used.
|
output file *.blif when any of this options is used.
|
||||||
|
|
||||||
-icells
|
-icells
|
||||||
do not translate Yosys's internal gates to generic BLIF logic
|
do not translate Yosys's internal gates to generic BLIF logic
|
||||||
|
@ -8447,8 +8559,8 @@ Write the current design to an EDIF netlist file.
|
||||||
constant drivers first)
|
constant drivers first)
|
||||||
|
|
||||||
-gndvccy
|
-gndvccy
|
||||||
create "GND" and "VCC" cells with "Y" outputs. (the default is "G"
|
create "GND" and "VCC" cells with "Y" outputs. (the default is
|
||||||
for "GND" and "P" for "VCC".)
|
"G" for "GND" and "P" for "VCC".)
|
||||||
|
|
||||||
-attrprop
|
-attrprop
|
||||||
create EDIF properties for cell attributes
|
create EDIF properties for cell attributes
|
||||||
|
@ -8608,7 +8720,9 @@ Where <port_details> is:
|
||||||
"signed": <1 if the port is signed>
|
"signed": <1 if the port is signed>
|
||||||
}
|
}
|
||||||
|
|
||||||
The "offset" and "upto" fields are skipped if their value would be 0.They don't affect connection semantics, and are only used to preserve originalHDL bit indexing.And <cell_details> is:
|
The "offset" and "upto" fields are skipped if their value would be 0.
|
||||||
|
They don't affect connection semantics, and are only used to preserve original
|
||||||
|
HDL bit indexing.And <cell_details> is:
|
||||||
|
|
||||||
{
|
{
|
||||||
"hide_name": <1 | 0>,
|
"hide_name": <1 | 0>,
|
||||||
|
@ -8667,7 +8781,9 @@ values referenced above are vectors of this integers. Signal bits that are
|
||||||
connected to a constant driver are denoted as string "0", "1", "x", or
|
connected to a constant driver are denoted as string "0", "1", "x", or
|
||||||
"z" instead of a number.
|
"z" instead of a number.
|
||||||
|
|
||||||
Bit vectors (including integers) are written as string holding the binaryrepresentation of the value. Strings are written as strings, with an appendedblank in cases of strings of the form /[01xz]* */.
|
Bit vectors (including integers) are written as string holding the binary
|
||||||
|
representation of the value. Strings are written as strings, with an appended
|
||||||
|
blank in cases of strings of the form /[01xz]* */.
|
||||||
|
|
||||||
For example the following Verilog code:
|
For example the following Verilog code:
|
||||||
|
|
||||||
|
@ -9103,7 +9219,8 @@ Write the current design to a Verilog file.
|
||||||
as binary numbers.
|
as binary numbers.
|
||||||
|
|
||||||
-simple-lhs
|
-simple-lhs
|
||||||
Connection assignments with simple left hand side without concatenations.
|
Connection assignments with simple left hand side without
|
||||||
|
concatenations.
|
||||||
|
|
||||||
-extmem
|
-extmem
|
||||||
instead of initializing memories using assignments to individual
|
instead of initializing memories using assignments to individual
|
||||||
|
@ -9217,9 +9334,10 @@ into using the DSP48E1's pattern detector feature for overflow detection.
|
||||||
|
|
||||||
This pass converts chains of built-in flops (bit-level: $_DFF_[NP]_, $_DFFE_*
|
This pass converts chains of built-in flops (bit-level: $_DFF_[NP]_, $_DFFE_*
|
||||||
and word-level: $dff, $dffe) as well as Xilinx flops (FDRE, FDRE_1) into a
|
and word-level: $dff, $dffe) as well as Xilinx flops (FDRE, FDRE_1) into a
|
||||||
$__XILINX_SHREG cell. Chains must be of the same cell type, clock, clock polarity,
|
$__XILINX_SHREG cell. Chains must be of the same cell type, clock, clock
|
||||||
enable, and enable polarity (where relevant).
|
polarity, enable, and enable polarity (where relevant).
|
||||||
Flops with resets cannot be mapped to Xilinx devices and will not be inferred.
|
Flops with resets cannot be mapped to Xilinx devices and will not be inferred.
|
||||||
|
|
||||||
-minlen N
|
-minlen N
|
||||||
min length of shift register (default = 3)
|
min length of shift register (default = 3)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue