[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
Sun May 24 15:37:24 BST 2020


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

--- Comment #15 from Cesar Strauss <cestrauss at gmail.com> ---
Found this:

https://git.libre-soc.org/?p=soc.git;a=blob;f=src/soc/experiment/compalu_multi.py;h=75df2153517ecd733cd5270776e88d76b8df5d06;hb=HEAD#l213

    name = "data_r%d" % i
    data_r = Signal(self.cu._get_srcwid(i), name=name, reset_less=True)
    latchregister(m, self.get_out(i), data_r, req_l.q[i], name)

We are giving the same name for two things, the output signal of the
latchregister, and its internal DFF (given by the function parameter). nMigen
will append "$1" to one of them, but which?

Can we go and choose a name, given to its internal DFF, different from its
output, in this and similar cases?

Also:

https://git.libre-soc.org/?p=soc.git;a=blob;f=src/soc/experiment/compalu_multi.py;h=75df2153517ecd733cd5270776e88d76b8df5d06;hb=HEAD#l208

    latchregister(m, self.oper_i, oper_r, self.issue_i, "oper_r")

In this case, as it happens, oper_r sub-signals do not receive names that begin
with "oper_r". So, what receives the "oper_r" name is actually the internal
DFF, which confused me at no end on the GTKWave timing diagram. This is how I
found this issue.

-- 
You are receiving this mail because:
You are on the CC list for the bug.


More information about the libre-riscv-dev mailing list