| # Kelvin SW Repository |
| |
| This project contains the BSP to build the SW artifact that can run on the |
| Kelvin core, and integrated as part of the Shodan repository. |
| |
| The project supports two build systems -- Bazel and CMake -- for OSS integration |
| reasons. Bazel is used by [TFLM](https://github.com/tensorflow/tflite-micro) |
| flow, while CMake is the build system for [IREE](https://github.com/openxla/iree). |
| |
| ## Prerequisite |
| |
| If you get this project from Project Shodan manifest, you are all set. If not, |
| you need to have following projects as well to build the project successfully. |
| |
| * Kelvin crosscompile toolchain: Under `<dir>/cache/toolchain_kelvin` |
| |
| This project needs to be at `<dir>/sw/kelvin`. |
| |
| ## Code structure |
| |
| * build_tools: Build tool/rules for both Bazel and CMake |
| * crt: Kelvin BSP |
| * examples: Source code to build Kelvin SW artifacts. |
| * host_tools: host tool to generate the intrinsic header and toolchain op files |
| * platforms: Crosscompile platform setup for Bazel. |
| * tests: Tests to exercise features of the Kelvin core. |
| * tflm: Support code and optimized routines for TFLM. |
| * third_party: Third party repositories for Bazel. |
| * toolchains: Crosscomple toolchain setup for Bazel. |
| |
| ## Build the project |
| |
| ### Bazel |
| |
| The project uses Bazel 5.1.1, to align with |
| [OpenTitan](https://github.com/lowRISC/opentitan) build system requirements. |
| |
| ```bash |
| bazel build //... |
| ``` |
| |
| To run the unit tests (with the kelvin_sim ISS) |
| Make sure the Environment variable `$ROOTDIR` is set to the root directory |
| of the local repo (or run `source build/setup.sh`) |
| |
| ```bash |
| bazel test //... |
| ``` |
| |
| ### CMake |
| |
| ```note |
| TODO: Add CMake flow |
| ``` |
| |
| ## Run the executable |
| |
| The binaries can be simulated with the kelvin simulator, located at |
| `<dir>/sim/kelvin`. |
| |
| ```note |
| sim_kelvin <elf location> |
| ``` |
| |
| Load the generated `.bin` binaries to the FPGA emulator/Renode simulator. |
| |