[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


            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

   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