csr.bus.Multiplexer: fix element w_stb getting stuck.
Also, don't clear shadow; this would break e.g. reading a 64-bit
CSR register through a 32-bit Wishbone bus if a code fetch happens
between the halves. Instead, clear shadow enable flag driving OR-mux.
wishbone.bus: add Interface.
csr.bus.{Multiplexer↔Decoder}
This reverses the rename done in commit
5520e0d7. Commit
2a634b3a
introduced a Multiplexer that doesn't actually do multiplexing, so
revert that to make everything less confusing.
csr.bus: add Multiplexer.
test: silence spurious warning.
csr.bus: rewrite using the MemoryMap abstraction.
memory: add a first-class memory map abstraction.
csr.bus: use proper enum instead of ad-hoc string enumeration.
csr.bus: drop CSR prefix from class names.
Application code should use Python imports similar to:
from nmigen_soc import csr
...
decoder = csr.Decoder(...)
thus achieving the same effect with less namespace pollution.
csr.bus: split CSRMultiplexer to CSRInterface+CSRDecoder.
csr.bus: improve comments/docs. NFC.
csr.bus: add CSRElement and CSRMultiplexer.
Add __version__ boilerplate.
setup: update scm_version().
Initial commit.