Commit Graph

10 Commits

Author SHA1 Message Date
Sean Anderson 12b98c8d46 doc: Move interface documentation to its own document
This is more detailed technical documentation, and doesn't really need
to go at the top-level.

Signed-off-by: Sean Anderson <seanga2@gmail.com>
2023-03-15 15:00:50 -04:00
Sean Anderson d150d88249 README: Add a section on licensing
Add a section documenting the license used for this project.

Signed-off-by: Sean Anderson <seanga2@gmail.com>
2023-03-15 14:58:14 -04:00
Sean Anderson d5717a3053 doc: Add an index page
Add an index page linking to the rest of the documentation (cuyrrently
just one document).

Signed-off-by: Sean Anderson <seanga2@gmail.com>
2023-03-15 14:27:42 -04:00
Sean Anderson 52bc62814e Add wishbone register
This module registers all signals on a wishbone bus. This increases
latency/decreases throughput, but the wishbone cores here are just for
management, so that's not really critical.

Signed-off-by: Sean Anderson <seanga2@gmail.com>
2023-03-06 22:00:41 -05:00
Sean Anderson 924079cabd Add reset synchronizer
Add a reset synchronizer to ensure synchronous reset release. There is
also a glitch filter to reject spurious resets. It will reject pulses
shorter than 5 ns (or around 1.25 ns per LUT).

Signed-off-by: Sean Anderson <seanga2@gmail.com>
2023-03-05 16:59:17 -05:00
Sean Anderson 5f331a403c Add UART-WIshbone bridge
Add a basic bridge for debugging. It's around 50% efficient, but this
could be increased to 66% with the addition of some FIFOs. The limiting
factor is the constant overhead of the request/status bytes. If we used
a wider bus, we could get better efficiency.

Signed-off-by: Sean Anderson <seanga2@gmail.com>
2023-03-05 14:59:24 -05:00
Sean Anderson 75142311f2 Add AXIS-Wishbone bridge
This adds the core of the UART-Wishbone bridge. The protocol has
a variable-length address phase to help reduce overhead. Multiple
in-flight commands are not supported, although this could be resolved
with some FIFOs.

Signed-off-by: Sean Anderson <seanga2@gmail.com>
2023-03-01 20:14:22 -05:00
Sean Anderson a549fca957 Add UART receive module
Add the recieve half of the UART. It's more or less the inverse of the
transmit half, except we manage the state explicitly. I originally did
this in hopes that yosys would recode the FSM, but it doesn't like the
subtraction in the D* states. I left in the async reset anyway since it
reduces the LUT count.

Signed-off-by: Sean Anderson <seanga2@gmail.com>
2023-02-28 23:50:36 -05:00
Sean Anderson e44d381c20 Add UART transmit module
I join everyone and their mother in creating my own UART. 8n1 only, and 2
baud rates. Accepts AXI-stream.

Signed-off-by: Sean Anderson <seanga2@gmail.com>
2023-02-28 22:26:05 -05:00
Sean Anderson e27d79b7c1 Add a README
It is high time to add some documentation.

Signed-off-by: Sean Anderson <seanga2@gmail.com>
2023-02-20 23:34:10 -05:00