Add valuint_tb cc_test target

Change-Id: I893f3929cec9f62d1acf99ed9f10dfbd45d4e038
diff --git a/hdl/chisel/BUILD b/hdl/chisel/BUILD
index d260a33..2785e9b 100644
--- a/hdl/chisel/BUILD
+++ b/hdl/chisel/BUILD
@@ -77,6 +77,13 @@
 )
 
 chisel_cc_library(
+    name = "valuint_cc_library",
+    chisel_lib = ":kelvin",
+    emit_class = "kelvin.EmitVAluInt",
+    module_name = "VAluInt",
+)
+
+chisel_cc_library(
     name = "vcmdq_cc_library",
     chisel_lib = ":kelvin",
     emit_class = "kelvin.EmitVCmdq",
diff --git a/tests/verilator_sim/BUILD b/tests/verilator_sim/BUILD
index 216b7a7..452c11f 100644
--- a/tests/verilator_sim/BUILD
+++ b/tests/verilator_sim/BUILD
@@ -88,22 +88,44 @@
     ],
 )
 
+cc_library(
+    name = "valu",
+    hdrs = [
+        "kelvin/alu_ref.h",
+        "kelvin/valu.h",
+    ],
+    deps = [
+        ":vencodeop",
+    ],
+)
+
 cc_test(
     name = "valu_tb",
     size = "large",
     srcs = [
-        "kelvin/alu_ref.h",
-        "kelvin/valu.h",
         "kelvin/valu_tb.cc",
     ],
     deps = [
         ":kelvin_if",
         ":sim_libs",
-        ":vencodeop",
+        ":valu",
         "//hdl/chisel:valu_cc_library",
     ],
 )
 
+cc_test(
+    name = "valuint_tb",
+    srcs = [
+        "kelvin/valuint_tb.cc",
+    ],
+    deps = [
+        ":kelvin_if",
+        ":sim_libs",
+        ":valu",
+        "//hdl/chisel:valuint_cc_library",
+    ],
+)
+
 cc_library(
     name = "vdecode",
     hdrs = [
diff --git a/tests/verilator_sim/kelvin/valuint_tb.cc b/tests/verilator_sim/kelvin/valuint_tb.cc
index f86ad37..05999be 100644
--- a/tests/verilator_sim/kelvin/valuint_tb.cc
+++ b/tests/verilator_sim/kelvin/valuint_tb.cc
@@ -1,12 +1,12 @@
 // Copyright 2023 Google LLC
 
-#include "VVAluInt.h"
-#include "sysc_tb.h"
-#include "valu.h"
+#include "VVAluInt.h"  // Generated.
+#include "tests/verilator_sim/kelvin/valu.h"
+#include "tests/verilator_sim/sysc_tb.h"
 
 struct VAluInt_tb : Sysc_tb {
   sc_out<bool> io_in_valid;
-  sc_out<sc_bv<kOpBits> > io_in_op;
+  sc_out<sc_bv<encode::kOpBits> > io_in_op;
   sc_out<sc_bv<3> > io_in_f2;
   sc_out<sc_bv<3> > io_in_sz;
   sc_out<sc_bv<6> > io_in_vd_addr;
@@ -41,15 +41,15 @@
     const uint8_t ve_addr = rand_int(0, 63);
     uint32_t sv_data = 0;
 
-    uint8_t op = rand_int(0, kOpEntries - 1);
+    uint8_t op = rand_int(0, encode::kOpEntries - 1);
 
     // Inputs.
     valu_t r = {0};
     r_.read(r);
 
-    if (op == vdwconv) {
+    if (op == encode::vdwconv) {
       // Disallow DW in CRT.
-      op = 0;  // TODO
+      op = 0;
     }
 
     io_in_valid = valid;
@@ -142,7 +142,7 @@
 
 static void VAluInt_test(char* name, int loops, bool trace) {
   sc_signal<bool> io_in_valid;
-  sc_signal<sc_bv<kOpBits> > io_in_op;
+  sc_signal<sc_bv<encode::kOpBits> > io_in_op;
   sc_signal<sc_bv<3> > io_in_f2;
   sc_signal<sc_bv<3> > io_in_sz;
   sc_signal<sc_bv<6> > io_in_vd_addr;