mirror of
https://github.com/YosysHQ/yosys
synced 2025-08-31 07:14:55 +00:00
Docs: Split gate-level cells into subpages
This commit is contained in:
parent
b0bc29e215
commit
5473b60aec
6 changed files with 431 additions and 382 deletions
105
docs/source/cell/gate_reg_latch.rst
Normal file
105
docs/source/cell/gate_reg_latch.rst
Normal file
|
@ -0,0 +1,105 @@
|
|||
.. role:: verilog(code)
|
||||
:language: Verilog
|
||||
|
||||
Latch cells
|
||||
-----------
|
||||
|
||||
The cell types `$_DLATCH_N_` and `$_DLATCH_P_` represent d-type latches.
|
||||
|
||||
.. table:: Cell types for basic latches
|
||||
|
||||
======================================= =============
|
||||
Verilog Cell Type
|
||||
======================================= =============
|
||||
:verilog:`always @* if (!E) Q <= D` `$_DLATCH_N_`
|
||||
:verilog:`always @* if (E) Q <= D` `$_DLATCH_P_`
|
||||
======================================= =============
|
||||
|
||||
The cell types ``$_DLATCH_[NP][NP][01]_`` implement d-type latches with reset.
|
||||
The values in the table for these cell types relate to the following Verilog
|
||||
code template:
|
||||
|
||||
.. code-block:: verilog
|
||||
:force:
|
||||
|
||||
always @*
|
||||
if (R == RST_LVL)
|
||||
Q <= RST_VAL;
|
||||
else if (E == EN_LVL)
|
||||
Q <= D;
|
||||
|
||||
.. table:: Cell types for gate level logic networks (latches with reset)
|
||||
:name: tab:CellLib_gates_adlatch
|
||||
|
||||
============= ============== ============== ===============
|
||||
:math:`EnLvl` :math:`RstLvl` :math:`RstVal` Cell Type
|
||||
============= ============== ============== ===============
|
||||
``0`` ``0`` ``0`` `$_DLATCH_NN0_`
|
||||
``0`` ``0`` ``1`` `$_DLATCH_NN1_`
|
||||
``0`` ``1`` ``0`` `$_DLATCH_NP0_`
|
||||
``0`` ``1`` ``1`` `$_DLATCH_NP1_`
|
||||
``1`` ``0`` ``0`` `$_DLATCH_PN0_`
|
||||
``1`` ``0`` ``1`` `$_DLATCH_PN1_`
|
||||
``1`` ``1`` ``0`` `$_DLATCH_PP0_`
|
||||
``1`` ``1`` ``1`` `$_DLATCH_PP1_`
|
||||
============= ============== ============== ===============
|
||||
|
||||
The cell types ``$_DLATCHSR_[NP][NP][NP]_`` implement d-type latches with set
|
||||
and reset. The values in the table for these cell types relate to the following
|
||||
Verilog code template:
|
||||
|
||||
.. code-block:: verilog
|
||||
:force:
|
||||
|
||||
always @*
|
||||
if (R == RST_LVL)
|
||||
Q <= 0;
|
||||
else if (S == SET_LVL)
|
||||
Q <= 1;
|
||||
else if (E == EN_LVL)
|
||||
Q <= D;
|
||||
|
||||
.. table:: Cell types for gate level logic networks (latches with set and reset)
|
||||
:name: tab:CellLib_gates_dlatchsr
|
||||
|
||||
============= ============== ============== =================
|
||||
:math:`EnLvl` :math:`SetLvl` :math:`RstLvl` Cell Type
|
||||
============= ============== ============== =================
|
||||
``0`` ``0`` ``0`` `$_DLATCHSR_NNN_`
|
||||
``0`` ``0`` ``1`` `$_DLATCHSR_NNP_`
|
||||
``0`` ``1`` ``0`` `$_DLATCHSR_NPN_`
|
||||
``0`` ``1`` ``1`` `$_DLATCHSR_NPP_`
|
||||
``1`` ``0`` ``0`` `$_DLATCHSR_PNN_`
|
||||
``1`` ``0`` ``1`` `$_DLATCHSR_PNP_`
|
||||
``1`` ``1`` ``0`` `$_DLATCHSR_PPN_`
|
||||
``1`` ``1`` ``1`` `$_DLATCHSR_PPP_`
|
||||
============= ============== ============== =================
|
||||
|
||||
The cell types ``$_SR_[NP][NP]_`` implement sr-type latches. The values in the
|
||||
table for these cell types relate to the following Verilog code template:
|
||||
|
||||
.. code-block:: verilog
|
||||
:force:
|
||||
|
||||
always @*
|
||||
if (R == RST_LVL)
|
||||
Q <= 0;
|
||||
else if (S == SET_LVL)
|
||||
Q <= 1;
|
||||
|
||||
.. table:: Cell types for gate level logic networks (SR latches)
|
||||
:name: tab:CellLib_gates_sr
|
||||
|
||||
============== ============== ==========
|
||||
:math:`SetLvl` :math:`RstLvl` Cell Type
|
||||
============== ============== ==========
|
||||
``0`` ``0`` `$_SR_NN_`
|
||||
``0`` ``1`` `$_SR_NP_`
|
||||
``1`` ``0`` `$_SR_PN_`
|
||||
``1`` ``1`` `$_SR_PP_`
|
||||
============== ============== ==========
|
||||
|
||||
.. autocellgroup:: reg_latch
|
||||
:members:
|
||||
:source:
|
||||
:linenos:
|
Loading…
Add table
Add a link
Reference in a new issue