mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-11-04 13:29:12 +00:00 
			
		
		
		
	Updated manual/command-reference-manual.tex
This commit is contained in:
		
							parent
							
								
									fe8ec32a1c
								
							
						
					
					
						commit
						74d0de3b74
					
				
					 2 changed files with 137 additions and 7 deletions
				
			
		| 
						 | 
					@ -402,7 +402,7 @@ struct DumpPass : public Pass {
 | 
				
			||||||
		log("ilang format.\n");
 | 
							log("ilang format.\n");
 | 
				
			||||||
		log("\n");
 | 
							log("\n");
 | 
				
			||||||
		log("    -m\n");
 | 
							log("    -m\n");
 | 
				
			||||||
		log("        also dump the module headers, even if only parts of a single");
 | 
							log("        also dump the module headers, even if only parts of a single\n");
 | 
				
			||||||
		log("        module is selected\n");
 | 
							log("        module is selected\n");
 | 
				
			||||||
		log("\n");
 | 
							log("\n");
 | 
				
			||||||
		log("    -n\n");
 | 
							log("    -n\n");
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -131,6 +131,13 @@ first run this pass and then map the logic paths to the target technology.
 | 
				
			||||||
Write the selected parts of the design to the console or specified file in
 | 
					Write the selected parts of the design to the console or specified file in
 | 
				
			||||||
ilang format.
 | 
					ilang format.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    -m
 | 
				
			||||||
 | 
					        also dump the module headers, even if only parts of a single
 | 
				
			||||||
 | 
					        module is selected
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    -n
 | 
				
			||||||
 | 
					        only dump the module headers if the entire module is selected
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    -outfile <filename>
 | 
					    -outfile <filename>
 | 
				
			||||||
        Write to the specified file.
 | 
					        Write to the specified file.
 | 
				
			||||||
\end{lstlisting}
 | 
					\end{lstlisting}
 | 
				
			||||||
| 
						 | 
					@ -146,6 +153,12 @@ inputs.
 | 
				
			||||||
    -set <signal> <value>
 | 
					    -set <signal> <value>
 | 
				
			||||||
        set the specified signal to the specified value.
 | 
					        set the specified signal to the specified value.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    -set-undef
 | 
				
			||||||
 | 
					        set all unspecified source signals to undef (x)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    -table <signal>
 | 
				
			||||||
 | 
					        create a truth table using the specified input signals
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    -show <signal>
 | 
					    -show <signal>
 | 
				
			||||||
        show the value for the specified signal. if no -show option is passed
 | 
					        show the value for the specified signal. if no -show option is passed
 | 
				
			||||||
        then all output ports of the current module are used.
 | 
					        then all output ports of the current module are used.
 | 
				
			||||||
| 
						 | 
					@ -423,6 +436,10 @@ needed.
 | 
				
			||||||
        use the specified top module to built a design hierarchy. modules
 | 
					        use the specified top module to built a design hierarchy. modules
 | 
				
			||||||
        outside this tree (unused modules) are removed.
 | 
					        outside this tree (unused modules) are removed.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        when the -top option is used, the 'top' attribute will be set on the
 | 
				
			||||||
 | 
					        specified top module. otherwise a module with the 'top' attribute set
 | 
				
			||||||
 | 
					        will implicitly be used as top module, if such a module exists.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
In -generate mode this pass generates blackbox modules for the given cell
 | 
					In -generate mode this pass generates blackbox modules for the given cell
 | 
				
			||||||
types (wildcards supported). For this the design is searched for cells that
 | 
					types (wildcards supported). For this the design is searched for cells that
 | 
				
			||||||
match the given types and then the given port declarations are used to
 | 
					match the given types and then the given port declarations are used to
 | 
				
			||||||
| 
						 | 
					@ -440,6 +457,16 @@ This pass ignores the current selection and always operates on all modules
 | 
				
			||||||
in the current design.
 | 
					in the current design.
 | 
				
			||||||
\end{lstlisting}
 | 
					\end{lstlisting}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					\section{history -- show last interactive commands}
 | 
				
			||||||
 | 
					\label{cmd:history}
 | 
				
			||||||
 | 
					\begin{lstlisting}[numbers=left,frame=single]
 | 
				
			||||||
 | 
					    history
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This command prints all commands in the shell history buffer. This are
 | 
				
			||||||
 | 
					all commands executed in an interactive session, but not the commands
 | 
				
			||||||
 | 
					from executed scripts.
 | 
				
			||||||
 | 
					\end{lstlisting}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
\section{iopadmap -- technology mapping of i/o pads (or buffers)}
 | 
					\section{iopadmap -- technology mapping of i/o pads (or buffers)}
 | 
				
			||||||
\label{cmd:iopadmap}
 | 
					\label{cmd:iopadmap}
 | 
				
			||||||
\begin{lstlisting}[numbers=left,frame=single]
 | 
					\begin{lstlisting}[numbers=left,frame=single]
 | 
				
			||||||
| 
						 | 
					@ -469,11 +496,17 @@ the resulting cells to more sophisticated PAD cells.
 | 
				
			||||||
\section{ls -- list modules or objects in modules}
 | 
					\section{ls -- list modules or objects in modules}
 | 
				
			||||||
\label{cmd:ls}
 | 
					\label{cmd:ls}
 | 
				
			||||||
\begin{lstlisting}[numbers=left,frame=single]
 | 
					\begin{lstlisting}[numbers=left,frame=single]
 | 
				
			||||||
    ls
 | 
					    ls [pattern]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
When no active module is selected, this prints a list of all module.
 | 
					When no active module is selected, this prints a list of all modules.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
When an active module is selected, this prints a list of objects in the module.
 | 
					When an active module is selected, this prints a list of objects in the module.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					If a pattern is given, the objects matching the pattern are printed
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Note that this command does not use the selection mechanism and always operates
 | 
				
			||||||
 | 
					on the whole design or whole active module. Use 'select -list' to show a list
 | 
				
			||||||
 | 
					of currently selected objects.
 | 
				
			||||||
\end{lstlisting}
 | 
					\end{lstlisting}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
\section{memory -- translate memories to basic cells}
 | 
					\section{memory -- translate memories to basic cells}
 | 
				
			||||||
| 
						 | 
					@ -761,6 +794,10 @@ Verilog-2005 is supported.
 | 
				
			||||||
        don't perform basic optimizations (such as const folding) in the
 | 
					        don't perform basic optimizations (such as const folding) in the
 | 
				
			||||||
        high-level front-end.
 | 
					        high-level front-end.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    -ignore_redef
 | 
				
			||||||
 | 
					        ignore re-definitions of modules. (the default behavior is to
 | 
				
			||||||
 | 
					        create an error message.)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    -Dname[=definition]
 | 
					    -Dname[=definition]
 | 
				
			||||||
        define the preprocessor symbol 'name' and set its optional value
 | 
					        define the preprocessor symbol 'name' and set its optional value
 | 
				
			||||||
        'definition'
 | 
					        'definition'
 | 
				
			||||||
| 
						 | 
					@ -800,9 +837,29 @@ and additional constraints passed as parameters.
 | 
				
			||||||
    -max <N>
 | 
					    -max <N>
 | 
				
			||||||
        like -all, but limit number of solutions to <N>
 | 
					        like -all, but limit number of solutions to <N>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    -enable_undef
 | 
				
			||||||
 | 
					        enable modeling of undef value (aka 'x-bits')
 | 
				
			||||||
 | 
					        this option is implied by -set-def, -set-undef et. cetera
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    -max_undef
 | 
				
			||||||
 | 
					        maximize the number of undef bits in solutions, giving a better
 | 
				
			||||||
 | 
					        picture of which input bits are actually vital to the solution.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    -set <signal> <value>
 | 
					    -set <signal> <value>
 | 
				
			||||||
        set the specified signal to the specified value.
 | 
					        set the specified signal to the specified value.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    -set-def <signal>
 | 
				
			||||||
 | 
					        add a constraint that all bits of the given signal must be defined
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    -set-any-undef <signal>
 | 
				
			||||||
 | 
					        add a constraint that at least one bit of the given signal is undefined
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    -set-all-undef <signal>
 | 
				
			||||||
 | 
					        add a constraint that all bits of the given signal are undefined
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    -set-def-inputs
 | 
				
			||||||
 | 
					        add -set-def constraints for all module inputs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    -show <signal>
 | 
					    -show <signal>
 | 
				
			||||||
        show the model for the specified signal. if no -show option is
 | 
					        show the model for the specified signal. if no -show option is
 | 
				
			||||||
        passed then a set of signals to be shown is automatically selected.
 | 
					        passed then a set of signals to be shown is automatically selected.
 | 
				
			||||||
| 
						 | 
					@ -821,6 +878,17 @@ The following options can be used to set up a sequential problem:
 | 
				
			||||||
        set or unset the specified signal to the specified value in the
 | 
					        set or unset the specified signal to the specified value in the
 | 
				
			||||||
        given timestep. this has priority over a -set for the same signal.
 | 
					        given timestep. this has priority over a -set for the same signal.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    -set-def-at <N> <signal>
 | 
				
			||||||
 | 
					    -set-any-undef-at <N> <signal>
 | 
				
			||||||
 | 
					    -set-all-undef-at <N> <signal>
 | 
				
			||||||
 | 
					        add undef contraints in the given timestep.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    -set-init <signal> <value>
 | 
				
			||||||
 | 
					        set the initial value for the register driving the signal to the value
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    -set-init-undef
 | 
				
			||||||
 | 
					        set all initial states (not set using -set-init) to undef
 | 
				
			||||||
 | 
					
 | 
				
			||||||
The following additional options can be used to set up a proof. If also -seq
 | 
					The following additional options can be used to set up a proof. If also -seq
 | 
				
			||||||
is passed, a temporal induction proof is performed.
 | 
					is passed, a temporal induction proof is performed.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -829,6 +897,10 @@ is passed, a temporal induction proof is performed.
 | 
				
			||||||
        induction proof it is proven that the condition holds forever after
 | 
					        induction proof it is proven that the condition holds forever after
 | 
				
			||||||
        the number of time steps passed using -seq.
 | 
					        the number of time steps passed using -seq.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    -prove-x <signal> <value>
 | 
				
			||||||
 | 
					        Like -prove, but an undef (x) bit in the lhs matches any value on
 | 
				
			||||||
 | 
					        the right hand side. Useful for equivialence checking.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    -maxsteps <N>
 | 
					    -maxsteps <N>
 | 
				
			||||||
        Set a maximum length for the induction.
 | 
					        Set a maximum length for the induction.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1108,6 +1180,15 @@ to a graphics file (usually SVG or PostScript).
 | 
				
			||||||
        stretch the graph so all inputs are on the left side and all outputs
 | 
					        stretch the graph so all inputs are on the left side and all outputs
 | 
				
			||||||
        (including inout ports) are on the right side.
 | 
					        (including inout ports) are on the right side.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    -pause
 | 
				
			||||||
 | 
					        wait for the use to press enter to before returning
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    -enum
 | 
				
			||||||
 | 
					        enumerate objects with internal ($-prefixed) names
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    -long
 | 
				
			||||||
 | 
					        do not abbeviate objects with internal ($-prefixed) names
 | 
				
			||||||
 | 
					
 | 
				
			||||||
When no <format> is specified, SVG is used. When no <format> and <viewer> is
 | 
					When no <format> is specified, SVG is used. When no <format> and <viewer> is
 | 
				
			||||||
specified, 'yosys-svgviewer' is used to display the schematic.
 | 
					specified, 'yosys-svgviewer' is used to display the schematic.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1115,6 +1196,20 @@ The generated output files are '~/.yosys_show.dot' and '~/.yosys_show.<format>',
 | 
				
			||||||
unless another prefix is specified using -prefix <prefix>.
 | 
					unless another prefix is specified using -prefix <prefix>.
 | 
				
			||||||
\end{lstlisting}
 | 
					\end{lstlisting}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					\section{simplemap -- mapping simple coarse-grain cells}
 | 
				
			||||||
 | 
					\label{cmd:simplemap}
 | 
				
			||||||
 | 
					\begin{lstlisting}[numbers=left,frame=single]
 | 
				
			||||||
 | 
					    simplemap [selection]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This pass maps a small selection of simple coarse-grain cells to yosys gate
 | 
				
			||||||
 | 
					primitives. The following internal cell types are mapped by this pass:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  $not, $pos, $bu0, $and, $or, $xor, $xnor
 | 
				
			||||||
 | 
					  $reduce_and, $reduce_or, $reduce_xor, $reduce_xnor, $reduce_bool
 | 
				
			||||||
 | 
					  $logic_not, $logic_and, $logic_or, $mux
 | 
				
			||||||
 | 
					  $sr, $dff, $dffsr, $adff, $dlatch
 | 
				
			||||||
 | 
					\end{lstlisting}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
\section{splitnets -- split up multi-bit nets}
 | 
					\section{splitnets -- split up multi-bit nets}
 | 
				
			||||||
\label{cmd:splitnets}
 | 
					\label{cmd:splitnets}
 | 
				
			||||||
\begin{lstlisting}[numbers=left,frame=single]
 | 
					\begin{lstlisting}[numbers=left,frame=single]
 | 
				
			||||||
| 
						 | 
					@ -1131,6 +1226,20 @@ This command splits multi-bit nets into single-bit nets.
 | 
				
			||||||
        also split module ports. per default only internal signals are split.
 | 
					        also split module ports. per default only internal signals are split.
 | 
				
			||||||
\end{lstlisting}
 | 
					\end{lstlisting}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					\section{stat -- print some statistics}
 | 
				
			||||||
 | 
					\label{cmd:stat}
 | 
				
			||||||
 | 
					\begin{lstlisting}[numbers=left,frame=single]
 | 
				
			||||||
 | 
					    stat [options] [selection]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Print some statistics (number of objects) on the selected portion of the
 | 
				
			||||||
 | 
					design.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    -top <module>
 | 
				
			||||||
 | 
					        print design hierarchy with this module as top. if the design is fully
 | 
				
			||||||
 | 
					        selected and a module has the 'top' attribute set, this module is used
 | 
				
			||||||
 | 
					        default value for this option.
 | 
				
			||||||
 | 
					\end{lstlisting}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
\section{submod -- moving part of a module to a new submodule}
 | 
					\section{submod -- moving part of a module to a new submodule}
 | 
				
			||||||
\label{cmd:submod}
 | 
					\label{cmd:submod}
 | 
				
			||||||
\begin{lstlisting}[numbers=left,frame=single]
 | 
					\begin{lstlisting}[numbers=left,frame=single]
 | 
				
			||||||
| 
						 | 
					@ -1202,7 +1311,7 @@ The following commands are executed by this synthesis command:
 | 
				
			||||||
        clean
 | 
					        clean
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    map_cells:
 | 
					    map_cells:
 | 
				
			||||||
        techmap -map <share_dir>/xilinx/cells.v
 | 
					        techmap -share_map xilinx/cells.v
 | 
				
			||||||
        clean
 | 
					        clean
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    clkbuf:
 | 
					    clkbuf:
 | 
				
			||||||
| 
						 | 
					@ -1214,7 +1323,7 @@ The following commands are executed by this synthesis command:
 | 
				
			||||||
        iopadmap -outpad OBUF I:O -inpad IBUF O:I @xilinx_nonclocks
 | 
					        iopadmap -outpad OBUF I:O -inpad IBUF O:I @xilinx_nonclocks
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    edif:
 | 
					    edif:
 | 
				
			||||||
        write_edif -top <top> synth.edif
 | 
					        write_edif synth.edif
 | 
				
			||||||
\end{lstlisting}
 | 
					\end{lstlisting}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
\section{tcl -- execute a TCL script file}
 | 
					\section{tcl -- execute a TCL script file}
 | 
				
			||||||
| 
						 | 
					@ -1246,12 +1355,26 @@ file.
 | 
				
			||||||
        transforms the internal RTL cells to the internal gate
 | 
					        transforms the internal RTL cells to the internal gate
 | 
				
			||||||
        library.
 | 
					        library.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    -share_map filename
 | 
				
			||||||
 | 
					        like -map, but look for the file in the share directory (where the
 | 
				
			||||||
 | 
					        yosys data files are). this is mainly used internally when techmap
 | 
				
			||||||
 | 
					        is called from other commands.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    -D <define>, -I <incdir>
 | 
				
			||||||
 | 
					        this options are passed as-is to the verilog frontend for loading the
 | 
				
			||||||
 | 
					        map file. Note that the verilog frontend is also called with the
 | 
				
			||||||
 | 
					        '-ignore_redef' option set.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
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.
 | 
					match cells with a type that match the text value of this attribute. Otherwise
 | 
				
			||||||
 | 
					the module name will be used to match the cell.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					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.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
All wires in the modules from the map file matching the pattern _TECHMAP_*
 | 
					All wires in the modules from the map file matching the pattern _TECHMAP_*
 | 
				
			||||||
or *._TECHMAP_* are special wires that are used to pass instructions from
 | 
					or *._TECHMAP_* are special wires that are used to pass instructions from
 | 
				
			||||||
the mapping module to the techmap command. At the moment the following spoecial
 | 
					the mapping module to the techmap command. At the moment the following special
 | 
				
			||||||
wires are supported:
 | 
					wires are supported:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    _TECHMAP_FAIL_
 | 
					    _TECHMAP_FAIL_
 | 
				
			||||||
| 
						 | 
					@ -1273,6 +1396,13 @@ wires are supported:
 | 
				
			||||||
        wire to start out as non-constant and evaluate to a constant value
 | 
					        wire to start out as non-constant and evaluate to a constant value
 | 
				
			||||||
        during processing of other _TECHMAP_DO_* commands.
 | 
					        during processing of other _TECHMAP_DO_* commands.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					In addition to this special wires, techmap also supports special parameters in
 | 
				
			||||||
 | 
					modules in the map file:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    _TECHMAP_CELLTYPE_
 | 
				
			||||||
 | 
					        When a parameter with this name exists, it will be set to the type name
 | 
				
			||||||
 | 
					        of the cell that matches the module.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
When a module in the map file has a parameter where the according cell in the
 | 
					When a module in the map file has a parameter where the according cell in the
 | 
				
			||||||
design has a port, the module from the map file is only used if the port in
 | 
					design has a port, the module from the map file is only used if the port in
 | 
				
			||||||
the design is connected to a constant value. The parameter is then set to the
 | 
					the design is connected to a constant value. The parameter is then set to the
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue