[libre-riscv-dev] [Bug 336] ALU CompUnit needs to recognise that RA (src1) can be zero
bugzilla-daemon at libre-soc.org
bugzilla-daemon at libre-soc.org
Thu May 21 22:41:39 BST 2020
https://bugs.libre-soc.org/show_bug.cgi?id=336
--- Comment #3 from Luke Kenneth Casson Leighton <lkcl at lkcl.net> ---
(In reply to Cesar Strauss from comment #2)
> Dear Luke,
>
> Please do not bother drawing a gate level diagram for the FSM. Your
> description is enough.
we need one for the documentation, which is an extremely important aspect of
this project.
plus i find it very difficult to think of timing related designs without a gate
level drawing.
as in i literally can't write these FSMs without one (!)
this one is wrong (imm needs muxing)
https://libre-soc.org/3d_gpu/compunit_multi_rw.jpg
the imm mux path in this one is correct
https://libre-soc.org/3d_gpu/ld_st_comp_unit.jpg
immed mode hooks RD_REQ2, switching it off.
> For the dataflow (registers, ALU, muxes), yes, a diagram is useful, but do
> represent the whole FSM as an empty box.
>
> I find that I can better design an FSM by starting from a behavioral
> description,
then comment 1 should do the trick?
RD_REQ1 (rd.req[0]) needs to be disabled if oper_i.zero_a is set, and src_i[0]
set to zero in all 64 bits.
> preferably in the form of a timing diagram.
i am used to examining those, drawing them not so much.
> If you like, you can draw one in paper, of what you want to see in the
> GTKWave window. With arrows linking what edge causes which transition in
> another signal.
>
> What do you think?
i can give it a shot once i am confident with the gate level.
are you ok to go via the description for now?
--
You are receiving this mail because:
You are on the CC list for the bug.
More information about the libre-riscv-dev
mailing list