badly-drawn version of diagram with grevlut added (temporary)
authorLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Tue, 17 May 2022 10:13:17 +0000 (11:13 +0100)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Tue, 17 May 2022 10:13:17 +0000 (11:13 +0100)
openpower/sv/bitmanip/grev_gorc_design.mdwn

index 6816db81bf97c8c6267f4f158b65f696833aa3dc..39b62430c42cf8565731b62924dd3ae3db30c91e 100644 (file)
@@ -17,3 +17,10 @@ This gives us our final design:
 Notice how this still has an overall circuit latency that is essentially equivalent to grev's latency (or shift/rotate's latency). Also notice how this circuit allows specifying much more than just `grev` or `gorc` instructions. Layers of XOR gates can be added at the input and output, allowing it to function as a `gandc` instruction too, requiring a total of 6-bits of immediate (1 bit for inverting the input, 1 bit for inverting the output, 4 bits for the look-up-tables).
 
 We will also want versions of `grev` that have the shift amount be an immediate (needed for bitwise reverse and byte reversals and other similar instructions.) The immediate-shift-amount version can be specified to always do a `grev` (or maybe only `grev`/`gorc`) operation to save encoding space, since I'd guess it's much more common than any of the other immediate-shift variants.
+
+# Twin LUT4s
+
+gate-saving of the AND/OR (AOI) can be applied to grevlut. TODO, version
+of diagram in SVG/DIA
+
+<img src="https://ftp.libre-soc.org/2022-05-17_11-05.png" width=800 />