[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