add TODO comments on Logical pipeline
authorLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Thu, 14 May 2020 10:04:04 +0000 (11:04 +0100)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Thu, 14 May 2020 10:04:04 +0000 (11:04 +0100)
src/soc/alu/main_stage.py
src/soc/logical/main_stage.py

index 71fa1f9dd2e2c5b9d36470498a4ee3dee2daa6b1..456e652fe3770b0399b862285898661dae1a4927 100644 (file)
@@ -1,6 +1,6 @@
 # This stage is intended to do most of the work of executing the Arithmetic
 # instructions. This would be like the additions, compares, and sign-extension
-# and shifting, as well as carry and overflow generation. This module
+# as well as carry and overflow generation. This module
 # however should not gate the carry or overflow, that's up to the
 # output stage
 from nmigen import (Module, Signal, Cat, Repl, Mux, Const)
@@ -10,7 +10,6 @@ from ieee754.part.partsig import PartitionedSignal
 from soc.decoder.power_enums import InternalOp
 
 
-
 class ALUMainStage(PipeModBase):
     def __init__(self, pspec):
         super().__init__(pspec, "main")
index 622216bbf5c8d9f80e1ad04f0903f5b27e0f7102..7b43cf3112510821defa46969a266f3c65aa0dcd 100644 (file)
@@ -1,7 +1,7 @@
 # This stage is intended to do most of the work of executing Logical
-# instructions. This is OR, AND and XOR, however input and output
-# stages also perform bit-negation on input(s) and output, as well as
-# carry and overflow generation.
+# instructions. This is OR, AND, XOR, POPCNT, PRTY, CMPB, BPERMD, CNTLZ
+# however input and output stages also perform bit-negation on input(s)
+# and output, as well as carry and overflow generation.
 # This module however should not gate the carry or overflow, that's up
 # to the output stage
 
@@ -41,6 +41,12 @@ class LogicalMainStage(PipeModBase):
             # TODO with m.Case(InternalOp.OP_POPCNT):
             ###### parity #######
             # TODO with m.Case(InternalOp.OP_PRTY):
+            ###### cmpb #######
+            # TODO with m.Case(InternalOp.OP_CMPB):
+            ###### cntlz #######
+            # TODO with m.Case(InternalOp.OP_CNTZ):
+            ###### bpermd #######
+            # TODO with m.Case(InternalOp.OP_BPERM): - not in microwatt
 
         ###### sticky overflow and context, both pass-through #####