-
Notifications
You must be signed in to change notification settings - Fork 573
Wishbone Bus
One of the key components of a LiteX SoC is the bus system, which is used to connect the various components of the SoC and one of the default and probably most popular bus systems used in LiteX SoCs is the... Wishbone bus :).
The Wishbone bus is a standardized, open-source bus system that is widely used in FPGA-based SoCs. It was originally developed as part of the OpenCores project and has since become a standard for inter-component communication in FPGA-based systems.
The Wishbone bus provides a simple, flexible, and scalable bus architecture that makes it easy to connect and communicate between different components in an SoC. The Wishbone bus specification defines a standard interface for communication between components, allowing components from different vendors to be easily combined in a single SoC.
The Wishbone bus API in LiteX provides a convenient and straightforward way to work with the Wishbone bus in a LiteX SoC.
In a LiteX SoC, the Wishbone bus provides a communication channel between the different components of the SoC. Each component that wants to participate in the bus must implement a Wishbone slave interface, which provides access to the component's registers and memory. The Wishbone bus masters, such as a processor, can then read from or write to the slave components using the Wishbone slave interface.
Wishbone transactions are initiated by the bus master and consist of a request for data (read) or a request to write data (write). The transaction includes the address of the target component's slave interface and the data to be read or written. The slave component responds with the requested data in the case of a read transaction, or acknowledges the write transaction.
Here is a concrete example of how the Wishbone bus can be used in a LiteX SoC. Suppose we want to design an SoC that contains a processor and a memory module, and we want to use the Wishbone bus to connect the two components.
TODO
Have a question or want to get in touch? Our IRC channel is #litex at irc.libera.chat.
- Welcome to LiteX
- LiteX's internals
- How to
- Create a minimal SoC-TODO
- Add a new Board-TODO
- Add a new Core-WIP
- Add a new CPU-WIP
- Reuse-a-(System)Verilog,-VHDL,-Amaranth,-Spinal-HDL,-Chisel-core
- Use LiteX on the Acorn CLE 215+
- Load application code the CPU(s)
- Use Host Bridges to control/debug a SoC
- Use LiteScope to debug a SoC
- JTAG/GDB Debugging with VexRiscv CPU
- JTAG/GDB Debugging with VexRiscv-SMP, NaxRiscv and VexiiRiscv CPUs
- Document a SoC
- How to (Advanced)