[libre-riscv-dev] daily kan-ban update 14may2020
Luke Kenneth Casson Leighton
lkcl at lkcl.net
Thu May 14 15:43:33 BST 2020
On Thu, May 14, 2020 at 3:23 PM Michael Nolan <mtnolan2640 at gmail.com> wrote:
> Yesterday I worked on connecting the rotator from microwatt up to the
> shift/rotate unit, fixing bugs in the rotator, and testing it.
i'm amazed it worked, and also how elegant the microwatt rotator code is.
> Today I might try working on comparisons, but I'm not sure whether they should
> be a part of the alu or a separate FU
i went through the list this morning, and left some TODOs.
cmpb is different from cmp: cmp is definitely based on add (actually,
subtract - but see the notes from execute1.vhdl):
https://github.com/antonblanchard/microwatt/blob/master/execute1.vhdl#L540
cmp is definitely arithmetic, however cmpb feels like it is a
logical-thing (and is in fixedlogical)
https://github.com/antonblanchard/microwatt/blob/master/execute1.vhdl#L657
https://github.com/antonblanchard/microwatt/blob/master/ppc_fx_insns.vhdl#L735
https://github.com/antonblanchard/microwatt/blob/master/helpers.vhdl#L117
btw, you'll like this: because we are doing a parallel processor,
different Function Units *can* actually cover multiple tasks :) let's
not go into that right now, however if we convert power_enum Function
into an unary field (1<<0, 1<<1, 1<<2) then we can, in the CSV files,
set multiple bits.
a good example would be AND and OR and XOR: those are prime candidates
to put into *both* the Logical *and* Arithmetic pipelines. recorded
it for now:
https://bugs.libre-soc.org/show_bug.cgi?id=310
l.
More information about the libre-riscv-dev
mailing list