An AXI4 crossbar implemented in SystemVerilog to build the foundation of a SOC.
A crossbar is a circuit connecting multiple master and slave agents, mapped across a memory space. The core consists of a collection of switches, routing the master requests to the slaves and driving back completions to the agents. A crossbar is a common piece of logic to connect in a SOC the processor(s) with the peripherals like memories, IOs, co-processors...
┌─────────────┬───┬──────────────────────────┬───┬─────────────┐
│ │ S │ │ S │ │
│ └───┘ └───┘ │
│ ┌───────────────────────────┐ ┌───────────────────────────┐ │
│ │ Slave Interface │ │ Slave Interface │ │
│ └───────────────────────────┘ └───────────────────────────┘ │
│ │ │ │
│ ▼ ▼ │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ Crossbar │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │ │ │
│ ▼ ▼ │
│ ┌───────────────────────────┐ ┌───────────────────────────┐ │
│ │ Master Interface │ │ Master Interface │ │
│ └───────────────────────────┘ └───────────────────────────┘ │
│ ┌───┐ ┌───┐ │
│ │ M │ │ M │ │
└─────────────┴───┴──────────────────────────┴───┴─────────────┘
Features
DECERR
Further details can be found in:
The core is verified with a testbench relying on pseudo-random driver and monitor to inject some traffic and verify its correctness. Please refer to the dedicated chapter for futher details and find hints to integrate the core in your own development. The flow relies on:
Core features:
Wizard:
AXI Goodies:
Simulation:
This IP core is licensed under MIT license. It grants nearly all rights to use, modify and distribute these sources.
However, consider to contribute and provide updates to this core if you add feature and fix, would be greatly appreciated :)