Add matcha_kelvin_verilog target Generate the kelvin.v matches the format of the checked-in version in hw/matcha Change-Id: I460b3e0733e32dbd70f75041a7772c75f492bc98
diff --git a/.bazelrc b/.bazelrc index c4e0831..365b9e4 100644 --- a/.bazelrc +++ b/.bazelrc
@@ -7,3 +7,8 @@ build --host_copt=-Wno-unused-variable build --host_copt=-Wno-unused-value build --host_copt=-Wno-uninitialized + +# This lets us generate key/value pairs for the workspace which can be used to +# generate the version information. + +build --workspace_status_command=utils/get_workspace_status.sh
diff --git a/README.md b/README.md index 9c68e06..b697d08 100644 --- a/README.md +++ b/README.md
@@ -20,5 +20,6 @@ Verilog source for the Matcha SoC can be generated using: ```bash -bazel build //hdl/chisel:kelvin_cc_library_emit_verilog +bazel clean --expunge # To generate the ToT sha +bazel build //hdl/chisel:matcha_kelvin_verilog ```
diff --git a/hdl/chisel/BUILD b/hdl/chisel/BUILD index d260a33..48e7360 100644 --- a/hdl/chisel/BUILD +++ b/hdl/chisel/BUILD
@@ -145,3 +145,15 @@ emit_class = "kelvin.EmitVSt", module_name = "VSt", ) + +genrule( + name = "matcha_kelvin_verilog", + srcs = [":Kelvin.v"], + outs = ["kelvin.v"], + cmd = """ + echo "// SHA: $$(awk '/KELVIN_BUILD_GIT_VERSION/ { print $$2 }' \ + bazel-out/volatile-status.txt)" > $@ + cat $< >> $@ + """, + stamp = 1, # this provides volatile-status.txt +)
diff --git a/utils/get_workspace_status.sh b/utils/get_workspace_status.sh new file mode 100755 index 0000000..730757e --- /dev/null +++ b/utils/get_workspace_status.sh
@@ -0,0 +1,18 @@ +#!/bin/bash +# Copyright 2023 Google LLC +# +# This script will be run by bazel when the build process wants to generate +# information about the status of the workspace. +# +# The output will be key-value pairs in the form: +# KEY1 VALUE1 +# +# If this script exits with a non-zero exit code, it's considered as a failure +# and the output will be discarded. + +git_rev=$(git rev-parse HEAD) +if [[ $? != 0 ]]; +then + exit 1 +fi +echo "KELVIN_BUILD_GIT_VERSION ${git_rev}"