[Libre-soc-dev] data-dependent fail first writing outputs of failing element

Jacob Lifshay programmerjake at gmail.com
Thu Oct 6 21:42:42 BST 2022


On Thu, Oct 6, 2022, 12:30 lkcl via Libre-soc-dev <
libre-soc-dev at lists.libre-soc.org> wrote:

> * have to sort out sv.add/ff because regfile write terminates
>    at VL and so should only write to the penultimate element
>    when VLI is also set.


uuh, actually iirc we agreed that the failing element should always write
all of its outputs. if it is set so VL won't include the failing element,
that VL update will happen *after* writing the failing element's outputs.

see https://bugs.libre-soc.org/show_bug.cgi?id=936

pseudocode for sv.add./ff=... *r8, *r16, *r24:
for i in range(VL):
    reg[8+i] = reg[16+i] + reg[24+i]
    crf[i] = make_crf(reg[8+i], XER.SO)
    if crf[i].eq == fail_eq:
        if excludes_failing_elemrnt:
            VL = i  # VL set *after* failing element writes outputs
        else:
            VL = i + 1
        break

Jacob


More information about the Libre-soc-dev mailing list