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

@ -223,8 +223,8 @@ Cells
Declares a cell, with zero or more attributes, with the given identifier and Declares a cell, with zero or more attributes, with the given identifier and
type in the enclosing module. type in the enclosing module.
Cells perform functions on input signals. See :doc:`/cell_gate` and Cells perform functions on input signals. See :doc:`/cell_index` for a detailed
:doc:`/cell_word` for a detailed list of cell types. list of cell types.
.. code:: BNF .. code:: BNF

View File

@ -16,7 +16,6 @@ The combinatorial logic cells can be mapped to physical cells from a Liberty
file via ABC using the abc pass. file via ABC using the abc pass.
.. toctree:: .. toctree::
:caption: Gate-level cells
:maxdepth: 2 :maxdepth: 2
/cell/gate_comb_simple /cell/gate_comb_simple

View File

@ -15,7 +15,6 @@ Simulation models for the RTL cells can be found in the file
.. toctree:: .. toctree::
:maxdepth: 2 :maxdepth: 2
:glob:
/cell/word_unary /cell/word_unary
/cell/word_binary /cell/word_binary

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:: 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 All binary RTL cells have two input ports ``A`` and ``B`` and one output port
``Y``. They also have the following parameters: ``Y``. They also have the following parameters:

View File

@ -0,0 +1,11 @@
Internal cell library
=====================
.. todo:: brief overview of internal cell library
.. toctree::
:maxdepth: 2
/cell/index_word
/cell/index_gate
/cell/properties

View File

@ -50,6 +50,5 @@ available, go to :ref:`commandindex`.
bib bib
cell_word cell_index
cell_gate
cmd_ref cmd_ref

View File

@ -65,7 +65,7 @@ displayed as rectangles with inputs on the left and outputs on the right side.
The cell labels are two lines long: The first line contains a unique identifier The cell labels are two lines long: The first line contains a unique identifier
for the cell and the second line contains the cell type. Internal cell types are for the cell and the second line contains the cell type. Internal cell types are
prefixed with a dollar sign. For more details on the internal cell library, see prefixed with a dollar sign. For more details on the internal cell library, see
:doc:`/cell_gate` and :doc:`/cell_word`. :doc:`/cell_index`.
Constants are shown as ellipses with the constant value as label. The syntax Constants are shown as ellipses with the constant value as label. The syntax
``<bit_width>'<bits>`` is used for constants that are not 32-bit wide and/or ``<bit_width>'<bits>`` is used for constants that are not 32-bit wide and/or

View File

@ -27,7 +27,7 @@ Constant folding and simple expression rewriting - `opt_expr`
.. todo:: unsure if this is too much detail and should be in :doc:`/yosys_internals/index` .. todo:: unsure if this is too much detail and should be in :doc:`/yosys_internals/index`
This pass performs constant folding on the internal combinational cell types This pass performs constant folding on the internal combinational cell types
described in :doc:`/cell_gate` and :doc:`/cell_word`. This means a cell with all described in :doc:`/cell_index`. This means a cell with all
constant inputs is replaced with the constant value this cell drives. In some constant inputs is replaced with the constant value this cell drives. In some
cases this pass can also optimize cells with some constant inputs. cases this pass can also optimize cells with some constant inputs.