feat(bus): Add TileLink-UL primitives This commit introduces a collection of primitive modules for building TileLink-UL interconnects, including FIFOs, sockets, and a width bridge. The new modules are: - TlulFifoSync: A synchronous TileLink FIFO with optional spare side-channels. - TlulFifoAsync: An asynchronous TileLink FIFO for clock domain crossing, built on the rocket-chip AsyncQueue. - TlulSocket1N: A 1-to-N socket for steering requests from a single host to one of N devices. - TlulSocketM1: An M-to-1 socket that arbitrates requests from M hosts to a single device using a round-robin arbiter. - TlulWidthBridge: A bridge for connecting TileLink-UL buses of different widths. Each of these modules is accompanied by a comprehensive cocotb test suite to ensure its correctness. Change-Id: I2ca34caad9332b0621a68957c043a91deee45999
Kelvin is a RISC-V32IM core with a custom instruction set.
More information on the design can be found in the overview.
Kelvin uses bazel as it's build system. The Verilated simulator for Kelvin can be generated using:
bazel build //tests/verilator_sim:core_sim
The verilog source for the Kelvin core can be generated using:
bazel build //hdl/chisel/src/kelvin:core_cc_library_emit_verilog
Verilog source for the Matcha SoC can be generated using:
bazel clean --expunge # To generate the ToT sha bazel build //hdl/chisel:matcha_kelvin_verilog