TFMicro integration into KelvinV2 ecosystem. Successful integration necessitated modifications across the repository. Revisions to the build system encompass: * Workspace has been reconfigured to facilitate the download of the tflite_micro repository and its associated dependencies. * rules/repos.bzl file now incorporates new repositories for download. * rules/utils.bzl file has been updated to include the generate_cc_arrays tool. The tflite_micro patch incorporates: * Patches designed to disable -pthreads within ruy and gemmlowp. * Adjustments to the visibility of the generate_cc_array and hello_world models. Regarding the toolchain, the following changes have been implemented: * Removal of freestanding attributes. * Addition of no-exceptions and no-rtti flags. * Introduction of a new tcm.ld file to facilitate high-memory kelvin_binaries. Validation was conducted using tests/cocotb/tutorial/tflite_micro_test.cc. Toolchain Validation bazel test tests/cocotb/... Change-Id: I3cc05b9ad6a23d4c20c1b9c074b1b8a6b18dae5d
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