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;