blob: a974e3237e788855ac18e3904ebce5e814813616 [file] [log] [blame]
# Copyright 2023 Google LLC
cc_library(
name = "sim_libs",
hdrs = [
"fifo.h",
"sysc_module.h",
"sysc_tb.h",
],
includes = [
"systemc/include",
],
deps = [
"@accellera_systemc//:systemc",
],
)
cc_library(
name = "kelvin_if",
hdrs = [
"kelvin/core_if.h",
"kelvin/debug_if.h",
"kelvin/kelvin_cfg.h",
"kelvin/memory_if.h",
],
defines = ["KELVIN_SIMD=256"],
)
cc_binary(
name = "core_sim",
srcs = [
"kelvin/core_tb.cc",
],
deps = [
":kelvin_if",
":sim_libs",
"//hdl/chisel:core_cc_library",
"@com_google_absl//absl/flags:flag",
"@com_google_absl//absl/flags:parse",
"@com_google_absl//absl/flags:usage",
],
)
cc_binary(
name = "kelvin_tb",
srcs = [
"matcha/kelvin_if.h",
"matcha/kelvin_tb.cc",
],
deps = [
":kelvin_if",
":sim_libs",
"//hdl/chisel:kelvin_cc_library",
],
)
cc_test(
name = "dbus2axi_tb",
size = "small",
srcs = [
"kelvin/dbus2axi_tb.cc",
],
deps = [
":sim_libs",
"//hdl/chisel:dbus2axi_cc_library",
],
)
cc_test(
name = "l1dcache_tb",
srcs = [
"kelvin/l1dcache_tb.cc",
],
deps = [
":kelvin_if",
":sim_libs",
"//hdl/chisel:l1dcache_cc_library",
],
)
cc_test(
name = "l1icache_tb",
srcs = [
"kelvin/l1icache_tb.cc",
],
deps = [
":kelvin_if",
":sim_libs",
"//hdl/chisel:l1icache_cc_library",
],
)
cc_library(
name = "valu",
hdrs = [
"kelvin/alu_ref.h",
"kelvin/valu.h",
],
deps = [
":vencodeop",
],
)
cc_test(
name = "valu_tb",
size = "large",
srcs = [
"kelvin/valu_tb.cc",
],
deps = [
":kelvin_if",
":sim_libs",
":valu",
"//hdl/chisel:valu_cc_library",
],
)
cc_test(
name = "valuint_tb",
size = "large",
srcs = [
"kelvin/valuint_tb.cc",
],
deps = [
":kelvin_if",
":sim_libs",
":valu",
"//hdl/chisel:valuint_cc_library",
],
)
cc_library(
name = "vdecode",
hdrs = [
"kelvin/vdecode.h",
],
deps = [
":vdecodeop",
":vencodeop",
],
)
cc_library(
name = "vdecodeop",
hdrs = [
"kelvin/vdecodeop.h",
],
)
cc_library(
name = "vencodeop",
hdrs = [
"kelvin/vencodeop.h",
],
)
cc_test(
name = "vcmdq_tb",
srcs = [
"kelvin/vcmdq_tb.cc",
],
deps = [
":kelvin_if",
":sim_libs",
":vencodeop",
"//hdl/chisel:vcmdq_cc_library",
],
)
cc_test(
name = "vconvalu_tb",
srcs = [
"kelvin/vconvalu_tb.cc",
],
deps = [
":kelvin_if",
":sim_libs",
"//hdl/chisel:vconvalu_cc_library",
],
)
cc_test(
name = "vconvctrl_tb",
size = "small",
srcs = [
"kelvin/vconvctrl_tb.cc",
],
deps = [
":kelvin_if",
":sim_libs",
":vencodeop",
"//hdl/chisel:vconvctrl_cc_library",
],
)
cc_test(
name = "vdecodeinstruction_tb",
size = "small",
srcs = [
"kelvin/vdecodeinstruction_tb.cc",
],
deps = [
":kelvin_if",
":sim_libs",
":vdecode",
"//hdl/chisel:vdecodeinstruction_cc_library",
],
)
cc_test(
name = "vdecode_tb",
srcs = [
"kelvin/vdecode_tb.cc",
],
deps = [
":kelvin_if",
":sim_libs",
":vdecode",
"//hdl/chisel:vdecode_cc_library",
],
)
cc_test(
name = "vldst_tb",
srcs = [
"kelvin/vldst_tb.cc",
],
deps = [
":kelvin_if",
":sim_libs",
":vencodeop",
"//hdl/chisel:vldst_cc_library",
],
)
cc_test(
name = "vld_tb",
size = "small",
srcs = [
"kelvin/vld_tb.cc",
],
deps = [
":kelvin_if",
":sim_libs",
":vencodeop",
"//hdl/chisel:vld_cc_library",
],
)
cc_test(
name = "vregfilesegment_tb",
size = "small",
srcs = [
"kelvin/vregfilesegment_tb.cc",
],
deps = [
":kelvin_if",
":sim_libs",
"//hdl/chisel:vregfilesegment_cc_library",
],
)
cc_test(
name = "vregfile_tb",
srcs = [
"kelvin/vregfile_tb.cc",
],
deps = [
":kelvin_if",
":sim_libs",
"//hdl/chisel:vregfile_cc_library",
],
)
cc_test(
name = "vst_tb",
srcs = [
"kelvin/vst_tb.cc",
],
deps = [
":kelvin_if",
":sim_libs",
":vencodeop",
"//hdl/chisel:vst_cc_library",
],
)