Skip to content

v0.5.0

Latest
Compare
Choose a tag to compare
@github-actions github-actions released this 30 Mar 14:32
· 218 commits to refs/heads/main since this release
210f526

Fiction is a way to challenge the status quo and to push the boundaries of conventional thinking. — unknown

👀 What's Changed

This latest version of fiction constitutes a whole year of our research efforts, which we condensed into this open-source platform for the FCN community to build upon. Following last year's rework, we have greatly extended fiction's header-only library with new algorithms and data structures.

Thanks to @Drewniok's efforts and @samuelngsh's support, we have introduced the capability to physically simulate SiDB layouts both heuristically and exhaustively for the first time in fiction. In addition, we have integrated the SiDB Bestagon gate library to obtain cell-level SiDB layouts from placed and routed gate-level descriptions, and improved the interoperability with SiQAD by enabling the parsing of SQD files.

Moreover, we have added a comprehensive path-finding and routing library that supports well-established algorithms from the literature, including A*, JPS, and Yen's algorithm, as well as our own multi-path routing algorithm, color routing. Among these new additions are also a graph coloring engine and a generic function optimizer based on simulated annealing that are useful in many design automation contexts.

Furthermore, we have added support for the molecular FCN simulator SCERPA (many thanks to Giuliana Beretta!), the CFE clocking scheme, parallel STL algorithms, performance improvements across many core data structures, an expanded CI setup, and much more.

Full CHANGELOG: v0.4.0...v0.5.0

Many thanks to all contributors!

✨ Features and Enhancements

  • ✨ Added a generic function optimizer based on Simulated Annealing @marcelwa (#148)
  • ⚡ Search space reduction in SiDB simulation @Drewniok (#150)
  • 🎨 added a new function get_chargeless_potential_between_sidbs @Drewniok (#138)
  • ✨ Release Drafter to automatically maintain a Draft Release @Drewniok (#139)
  • 📝 Added GitHub templates @marcelwa (#133)
  • 👷 Updates to the CI platform @marcelwa (#132)
  • ✨ Added conversion functions for layouts of different coordinate types @Drewniok (#125)
  • ✨ Added multi-threading support for QuickSim @Drewniok (#128)
  • 📝 Revised the README badges @marcelwa (#127)
  • ✨ Added a Verilog writer to the CLI @marcelwa (#115)
  • ✨ Added a framework for accurate and efficient simulation of SiDB logic @Drewniok (#105)
  • ✨ Added a framework to represent and handle SiDB defects @marcelwa (#103)
  • ✨ Multi-Path Signal Routing @marcelwa (#83)
  • 📝 Improvements to the README and documentation @marcelwa (#77)
  • 👷 Added a ClangFormat linter workflow @marcelwa (#75)
  • 👷 Run CI only when necessary @marcelwa (#73)
  • 👷 Added a workaround for empty review messages in the clang-tidy-review workflow @marcelwa (#70)
  • 🎨 Set up a consistent clang-tidy workflow together with a designated CI code review process @marcelwa (#64)
  • 👷 Activate experiments in CIs to ensure they're building @marcelwa (#63)
  • 👷 Enable ccache for GitHub Action runners @marcelwa (#60)
  • 🎨 Switched static constexpr for inline constexpr at file-scope @marcelwa (#59)
  • 👷 Z3 setup action @marcelwa (#58)
  • 🎨 Layout technology traits @marcelwa (#53)
  • 👷 Enabled automatic linking with TBB when compiling with GCC to enable parallel STL algorithms @marcelwa (#57)
  • ✨ QLL writer for mQCA (MagCAD & SCERPA) @marcelwa (#49)
  • ✨ Added the CFE clocking scheme @marcelwa (#44)
  • ♻️ Refactored the CMake build system @marcelwa (#42)
  • ⚗️ Added experimental data of the Bestagon paper @marcelwa (#33)
  • ✨ Added the SiDB Bestagon gate library @marcelwa (#32)

⚡️ Performance

  • ⚡ Utilize std::string_view instead of std::string in many places to improve performance @marcelwa (#153)
  • ⚡ Search space reduction in SiDB simulation @Drewniok (#150)
  • ✨ Added multi-threading support for QuickSim @Drewniok (#128)
  • ⚡ Improved performance by switching to phmap in more places @marcelwa (#118)

🐛 Bug Fixes

  • ✅ Made the DOT drawer tests independent of the version number @marcelwa (#170)
  • 📝 Fixed some inconcistencies in the RTD documentation @marcelwa (#167)
  • 🐛 Removed excess template parameter typename T @simon1hofmann (#162)
  • 🚨 Fixed error message from multiple IPO Checks @lsschmid (#157)
  • 🚨 Fixes for linker errors and CMake name collisions @marcelwa (#154)
  • 🚨 Fixed warnings and notes brought up by CodeQL @marcelwa (#151)
  • 📝 Fixed namespace in SiQAD utility function documentation @marcelwa (#152)
  • 📝 Updated notes on the installation process to the documentation @marcelwa (#149)
  • 🐛 Prevent manually declared layout obstructions to be cleared by the application of Yen's Algorithm @marcelwa (#143)
  • 🎨 added a new function get_chargeless_potential_between_sidbs @Drewniok (#138)
  • 🎨 CI inconsistency fixes @marcelwa (#142)
  • 👷 Changed CI name @marcelwa (#141)
  • 🩹 Renamed functions to more appropriately reflect their role @Drewniok (#135)
  • 🐛 Fixed accessing non-existing variables in potential_between_sidbs @marcelwa (#134)
  • 🎨 doxygenfunction of quicksim was under the wrong header @Drewniok (#129)
  • 🐛 std::rand replaced by std::mt19937_64 @Drewniok (#124)
  • 🎨 Small inconsistency fix @marcelwa (#123)
  • 🐛 Fixed a bug in crossing considerations of obstruction_layouts @marcelwa (#122)
  • 🐛 Added additional checks for is_obstructed_connection to ensure proper handling of crossing cases @marcelwa (#117)
  • 🐛 Updated the routing utils to fix a bug in crossing wire detection @marcelwa (#116)
  • 🎨 Fixed a few inconsistencies @marcelwa (#114)
  • 🔥 Removed unnecessary Catch2 CMake call @marcelwa (#112)
  • 🐛 Fixed a bug in color_routing @marcelwa (#113)
  • 🐛 Fixed several I/O issues @marcelwa (#111)
  • 🐛 Fixed duplicate crossing cells in the iNML technology @marcelwa (#110)
  • 🐛 Fixed a bug in the clear_tile function that lost track of PI and PO count @marcelwa (#104)
  • 👽 Updated the QLL layout writer regarding recent changes in the mQCA format @marcelwa (#102)
  • 🐛 Fixed a bug in SAT-based graph coloring (this time for real) @marcelwa (#101)
  • 🐛 Fixed a bug in SAT-based graph coloring @marcelwa (#100)
  • 🐛 Fix number regex @marcelwa (#88)
  • 💚 Switched to single-threaded CI build due to memory issues on the runners @marcelwa (#86)
  • ⚡ Made distance functions constexpr @marcelwa (#85)
  • 💚 Fixed GitHub Actions' wildcard paths resolves @marcelwa (#81)
  • 💚 Added fixes for MSVC 2022's C2760 and C3878 by utilizing type specifiers instead of types for casting and variable declaration @marcelwa (#82)
  • 👷 Added a workaround for empty review messages in the clang-tidy-review workflow @marcelwa (#70)
  • 👷 Split the clang-tidy review workflow into two separate ones @marcelwa (#69)
  • 🐛 Fixed a bug with layout DOT drawers and a small inconsistency in the tests @marcelwa (#66)
  • 👷 Activate experiments in CIs to ensure they're building @marcelwa (#63)
  • 💚 Added a macOS CI workaround to fix an issue with XCode 14.0 @marcelwa (#61)
  • 🚚 Renamed the ESP clocking scheme to ESR @marcelwa (#51)
  • 💚 Upgraded toolset to v143 for Visual Studio 2022 CI builds @marcelwa (#50)
  • 🔧 Updated the Dockerfile @marcelwa (#48)
  • 🐛 include cell_ports in fcn_gate_library.hpp @Drewniok (#43)
  • 🚨 Make sure the Bestagon experiment is not compiled if Z3 is not found @marcelwa (#36)
  • 🐛 Fixed a compilation bug that could occur by including the same header multiple times @marcelwa (#34)

📝 Documentation

  • 📝 Update the CHANGELOG to include the latest changes @marcelwa (#169)
  • 📝 Fixed some inconcistencies in the RTD documentation @marcelwa (#167)
  • 📝 Fixed namespace in SiQAD utility function documentation @marcelwa (#152)
  • 📝 Updated notes on the installation process to the documentation @marcelwa (#149)
  • 📝 Updated the list of implemented design automation algorithms @marcelwa (#144)
  • ✨ Release Drafter to automatically maintain a Draft Release @Drewniok (#139)
  • 📝 Added GitHub templates @marcelwa (#133)
  • 🎨 doxygenfunction of quicksim was under the wrong header @Drewniok (#129)
  • 📝 Revised the README badges @marcelwa (#127)
  • 📝 Added RST documentation for the SiDB simulation framework @marcelwa (#109)
  • 📝 Updated documentation @marcelwa (#87)
  • 📝 Improvements to the README and documentation @marcelwa (#77)
  • 📝 Added CodeQL, Docker, and Clang-Tidy badges to the README @marcelwa (#65)
  • 📝 Bestagon bibliography @marcelwa (#56)

✅ Testing

  • ✅ Made the DOT drawer tests independent of the version number @marcelwa (#170)
  • 🎨 Restructured sidb_charge_state and added tests @marcelwa (#168)
  • ✅ Added unit tests for ExGS and QuickSim @Drewniok (#136)
  • 🩹 Renamed functions to more appropriately reflect their role @Drewniok (#135)
  • ✅ Added tests for STL utils @marcelwa (#119)

👷 CI

  • 👷 Updated compilers on GitHub Actions to match latest runner versions @marcelwa (#166)
  • ⬆️ Bump ZedThree/clang-tidy-review from 0.10.1 to 0.12.1 @dependabot (#161)
  • ⬆️ Bump finnp/create-file-action from 1.0.0 to 2.0.0 @dependabot (#160)
  • 🎨 CI inconsistency fixes @marcelwa (#142)
  • ✨ Release Drafter to automatically maintain a Draft Release @Drewniok (#139)
  • 👷 Changed CI name @marcelwa (#141)
  • 👷 Updates to the CI platform @marcelwa (#132)
  • 💚 Switched to single-threaded CI build due to memory issues on the runners @marcelwa (#86)
  • 💚 Fixed GitHub Actions' wildcard paths resolves @marcelwa (#81)
  • 👷 Further build and CI exclusions @marcelwa (#78)
  • 👷 Added a ClangFormat linter workflow @marcelwa (#75)
  • 👷 Run CI only when necessary @marcelwa (#73)
  • ⬆️ Bump ZedThree/clang-tidy-review from 0.10.0 to 0.10.1 @dependabot (#68)
  • 👷 Added a workaround for empty review messages in the clang-tidy-review workflow @marcelwa (#70)
  • 👷 Split the clang-tidy review workflow into two separate ones @marcelwa (#69)
  • 🎨 Set up a consistent clang-tidy workflow together with a designated CI code review process @marcelwa (#64)
  • 👷 Activate experiments in CIs to ensure they're building @marcelwa (#63)
  • 💚 Added a macOS CI workaround to fix an issue with XCode 14.0 @marcelwa (#61)
  • 👷 Enable ccache for GitHub Action runners @marcelwa (#60)
  • 👷 Z3 setup action @marcelwa (#58)
  • 👷 Docker Image CI @marcelwa (#55)
  • 👷 Remove ubuntu-18.04 from CI because it is now deprecated @marcelwa (#52)
  • 💚 Upgraded toolset to v143 for Visual Studio 2022 CI builds @marcelwa (#50)
  • 👷 Updated OS and tools in the Coverage CI workflow @marcelwa (#47)
  • 👷 Set up CodeQL as a scheduled action @marcelwa (#37)
  • 👷 Updated GitHub Action CI Runners and Dependencies @marcelwa (#45)
  • Bump actions/setup-python from 2 to 4 @dependabot (#41)
  • Bump actions/cache from 2 to 3 @dependabot (#39)
  • Bump actions/checkout from 2 to 3 @dependabot (#40)

⬆️ Dependencies

39 changes