3232 */
3333
3434// --------------------------------------------------------
35-
3635// * ver 2
3736// * title Bit-wise inverter
3837// * group unary
@@ -526,14 +525,12 @@ endgenerate
526525endmodule
527526
528527// --------------------------------------------------------
529-
530528// * ver 2
531529// * title Variable shifter
532530// * group binary
533531// - Performs a right logical shift if the second operand is positive (or
534532// - unsigned), and a left logical shift if it is negative.
535533// -
536-
537534module \$shift (A, B, Y);
538535
539536parameter A_SIGNED = 0 ;
@@ -565,14 +562,12 @@ endgenerate
565562endmodule
566563
567564// --------------------------------------------------------
568-
569565// * ver 2
570566// * title Indexed part-select
571567// * group binary
572568// * tags x-output
573569// - Same as the `$shift` cell, but fills with 'x'.
574570// -
575-
576571module \$shiftx (A, B, Y);
577572
578573parameter A_SIGNED = 0 ;
649644endmodule
650645
651646// --------------------------------------------------------
652-
653647// * ver 2
654648// * title Arithmetic logic unit
655649// * group arith
@@ -839,7 +833,6 @@ endgenerate
839833endmodule
840834
841835// --------------------------------------------------------
842-
843836// * ver 2
844837// * title Case equality
845838// * group binary
@@ -873,7 +866,6 @@ endgenerate
873866endmodule
874867
875868// --------------------------------------------------------
876-
877869// * ver 2
878870// * title Case inequality
879871// * group binary
@@ -1215,7 +1207,6 @@ end
12151207endmodule
12161208
12171209// --------------------------------------------------------
1218-
12191210// * ver 2
12201211// * title Divider
12211212// * group binary
@@ -1246,7 +1237,6 @@ endgenerate
12461237endmodule
12471238
12481239// --------------------------------------------------------
1249-
12501240// * ver 2
12511241// * title Modulo
12521242// * group binary
@@ -1544,8 +1534,12 @@ assign Y = S ? B : A;
15441534endmodule
15451535
15461536// --------------------------------------------------------
1537+ // * ver 2
1538+ // * title Binary-encoded multiplexer
15471539// * group mux
1548-
1540+ // - Selects between 'slices' of A where each value of S corresponds to a unique
1541+ // - slice.
1542+ // -
15491543module \$bmux (A, S, Y);
15501544
15511545parameter WIDTH = 0 ;
@@ -1572,9 +1566,13 @@ endgenerate
15721566endmodule
15731567
15741568// --------------------------------------------------------
1569+ // * ver 2
1570+ // * title Priority-encoded multiplexer
15751571// * group mux
15761572// * tags x-output
1577-
1573+ // - Selects between 'slices' of B where each slice corresponds to a single bit
1574+ // - of S. Outputs A when all bits of S are low.
1575+ // -
15781576module \$pmux (A, B, S, Y);
15791577
15801578parameter WIDTH = 0 ;
@@ -1881,7 +1879,6 @@ endspecify
18811879endmodule
18821880
18831881// --------------------------------------------------------
1884-
18851882// * ver 2
18861883// * title Bit-wise case equality
18871884// * group binary
@@ -1905,7 +1902,11 @@ endgenerate
19051902endmodule
19061903
19071904// --------------------------------------------------------
1905+ // * ver 2
1906+ // * title Bit-wise multiplexer
19081907// * group mux
1908+ // - Equivalent to a series of 1-bit wide `$mux` cells.
1909+ // -
19091910module \$bwmux (A, B, S, Y);
19101911
19111912parameter WIDTH = 0 ;
0 commit comments