[Libre-soc-bugs] [Bug 340] formal proof of POWER9 SHIFTROT pipeline needed
    bugzilla-daemon at libre-soc.org 
    bugzilla-daemon at libre-soc.org
       
    Tue Aug  4 03:49:11 BST 2020
    
    
  
https://bugs.libre-soc.org/show_bug.cgi?id=340
--- Comment #18 from Samuel A. Falvo II <kc5tja at arrl.net> ---
(In reply to Luke Kenneth Casson Leighton from comment #17)
> remember that you also need, when doing &, to invert it.
> 
> check rotator.py closely, again.
I did check this file, but I don't see where the mask is inverted.  The closest
thing I can find to an inversion is this:
            with m.Case(0b00):
                comb += self.result_o.eq((rot & (mr & ml)) | (ra & ~(mr & ml)))
            with m.Case(0b01):
                comb += self.result_o.eq((rot & (mr | ml)) | (ra & ~(mr | ml)))
where bits from the un-rotated RA value are mixed into the final output via the
negated mask.  I'm already doing that in the proof.  Inverting mask bits when
MB > ME also contradicts the definition of the MASK() operation, documented on
page 6 of Book I.
> MASK() which is the function back in the soec, very early on, is really
> unclear to me, unfortunately.  you might be able to make sense of it.
Based on my understanding of how rwlinm, et. al. seem to work (per the specs),
MASK() takes a start and end position, in IBM bit position notation.  Starting
at bit x (start), the mask contains 1 bits.  It ends (optionally wrapping) at
bit y (end).  All other bits are 0.  So, let's pretend I'm using an 8-bit mask;
then,
  MASK(1,7) = 0b01111111
  MASK(7,1) = 0b11000001
  MASK(3,4) = 0b00011000
  MASK(4,3) = 0b11111111
---
I apologize for taking so long on this.  This is a real mind-bender for me. 
I'm increasingly inclined to put this task aside and work on something else; it
seems intractable for my skill level.  I'm frustrated that I've been going on a
week, and nothing to really show for it.
-- 
You are receiving this mail because:
You are on the CC list for the bug.
    
    
More information about the libre-soc-bugs
mailing list