3
0
Fork 0
mirror of https://github.com/YosysHQ/yosys synced 2025-09-08 18:51:28 +00:00

Docs: Update for properties

Add properties page, move cell_gate and cell_word under a singular cell_index along with properties.  Fix links accordingly.

Also drop x-aware and x-output todos since they are resolved.
This commit is contained in:
Krystine Sherwin 2024-09-06 15:40:22 +12:00
parent 4d84d7e69f
commit e40134c856
No known key found for this signature in database
9 changed files with 34 additions and 18 deletions

View file

@ -0,0 +1,25 @@
.. _sec:celllib_gates:
Gate-level cells
----------------
For gate level logic networks, fixed function single bit cells are used that do
not provide any parameters.
Simulation models for these cells can be found in the file
:file:`techlibs/common/simcells.v` in the Yosys source tree.
In most cases gate level logic networks are created from RTL networks using the
techmap pass. The flip-flop cells from the gate level logic network can be
mapped to physical flip-flop cells from a Liberty file using the dfflibmap pass.
The combinatorial logic cells can be mapped to physical cells from a Liberty
file via ABC using the abc pass.
.. toctree::
:maxdepth: 2
/cell/gate_comb_simple
/cell/gate_comb_combined
/cell/gate_reg_ff
/cell/gate_reg_latch
/cell/gate_other

View file

@ -0,0 +1,29 @@
Word-level cells
----------------
Most of the RTL cells closely resemble the operators available in HDLs such as
Verilog or VHDL. Therefore Verilog operators are used in the following sections
to define the behaviour of the RTL cells.
Note that all RTL cells have parameters indicating the size of inputs and
outputs. When passes modify RTL cells they must always keep the values of these
parameters in sync with the size of the signals connected to the inputs and
outputs.
Simulation models for the RTL cells can be found in the file
:file:`techlibs/common/simlib.v` in the Yosys source tree.
.. toctree::
:maxdepth: 2
/cell/word_unary
/cell/word_binary
/cell/word_mux
/cell/word_reg
/cell/word_mem
/cell/word_fsm
/cell/word_arith
/cell/word_spec
/cell/word_formal
/cell/word_debug
/cell/word_wire

View file

@ -0,0 +1,18 @@
Cell properties
---------------
.. TODO:: Fill :cell:ref:`is_evaluable`
.. cell:defprop:: is_evaluable
.. cell:defprop:: x-aware
Some passes will treat these cells as the non 'x' aware cell. For example,
during synthesis `$eqx` will typically be treated as `$eq`.
.. cell:defprop:: x-output
These cells can produce 'x' output even if all inputs are defined. For
example, a `$div` cell with ``B=0`` has undefined output.
Refer to the :ref:`propindex` for the list of cells with a given property.

View file

@ -6,16 +6,6 @@ Binary operators
.. TODO:: display cell titles
.. todo:: 'x' aware warning
some passes will treat cell as the non 'x' aware cell, i.e. synthesis; `$eqx`
`$nex` `$bweqx`
.. todo:: 'x' output
shiftx, div, mod, pmux (less-so) can produce 'x' output even if all inputs
are defined
All binary RTL cells have two input ports ``A`` and ``B`` and one output port
``Y``. They also have the following parameters: