From f6bd87061ba8bcc5c2f82579f3f8e4db32b65818 Mon Sep 17 00:00:00 2001 From: Marcel Walter Date: Fri, 5 Aug 2022 09:48:11 +0200 Subject: [PATCH] :sparkles: CFE Clocking Scheme (#44) * :sparkles: Added the CFE clocking scheme proposed in 'CFE: a convenient, flexible, and efficient clocking scheme for quantum-dot cellular automata' * :art: Re-formatted clocking scheme array representation code * :memo: Added CFE clocking to the documentation * :pencil2: Fixed typo and CFE source paper [skip ci] --- README.md | 6 +- cli/cmd/physical_design/exact.hpp | 2 +- cli/cmd/physical_design/onepass.hpp | 3 +- docs/_static/cfe.png | Bin 0 -> 261601 bytes docs/layouts/clocking_scheme.rst | 8 ++ include/fiction/layouts/clocking_scheme.hpp | 87 ++++++++++++++++++-- test/algorithms/physical_design/exact.cpp | 26 ++++++ test/layouts/clocking_scheme.cpp | 85 ++++++++++++++++++- 8 files changed, 205 insertions(+), 12 deletions(-) create mode 100644 docs/_static/cfe.png diff --git a/README.md b/README.md index 9b5127f25..431a04753 100644 --- a/README.md +++ b/README.md @@ -124,9 +124,9 @@ Built-in schemes are |:--------------------------------------------------------:|:------------------------------------------------------------------------:|:-------------------------------------------------------------------------:| | USE | RES | 2DDWave | -| [BANCS](https://ieeexplore.ieee.org/document/8533251) | -|:------------------------------------------------------------:| -| BANCS | +| [CFE](https://ietresearch.onlinelibrary.wiley.com/doi/10.1049/iet-cds.2019.0096) | [BANCS](https://ieeexplore.ieee.org/document/8533251) | +|:------------------------------------------------------------------------------------:|:------------------------------------------------------------:| +| CFE | BANCS | plus the mentioned irregular open clocking that works via a clock map instead of a regular extrapolated cutout. diff --git a/cli/cmd/physical_design/exact.hpp b/cli/cmd/physical_design/exact.hpp index 498c7ca8d..0431542e6 100644 --- a/cli/cmd/physical_design/exact.hpp +++ b/cli/cmd/physical_design/exact.hpp @@ -38,7 +38,7 @@ class exact_command : public command { add_option("--clk_scheme,-s", clocking, "Clocking scheme to use {OPEN[3|4], COLUMNAR[3|4], ROW[3|4] 2DDWAVE[3|4], 2DDWAVEHEX[3|4], USE, " - "RES, ESP, BANCS}", + "RES, ESP, CFE, BANCS}", true); add_option("--upper_bound,-u", ps.upper_bound, "Number of FCN gate tiles to use at maximum"); add_option("--fixed_size,-f", ps.fixed_size, "Execute only one iteration with the given number of tiles"); diff --git a/cli/cmd/physical_design/onepass.hpp b/cli/cmd/physical_design/onepass.hpp index 623679c1f..12fea14e2 100644 --- a/cli/cmd/physical_design/onepass.hpp +++ b/cli/cmd/physical_design/onepass.hpp @@ -48,7 +48,8 @@ class onepass_command : public command "resulting from this approach might be desynchronized. I/Os are always located at the " "layout's borders.") { - add_option("--clk_scheme,-s", clocking, "Clocking scheme to use {2DDWAVE[3|4], USE, RES, ESP, BANCS}", true); + add_option("--clk_scheme,-s", clocking, "Clocking scheme to use {2DDWAVE[3|4], USE, RES, ESP, CFE, BANCS}", + true); add_option("--upper_bound,-u", ps.upper_bound, "Number of FCN gate tiles to use at maximum"); add_option("--fixed_size,-f", ps.fixed_size, "Execute only one iteration with the given number of tiles"); add_option("--timeout,-t", ps.timeout, "Timeout in seconds"); diff --git a/docs/_static/cfe.png b/docs/_static/cfe.png new file mode 100644 index 0000000000000000000000000000000000000000..11238c0c459acc59db24064f6dd329836b621df9 GIT binary patch literal 261601 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�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 literal 0 HcmV?d00001 diff --git a/docs/layouts/clocking_scheme.rst b/docs/layouts/clocking_scheme.rst index 7a5106ade..f80c6a659 100644 --- a/docs/layouts/clocking_scheme.rst +++ b/docs/layouts/clocking_scheme.rst @@ -72,6 +72,14 @@ ESP .. doxygenfunction:: fiction::esp_clocking +CFE +### + +.. figure:: /_static/cfe.png + :width: 200 + +.. doxygenfunction:: fiction::cfe_clocking + BANCS ##### diff --git a/include/fiction/layouts/clocking_scheme.hpp b/include/fiction/layouts/clocking_scheme.hpp index bfb6681a1..714b44c20 100644 --- a/include/fiction/layouts/clocking_scheme.hpp +++ b/include/fiction/layouts/clocking_scheme.hpp @@ -158,6 +158,7 @@ static constexpr const char* twoddwave_hex = "2DDWAVEHEX"; static constexpr const char* use = "USE"; static constexpr const char* res = "RES"; static constexpr const char* esp = "ESP"; +static constexpr const char* cfe = "CFE"; static constexpr const char* bancs = "BANCS"; } // namespace clock_name @@ -349,11 +350,23 @@ static auto twoddwave_clocking(const num_clks& n = num_clks::FOUR) noexcept template static auto twoddwave_hex_clocking(const num_clks& n = num_clks::FOUR) noexcept { + // clang-format off + static constexpr std::array>::clock_number, 3u>, 6u> - odd_3_cutout{{{{0, 1, 2}}, {{1, 2, 0}}, {{1, 2, 0}}, {{2, 0, 1}}, {{2, 0, 1}}, {{0, 1, 2}}}}; + odd_3_cutout{{{{0, 1, 2}}, + {{1, 2, 0}}, + {{1, 2, 0}}, + {{2, 0, 1}}, + {{2, 0, 1}}, + {{0, 1, 2}}}}; static constexpr std::array>::clock_number, 3u>, 6u> - even_3_cutout{{{{0, 1, 2}}, {{0, 1, 2}}, {{1, 2, 0}}, {{1, 2, 0}}, {{2, 0, 1}}, {{2, 0, 1}}}}; + even_3_cutout{{{{0, 1, 2}}, + {{0, 1, 2}}, + {{1, 2, 0}}, + {{1, 2, 0}}, + {{2, 0, 1}}, + {{2, 0, 1}}}}; static constexpr std::array>::clock_number, 4u>, 8u> odd_4_cutout{{{{0, 1, 2, 3}}, @@ -375,6 +388,8 @@ static auto twoddwave_hex_clocking(const num_clks& n = num_clks::FOUR) noexcept {{3, 0, 1, 2}}, {{3, 0, 1, 2}}}}; + // clang-format on + static const typename clocking_scheme>::clock_function odd_row_twoddwave_hex_3_clock_function = [](const clock_zone& cz) noexcept { return odd_3_cutout[cz.y % 6ul][cz.x % 3ul]; }; @@ -516,16 +531,23 @@ static auto twoddwave_hex_clocking(const num_clks& n = num_clks::FOUR) noexcept template static auto use_clocking() noexcept { + // clang-format off + static const typename clocking_scheme>::clock_function use_clock_function = [](const clock_zone& cz) noexcept { constexpr std::array>::clock_number, 4u>, 4u> cutout{ - {{{0, 1, 2, 3}}, {{3, 2, 1, 0}}, {{2, 3, 0, 1}}, {{1, 0, 3, 2}}}}; + {{{0, 1, 2, 3}}, + {{3, 2, 1, 0}}, + {{2, 3, 0, 1}}, + {{1, 0, 3, 2}}}}; return cutout[cz.y % 4ul][cz.x % 4ul]; }; return clocking_scheme{clock_name::use, use_clock_function, std::min(Lyt::max_fanin_size, 2u), 2u, 4u, true}; + + // clang-format on } /** * Returns the RES clocking as defined in "An efficient clocking scheme for quantum-dot cellular automata" by @@ -538,16 +560,23 @@ static auto use_clocking() noexcept template static auto res_clocking() noexcept { + // clang-format off + static const typename clocking_scheme>::clock_function res_clock_function = [](const clock_zone& cz) noexcept { constexpr std::array>::clock_number, 4u>, 4u> cutout{ - {{{3, 0, 1, 2}}, {{0, 1, 0, 3}}, {{1, 2, 3, 0}}, {{0, 3, 2, 1}}}}; + {{{3, 0, 1, 2}}, + {{0, 1, 0, 3}}, + {{1, 2, 3, 0}}, + {{0, 3, 2, 1}}}}; return cutout[cz.y % 4ul][cz.x % 4ul]; }; return clocking_scheme{clock_name::res, res_clock_function, std::min(Lyt::max_fanin_size, 3u), 3u, 4u, true}; + + // clang-format on } /** * Returns the ESP (Zig-Zag) clocking as defined in "Regular Clocking based Emerging Technique in QCA Targeting Low @@ -560,16 +589,52 @@ static auto res_clocking() noexcept template static auto esp_clocking() noexcept { + // clang-format off + static const typename clocking_scheme>::clock_function esp_clock_function = [](const clock_zone& cz) noexcept { constexpr std::array>::clock_number, 4u>, 4u> cutout{ - {{{3, 0, 1, 2}}, {{0, 1, 2, 3}}, {{1, 2, 3, 0}}, {{0, 3, 2, 1}}}}; + {{{3, 0, 1, 2}}, + {{0, 1, 2, 3}}, + {{1, 2, 3, 0}}, + {{0, 3, 2, 1}}}}; return cutout[cz.y % 4ul][cz.x % 4ul]; }; return clocking_scheme{clock_name::esp, esp_clock_function, std::min(Lyt::max_fanin_size, 3u), 3u, 4u, true}; + + // clang-format on +} +/** + * Returns the CFE clocking as defined in "CFE: a convenient, flexible, and efficient clocking scheme for quantum-dot + * cellular automata" by Feifei Deng, Guang-Jun Xie, Xin Cheng, Zhang Zhang, and Yongqiang Zhang in IET Circuits, + * Devices & Systems 2020. + * + * @tparam Lyt Clocked layout type. + * @return CFE clocking scheme. + */ +template +static auto cfe_clocking() noexcept +{ + // clang-format off + + static const typename clocking_scheme>::clock_function cfe_clock_function = + [](const clock_zone& cz) noexcept + { + constexpr std::array>::clock_number, 4u>, 4u> cutout{ + {{{0, 1, 0, 1}}, + {{3, 2, 3, 2}}, + {{0, 1, 0, 1}}, + {{3, 2, 3, 2}}}}; + + return cutout[cz.y % 4ul][cz.x % 4ul]; + }; + + return clocking_scheme{clock_name::cfe, cfe_clock_function, std::min(Lyt::max_fanin_size, 3u), 3u, 4u, true}; + + // clang-format on } /** * Returns the BANCS clocking as defined in "BANCS: Bidirectional Alternating Nanomagnetic Clocking Scheme" by @@ -581,16 +646,25 @@ static auto esp_clocking() noexcept template static auto bancs_clocking() noexcept { + // clang-format off + static const typename clocking_scheme>::clock_function bancs_clock_function = [](const clock_zone& cz) noexcept { constexpr std::array>::clock_number, 3u>, 6u> cutout{ - {{{0, 1, 2}}, {{2, 1, 0}}, {{2, 0, 1}}, {{1, 0, 2}}, {{1, 2, 0}}, {{0, 2, 1}}}}; + {{{0, 1, 2}}, + {{2, 1, 0}}, + {{2, 0, 1}}, + {{1, 0, 2}}, + {{1, 2, 0}}, + {{0, 2, 1}}}}; return cutout[cz.y % 6ul][cz.x % 3ul]; }; return clocking_scheme{clock_name::bancs, bancs_clock_function, std::min(Lyt::max_fanin_size, 2u), 2u, 3u, true}; + + // clang-format on } /** * Returns a smart pointer to the given scheme. @@ -655,6 +729,7 @@ std::optional>> get_clocking_scheme(const std::s {clock_name::use, use_clocking()}, {clock_name::res, res_clocking()}, {clock_name::esp, esp_clocking()}, + {clock_name::cfe, cfe_clocking()}, {clock_name::bancs, bancs_clocking()}}; auto upper_name = name; diff --git a/test/algorithms/physical_design/exact.cpp b/test/algorithms/physical_design/exact.cpp index b4ac014ce..69d780866 100644 --- a/test/algorithms/physical_design/exact.cpp +++ b/test/algorithms/physical_design/exact.cpp @@ -84,6 +84,22 @@ exact_physical_design_params&& res(exact_physical_design_params&& ps) return std::move(ps); } +template +exact_physical_design_params&& esp(exact_physical_design_params&& ps) noexcept +{ + ps.scheme = std::make_shared>>(esp_clocking()); + + return std::move(ps); +} + +template +exact_physical_design_params&& cfe(exact_physical_design_params&& ps) noexcept +{ + ps.scheme = std::make_shared>>(cfe_clocking()); + + return std::move(ps); +} + template exact_physical_design_params&& crossings(exact_physical_design_params&& ps) noexcept { @@ -279,6 +295,16 @@ TEST_CASE("Exact Cartesian physical design", "[exact]") check_with_gate_library( blueprints::and_or_network(), res(crossings(configuration()))); } + SECTION("ESP clocking") + { + check_with_gate_library( + blueprints::and_or_network(), esp(crossings(configuration()))); + } + SECTION("CFE clocking") + { + check_with_gate_library( + blueprints::and_or_network(), cfe(crossings(configuration()))); + } SECTION("Border I/O") { check_with_gate_library( diff --git a/test/layouts/clocking_scheme.cpp b/test/layouts/clocking_scheme.cpp index 28243cde1..fa541240d 100644 --- a/test/layouts/clocking_scheme.cpp +++ b/test/layouts/clocking_scheme.cpp @@ -1617,6 +1617,86 @@ TEST_CASE("4-phase RES", "[clocking-scheme]") CHECK(res4({3 + 4, 3 + 4}) == 1); } +TEST_CASE("4-phase CFE", "[clocking-scheme]") +{ + using clk_lyt = clocked_layout>; + + const auto cfe4 = cfe_clocking(); + + CHECK(cfe4.num_clocks == 4u); + CHECK(cfe4.max_in_degree == 3u); + CHECK(cfe4.max_out_degree == 3u); + CHECK(cfe4.is_regular()); + + CHECK(cfe4({0, 0}) == 0); + CHECK(cfe4({0, 1}) == 3); + CHECK(cfe4({0, 2}) == 0); + CHECK(cfe4({0, 3}) == 3); + CHECK(cfe4({1, 0}) == 1); + CHECK(cfe4({1, 1}) == 2); + CHECK(cfe4({1, 2}) == 1); + CHECK(cfe4({1, 3}) == 2); + CHECK(cfe4({2, 0}) == 0); + CHECK(cfe4({2, 1}) == 3); + CHECK(cfe4({2, 2}) == 0); + CHECK(cfe4({2, 3}) == 3); + CHECK(cfe4({3, 0}) == 1); + CHECK(cfe4({3, 1}) == 2); + CHECK(cfe4({3, 2}) == 1); + CHECK(cfe4({3, 3}) == 2); + + CHECK(cfe4({0 + 4, 0}) == 0); + CHECK(cfe4({0 + 4, 1}) == 3); + CHECK(cfe4({0 + 4, 2}) == 0); + CHECK(cfe4({0 + 4, 3}) == 3); + CHECK(cfe4({1 + 4, 0}) == 1); + CHECK(cfe4({1 + 4, 1}) == 2); + CHECK(cfe4({1 + 4, 2}) == 1); + CHECK(cfe4({1 + 4, 3}) == 2); + CHECK(cfe4({2 + 4, 0}) == 0); + CHECK(cfe4({2 + 4, 1}) == 3); + CHECK(cfe4({2 + 4, 2}) == 0); + CHECK(cfe4({2 + 4, 3}) == 3); + CHECK(cfe4({3 + 4, 0}) == 1); + CHECK(cfe4({3 + 4, 1}) == 2); + CHECK(cfe4({3 + 4, 2}) == 1); + CHECK(cfe4({3 + 4, 3}) == 2); + + CHECK(cfe4({0, 0 + 4}) == 0); + CHECK(cfe4({0, 1 + 4}) == 3); + CHECK(cfe4({0, 2 + 4}) == 0); + CHECK(cfe4({0, 3 + 4}) == 3); + CHECK(cfe4({1, 0 + 4}) == 1); + CHECK(cfe4({1, 1 + 4}) == 2); + CHECK(cfe4({1, 2 + 4}) == 1); + CHECK(cfe4({1, 3 + 4}) == 2); + CHECK(cfe4({2, 0 + 4}) == 0); + CHECK(cfe4({2, 1 + 4}) == 3); + CHECK(cfe4({2, 2 + 4}) == 0); + CHECK(cfe4({2, 3 + 4}) == 3); + CHECK(cfe4({3, 0 + 4}) == 1); + CHECK(cfe4({3, 1 + 4}) == 2); + CHECK(cfe4({3, 2 + 4}) == 1); + CHECK(cfe4({3, 3 + 4}) == 2); + + CHECK(cfe4({0 + 4, 0 + 4}) == 0); + CHECK(cfe4({0 + 4, 1 + 4}) == 3); + CHECK(cfe4({0 + 4, 2 + 4}) == 0); + CHECK(cfe4({0 + 4, 3 + 4}) == 3); + CHECK(cfe4({1 + 4, 0 + 4}) == 1); + CHECK(cfe4({1 + 4, 1 + 4}) == 2); + CHECK(cfe4({1 + 4, 2 + 4}) == 1); + CHECK(cfe4({1 + 4, 3 + 4}) == 2); + CHECK(cfe4({2 + 4, 0 + 4}) == 0); + CHECK(cfe4({2 + 4, 1 + 4}) == 3); + CHECK(cfe4({2 + 4, 2 + 4}) == 0); + CHECK(cfe4({2 + 4, 3 + 4}) == 3); + CHECK(cfe4({3 + 4, 0 + 4}) == 1); + CHECK(cfe4({3 + 4, 1 + 4}) == 2); + CHECK(cfe4({3 + 4, 2 + 4}) == 1); + CHECK(cfe4({3 + 4, 3 + 4}) == 2); +} + TEST_CASE("3-phase BANCS", "[clocking-scheme]") { using clk_lyt = clocked_layout>; @@ -1847,6 +1927,7 @@ TEST_CASE("Clocking lookup", "[clocking-scheme]") check({"use", "USE", "uSe", "UsE"}, clock_name::use); check({"res", "RES", "rEs", "ReS"}, clock_name::res); check({"esp", "ESP", "eSp", "EsP"}, clock_name::esp); + check({"cfe", "CFE", "cFe", "CfE"}, clock_name::cfe); check({"bancs", "BANCS", "BaNCs", "banCS"}, clock_name::bancs); CHECK(!get_clocking_scheme("").has_value()); @@ -1857,6 +1938,7 @@ TEST_CASE("Clocking lookup", "[clocking-scheme]") CHECK(!get_clocking_scheme("SUE").has_value()); CHECK(!get_clocking_scheme("ERS").has_value()); CHECK(!get_clocking_scheme("EPS").has_value()); + CHECK(!get_clocking_scheme("CEF").has_value()); CHECK(!get_clocking_scheme("BNCS").has_value()); } @@ -1872,6 +1954,7 @@ TEST_CASE("Linear schemes", "[clocking-scheme]") CHECK(!is_linear_scheme(*get_clocking_scheme(clock_name::open))); CHECK(!is_linear_scheme(*get_clocking_scheme(clock_name::use))); CHECK(!is_linear_scheme(*get_clocking_scheme(clock_name::res))); - CHECK(!is_linear_scheme(*get_clocking_scheme(clock_name::bancs))); CHECK(!is_linear_scheme(*get_clocking_scheme(clock_name::esp))); + CHECK(!is_linear_scheme(*get_clocking_scheme(clock_name::cfe))); + CHECK(!is_linear_scheme(*get_clocking_scheme(clock_name::bancs))); }