diff --git a/tools/integration/TEST_SUITE.cpp b/tools/integration/TEST_SUITE.cpp index 864442d9ed..1504eaf3d9 100644 --- a/tools/integration/TEST_SUITE.cpp +++ b/tools/integration/TEST_SUITE.cpp @@ -49,6 +49,8 @@ class SharingFixture : public BaseFixture {}; class SharingUnitTestFixture : public BaseFixture {}; class SpecFixture : public BaseFixture {}; +class FtdWithSimpleBuffersFixture : public BaseFixture {}; + TEST_P(BasicFixture, basic) { IntegrationTestData config{ // clang-format off @@ -83,6 +85,24 @@ TEST_P(CBCSolverFixture, basic) { logPerformance(config.simTime); } +TEST_P(FtdWithSimpleBuffersFixture, basic) { + IntegrationTestData config{ + // clang-format off + .name = GetParam(), + .benchmarkPath = fs::path(DYNAMATIC_ROOT) / "integration-test", + .useVerilog = false, + .useSharing = false, + .milpSolver = "cbc", + .bufferAlgorithm = "on-merges", + .useFtd = true, + .simTime = -1 + // clang-format on + }; + EXPECT_EQ(runIntegrationTest(config), 0); + RecordProperty("cycles", std::to_string(config.simTime)); + logPerformance(config.simTime); +} + #if 0 TEST_P(FPL22Fixture, basic) { IntegrationTestData config{ @@ -303,6 +323,18 @@ INSTANTIATE_TEST_SUITE_P( ), [](const auto &info) { return info.param; }); +// Smoke test: Using the fast token delivery algorithm to compile the circuit. +INSTANTIATE_TEST_SUITE_P( + Tiny, FtdWithSimpleBuffersFixture, + testing::Values( + // "matvec" // matvec does not work currently + "fir", + "if_loop_add", + "if_loop_mul", + "iir" + ), + [](const auto &info) { return info.param; }); + #if 0 // Smoke test: Using the FPL22 placement algorithm to optimize some simple benchmarks INSTANTIATE_TEST_SUITE_P( diff --git a/tools/integration/util.cpp b/tools/integration/util.cpp index 49231c101f..fbc4d9d99a 100644 --- a/tools/integration/util.cpp +++ b/tools/integration/util.cpp @@ -49,6 +49,7 @@ int runIntegrationTest(IntegrationTestData &config) { scriptFile << "compile" << " --buffer-algorithm " << config.bufferAlgorithm << (config.useSharing ? " --sharing" : "") + << (config.useFtd ? " --fast-token-delivery" : "") << " --milp-solver " << config.milpSolver << std::endl; // clang-format on diff --git a/tools/integration/util.h b/tools/integration/util.h index 5c676e41e7..949c58a690 100644 --- a/tools/integration/util.h +++ b/tools/integration/util.h @@ -31,6 +31,7 @@ struct IntegrationTestData { bool useSharing; std::string milpSolver = "gurobi"; std::string bufferAlgorithm = "fpga20"; + bool useFtd = false; // Results int simTime;