[libre-riscv-dev] buffered pipeline

Luke Kenneth Casson Leighton lkcl at lkcl.net
Fri Mar 22 10:26:45 GMT 2019


        # Normalisation, Rounding Corrections, Pack - in a chain
        nmod = FPNorm1ModSingle(self.width, self.id_wid)
        rmod = FPRoundMod(self.width, self.id_wid)
        cmod = FPCorrectionsMod(self.width, self.id_wid)
        pmod = FPPackMod(self.width, self.id_wid)
        chain = StageChain([nmod, rmod, cmod, pmod])
        chain.setup(m, i)
        self.out_z = pmod.ospec()

        m.d.sync += self.out_z.mid.eq(pmod.o.mid)
        m.d.sync += self.out_z.z.v.eq(pmod.o.z.v) # outputs packed result

COOL!  woo!  3 daaays of painful 5-10 line modifications, eeeventually
i've been able to chain 4 stages together without awful by-hand
linkage.

dang.

l.



More information about the libre-riscv-dev mailing list