nmigen-soc.git
5 years agocsr.bus.Multiplexer: fix element w_stb getting stuck.
whitequark [Sat, 26 Oct 2019 00:58:27 +0000 (00:58 +0000)]
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.

5 years agowishbone.bus: add Interface.
whitequark [Fri, 25 Oct 2019 21:22:59 +0000 (21:22 +0000)]
wishbone.bus: add Interface.

5 years agocsr.bus.{Multiplexer↔Decoder}
whitequark [Fri, 25 Oct 2019 21:30:46 +0000 (21:30 +0000)]
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.

5 years agocsr.bus: add Multiplexer.
whitequark [Fri, 25 Oct 2019 20:06:23 +0000 (20:06 +0000)]
csr.bus: add Multiplexer.

5 years agotest: silence spurious warning.
whitequark [Fri, 25 Oct 2019 18:44:27 +0000 (18:44 +0000)]
test: silence spurious warning.

5 years agocsr.bus: rewrite using the MemoryMap abstraction.
whitequark [Fri, 25 Oct 2019 18:41:40 +0000 (18:41 +0000)]
csr.bus: rewrite using the MemoryMap abstraction.

5 years agomemory: add a first-class memory map abstraction.
whitequark [Fri, 25 Oct 2019 18:15:34 +0000 (18:15 +0000)]
memory: add a first-class memory map abstraction.

5 years agocsr.bus: use proper enum instead of ad-hoc string enumeration.
whitequark [Fri, 25 Oct 2019 10:54:49 +0000 (10:54 +0000)]
csr.bus: use proper enum instead of ad-hoc string enumeration.

5 years agocsr.bus: drop CSR prefix from class names.
whitequark [Fri, 25 Oct 2019 10:41:07 +0000 (10:41 +0000)]
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.

5 years agocsr.bus: split CSRMultiplexer to CSRInterface+CSRDecoder.
whitequark [Fri, 25 Oct 2019 10:37:03 +0000 (10:37 +0000)]
csr.bus: split CSRMultiplexer to CSRInterface+CSRDecoder.

5 years agocsr.bus: improve comments/docs. NFC.
whitequark [Tue, 22 Oct 2019 03:56:52 +0000 (03:56 +0000)]
csr.bus: improve comments/docs. NFC.

5 years agocsr.bus: add CSRElement and CSRMultiplexer.
whitequark [Mon, 21 Oct 2019 15:05:24 +0000 (15:05 +0000)]
csr.bus: add CSRElement and CSRMultiplexer.

5 years agoAdd __version__ boilerplate.
whitequark [Wed, 16 Oct 2019 15:31:26 +0000 (15:31 +0000)]
Add __version__ boilerplate.

5 years agosetup: update scm_version().
whitequark [Wed, 16 Oct 2019 15:29:13 +0000 (15:29 +0000)]
setup: update scm_version().

5 years agoInitial commit.
whitequark [Fri, 6 Sep 2019 08:58:19 +0000 (08:58 +0000)]
Initial commit.