feat(spi): Add packed write transaction support This change introduces a "packed" write transaction to the SPI master, allowing for a full TileLink write transaction to be sent in a single, uninterrupted SPI burst. This significantly improves performance for loading data to the device. The following changes are included: - A `packed_write_transaction` method has been added to the `SPIMaster` in `kelvin_test_utils/spi_master.py`. - A new test case, `test_packed_write_transaction`, has been added to `tests/cocotb/tlul/test_spi_to_tlul.py` to validate the new functionality. - The `poll_reg_for_value` method in `SPIMaster` has been refactored to correctly handle the pipelined nature of SPI reads, which was discovered during the development of the packed write feature. Change-Id: I1703af4d083dc75781550a38c43ac726a40cfb43
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