applet.interface.jtag_xvc: new applet.
by whitequark 13 hours 42 min
ba09c73d
cli: remove redundant warning. This is a leftover from a previous commit that made this warning the responsibility of the applet class.
by whitequark 16 hours 47 min
8ad903a9
manual: reorder applet sub-indices.
by whitequark 18 hours 35 min
5f19bed9
applet.internal.benchmark: migrate to V2 API.
by Wanda 1 day 3 hours
e3d51bdf
hardware.assembly: fix `HardwareInOutPipe.reset`.
by Wanda 18 hours 5 min
13614df4
software: update firmware.
by whitequark 22 hours 58 min
3651b66b
firmware: reset FPGA side FIFOs automatically (-61 bytes XRAM). This commit ties together several changes that align the way FIFOs work with the new API with the way the firmware treats FIFOs. With new API, applets can request up to 4 independent pipes: two OUT and two IN. There is no inherent ties between any of the pipes, in particular they are not paired as IN+OUT. Until this commit, the gateware would pair pipes into interfaces: one IN+OUT pair per interface. After this commit, each endpoint gets its own interface, independent from all others. Moreover, the firmware is now aware of a pipe reset register in the FPGA, and will reset a pipe in response to the standard Set Interface command. This command would already clear buffers in the FX2, and for correctness it is necessary to reset the complementary buffers in the FPGA too; until now this was the responsibility of the host software, which made using the Glasgow hardware with non-Glasgow software rather annoying. (Even while it is not supported, we don't want to make it painful.) Until this commit, the hardware assembly would create a global reset register, and apply `ResetInserter` to every added submodule. This was not robust: due to Amaranth issues, it is less reliable than adding a clock domain per applet (`ResetValue()` only looks at the domain reset, not any added reset), and it made it impossible to a single applet individually in a multiple applet configuration. After this commit, an applet is reset whenever *any* of the pipes connected to it are reset. (Also, pipes gain a `reset()` method.) While a bit limited, this approach avoids needing to introduce applet resets explicitly, at least for most applets which are controlled via a pipe. The approach of offering two configurations (one with four EPs and one with two EPs) is unchanged, with all of its upsides and downsides.
by whitequark 23 hours 43 min
b8b10014
cli: eliminate noise on Ctrl+C. This try..except* block forgotten in an earlier commit.
by whitequark 21 hours 43 min
f9412012
applet.interface.jtag_pinout: migrate to V2 API.
by Wanda 1 day 2 hours
4545bfe4
gateware.cobs: don't lose NUL bytes writing end marker into full FIFO. Discovered-by: @attie
by whitequark 1 day 4 hours
d38ed219
Report a bug