[Libre-soc-bugs] [Bug 762] Peripheral Pin Muxing Development

bugzilla-daemon at libre-soc.org bugzilla-daemon at libre-soc.org
Tue May 24 15:56:38 BST 2022


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

--- Comment #27 from Andrey Miroshnikov <andrey at technepisteme.xyz> ---
(In reply to Luke Kenneth Casson Leighton from comment #26)
> replace with:
> 
>   93         comb += wb_rd_data.eq(Cat(*rd_multi))
>   94         for i in range(len(bus.sel)):
>                   sync += rd_multi[i].eq(0)
Yes! Thanks for the simplification.

> NO.  again, you are creating a 2-clock situation where bus.we will
> be ***INVALID*** at the time new_transaction is raised.
> ...
> the entirety of the wishbone transaction is
> ***ONLY VALID AT THE CYCLE IT OCCURS***
> 
> look again at the WB4 specification PDF.  how on earth can the specification
> be complied with if new_transaction is raised to indicate "please only read
> wb.we on the **NEXT** cycle"??
> ...
> yes it has taken me at least one year to fully understand this, you are
> not alone in getting it wrong.  it is an absolute pig.
Yes, after you explanation and re-reading the spec, it makes sense.
Thanks for drilling it in!

Given that the intermediate signals are now combinatorial, the reading/writing
of GPIO reg's can be done in the cycle where the slave detects the master's
transaction. No "new_transaction" signals anymore.

https://git.libre-soc.org/?p=pinmux.git;a=commitdiff;h=70a9e00ebc3873399d36cfd45a555121dc9ce8ef

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


More information about the libre-soc-bugs mailing list