diff --git a/docs/source/cell/word_arith.rst b/docs/source/cell/word_arith.rst index 38111a7d5..eb1bfdada 100644 --- a/docs/source/cell/word_arith.rst +++ b/docs/source/cell/word_arith.rst @@ -1,6 +1,8 @@ Coarse arithmetics ------------------ +.. todo:: Add information about `$alu`, `$fa`, and `$lcu` cells. + Multiply-accumulate ~~~~~~~~~~~~~~~~~~~ diff --git a/docs/source/cell/word_binary.rst b/docs/source/cell/word_binary.rst index 47a847ee4..68bc5a3aa 100644 --- a/docs/source/cell/word_binary.rst +++ b/docs/source/cell/word_binary.rst @@ -4,6 +4,8 @@ Binary operators ~~~~~~~~~~~~~~~~ +.. todo:: Add detail on ``$*x`` cells, `$eqx`, `$nex`, `$bweqx`, `$shiftx` + All binary RTL cells have two input ports ``A`` and ``B`` and one output port ``Y``. They also have the following parameters: diff --git a/docs/source/cell/word_formal.rst b/docs/source/cell/word_formal.rst index 81bab8988..ae0f56025 100644 --- a/docs/source/cell/word_formal.rst +++ b/docs/source/cell/word_formal.rst @@ -12,3 +12,11 @@ Formal verification cells :members: :source: :linenos: + +Formal support cells +~~~~~~~~~~~~~~~~~~~~ + +.. autocellgroup:: formal_tag + :members: + :source: + :linenos: diff --git a/docs/source/cell/word_wire.rst b/docs/source/cell/word_wire.rst new file mode 100644 index 000000000..0434cceae --- /dev/null +++ b/docs/source/cell/word_wire.rst @@ -0,0 +1,9 @@ +Wire cells +------------------------- + +.. todo:: Add information about `$slice` and `$concat` cells. + +.. autocellgroup:: wire + :members: + :source: + :linenos: diff --git a/docs/source/cell_word.rst b/docs/source/cell_word.rst index a736801fa..3c87d9913 100644 --- a/docs/source/cell_word.rst +++ b/docs/source/cell_word.rst @@ -27,10 +27,10 @@ Simulation models for the RTL cells can be found in the file /cell/word_spec /cell/word_formal /cell/word_debug + /cell/word_wire -.. todo:: Add information about `$slice` and `$concat` cells. - -.. todo:: Add information about `$alu`, `$fa`, and `$lcu` cells. +.. this should raise a warning, otherwise there are word-level cells without a + 'group' tag .. autocellgroup:: word_other :caption: Other word-level cells diff --git a/techlibs/common/simlib.v b/techlibs/common/simlib.v index d567b7b0b..a954b64ec 100644 --- a/techlibs/common/simlib.v +++ b/techlibs/common/simlib.v @@ -585,7 +585,7 @@ endgenerate endmodule // -------------------------------------------------------- - +//* group arith module \$fa (A, B, C, X, Y); parameter WIDTH = 1; @@ -1477,7 +1477,7 @@ endgenerate endmodule // -------------------------------------------------------- - +//* group wire module \$slice (A, Y); parameter OFFSET = 0; @@ -1492,10 +1492,10 @@ assign Y = A >> OFFSET; endmodule // -------------------------------------------------------- - // |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---| //- //- $concat (A, B, Y) +//* group wire //- //- Concatenation of inputs into a single output ( Y = {B, A} ). //- @@ -1870,7 +1870,7 @@ endspecify endmodule // -------------------------------------------------------- - +//* group binary module \$bweqx (A, B, Y); parameter WIDTH = 0; @@ -1888,7 +1888,7 @@ endgenerate endmodule // -------------------------------------------------------- - +//* group mux module \$bwmux (A, B, S, Y); parameter WIDTH = 0; @@ -3004,7 +3004,7 @@ endmodule `endif // -------------------------------------------------------- - +//* group formal_tag module \$set_tag (A, SET, CLR, Y); parameter TAG = ""; @@ -3020,7 +3020,7 @@ assign Y = A; endmodule // -------------------------------------------------------- - +//* group formal_tag module \$get_tag (A, Y); parameter TAG = ""; @@ -3034,7 +3034,7 @@ assign Y = A; endmodule // -------------------------------------------------------- - +//* group formal_tag module \$overwrite_tag (A, SET, CLR); parameter TAG = ""; @@ -3047,7 +3047,7 @@ input [WIDTH-1:0] CLR; endmodule // -------------------------------------------------------- - +//* group formal_tag module \$original_tag (A, Y); parameter TAG = ""; @@ -3061,7 +3061,7 @@ assign Y = A; endmodule // -------------------------------------------------------- - +//* group formal_tag module \$future_ff (A, Y); parameter WIDTH = 0; @@ -3074,7 +3074,7 @@ assign Y = A; endmodule // -------------------------------------------------------- - +//* group debug (* noblackbox *) module \$scopeinfo ();