[Libre-soc-bugs] [Bug 583] New: Implement simple VL for-loop in nMigen for TestIssuer
    bugzilla-daemon at libre-soc.org 
    bugzilla-daemon at libre-soc.org
       
    Tue Jan 26 11:47:40 GMT 2021
    
    
  
https://bugs.libre-soc.org/show_bug.cgi?id=583
            Bug ID: 583
           Summary: Implement simple VL for-loop in nMigen for TestIssuer
           Product: Libre-SOC's first SoC
           Version: unspecified
          Hardware: PC
               URL: https://libre-soc.org/openpower/sv/implementation/
                OS: Linux
            Status: IN_PROGRESS
          Severity: enhancement
          Priority: ---
         Component: Source Code
          Assignee: cestrauss at gmail.com
          Reporter: cestrauss at gmail.com
                CC: libre-soc-bugs at lists.libre-soc.org
   NLnet milestone: ---
The goal is to implement the following pseudo-code
   for i = 0 to VL-1:
       GPR(RT+i) = GPR(RA+i) + GPR(RB+i)
The tasks are:
1) add SVSTATE as an SPR
2) augment PowerDecoder to decode the SVP64 prefix
3) augment the TestIssuer FSM to:
    a) if a SVP64 prefix was decoded, read and decode the next word, before
really issuing the instruction
    b) issue the instruction and wait for completion.
    c) If any source or destination was a vector, keep issuing the instruction
and increment SVSTATE.srcstep. Break when it reaches VL-1
    d) set SVSTATE.srcstep to zero again
4) modify the read/write point in the regfile to add SVSTATE.srcstep to
the reg number
5) add SETVL instruction
6) figure out how to deal with exceptions in the middle of a vector
instruction:
   a) save the SVSTATE before entering an exception.
   b) when exiting, restore SVSTATE, while setting the PC to the current
instruction, so it's decoded and issued again.
-- 
You are receiving this mail because:
You are on the CC list for the bug.
    
    
More information about the libre-soc-bugs
mailing list