comment why shift mask exists
authorLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Sat, 15 Feb 2020 11:55:06 +0000 (11:55 +0000)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Sat, 15 Feb 2020 11:55:06 +0000 (11:55 +0000)
src/ieee754/part_shift/part_shift_dynamic.py

index 95f329ed0456233bd3f9366d66b0493347577105..b298271f1d2cb72e7c8608e30008a8ec67233fda 100644 (file)
@@ -55,6 +55,9 @@ class PartitionedDynamicShift(Elaboratable):
         min_bits = math.ceil(math.log2(intervals[0][1] - intervals[0][0]))
         max_bits = math.ceil(math.log2(width))
 
+        # shifts are normally done as (e.g. for 32 bit) result = a & (b&0b11111)
+        # truncating the b input.  however here of course the size of the
+        # partition varies dynamically.
         shifter_masks = []
         for i in range(len(b_intervals)):
             mask = Signal(b_intervals[i].shape(), name="shift_mask%d" % i)