Converting process blocks

proc - translate processes to netlists

yosys> help proc
proc [options] [selection]
This pass calls all the other proc_* passes in the most common order.

    proc_clean
    proc_rmdead
    proc_prune
    proc_init
    proc_arst
    proc_rom
    proc_mux
    proc_dlatch
    proc_dff
    proc_memwr
    proc_clean
    opt_expr -keepdc

This replaces the processes in the design with multiplexers,
flip-flops and latches.

The following options are supported:
-nomux
Will omit the proc_mux pass.
-norom
Will omit the proc_rom pass.
-global_arst [!]<netname>
This option is passed through to proc_arst.
-ifx
This option is passed through to proc_mux. proc_rmdead is not
executed in -ifx mode.
-noopt
Will omit the opt_expr pass.

Note

Help text automatically generated from passes/proc/proc.cc:29

proc_arst - detect asynchronous resets

yosys> help proc_arst
proc_arst [-global_arst [!]<netname>] [selection]
This pass identifies asynchronous resets in the processes and converts them
to a different internal representation that is suitable for generating
flip-flop cells with asynchronous resets.
-global_arst [!]<netname>
In modules that have a net with the given name, use this net as async
reset for registers that have been assign initial values in their
declaration ('reg foobar = constant_value;'). Use the '!' modifier for
active low reset signals. Note: the frontend stores the default value
in the 'init' attribute on the net.

Note

Help text automatically generated from passes/proc/proc_arst.cc:247

proc_clean - remove empty parts of processes

yosys> help proc_clean
proc_clean [options] [selection]
-quiet
do not print any messages.
This pass removes empty parts of processes and ultimately removes a process
if it contains only empty structures.

Note

Help text automatically generated from passes/proc/proc_clean.cc:179

proc_dff - extract flip-flops from processes

yosys> help proc_dff
proc_dff [selection]
This pass identifies flip-flops in the processes and converts them to
d-type flip-flop cells.

Note

Help text automatically generated from passes/proc/proc_dff.cc:292

proc_dlatch - extract latches from processes

yosys> help proc_dlatch
proc_dlatch [selection]
This pass identifies latches in the processes and converts them to
d-type latches.

Note

Help text automatically generated from passes/proc/proc_dlatch.cc:449

proc_init - convert initial block to init attributes

yosys> help proc_init
proc_init [selection]
This pass extracts the 'init' actions from processes (generated from Verilog
'initial' blocks) and sets the initial value to the 'init' attribute on the
respective wire.

Note

Help text automatically generated from passes/proc/proc_init.cc:76

proc_memwr - extract memory writes from processes

yosys> help proc_memwr
proc_memwr [selection]
This pass converts memory writes in processes into $memwr cells.

Note

Help text automatically generated from passes/proc/proc_memwr.cc:86

proc_mux - convert decision trees to multiplexers

yosys> help proc_mux
proc_mux [options] [selection]
This pass converts the decision trees in processes (originating from if-else
and case statements) to trees of multiplexer cells.
-ifx
Use Verilog simulation behavior with respect to undef values in
'case' expressions and 'if' conditions.

Note

Help text automatically generated from passes/proc/proc_mux.cc:440

proc_prune - remove redundant assignments

yosys> help proc_prune
proc_prune [selection]
This pass identifies assignments in processes that are always overwritten by
a later assignment to the same signal and removes them.

Note

Help text automatically generated from passes/proc/proc_prune.cc:112

proc_rmdead - eliminate dead trees in decision trees

yosys> help proc_rmdead
proc_rmdead [selection]
This pass identifies unreachable branches in decision trees and removes them.

Note

Help text automatically generated from passes/proc/proc_rmdead.cc:133

proc_rom - convert switches to ROMs

yosys> help proc_rom
proc_rom [selection]
This pass converts switches into read-only memories when appropriate.

Note

Help text automatically generated from passes/proc/proc_rom.cc:229