Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

✨ Added the CFE clocking scheme #44

Merged
merged 10 commits into from
Aug 5, 2022
Merged
2 changes: 1 addition & 1 deletion .github/workflows/coverage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ jobs:
- name: Build
working-directory: ${{github.workspace}}/build

run: cmake --build . --config $BUILD_TYPE -j2
run: cmake --build . --config $BUILD_TYPE

- name: Test
working-directory: ${{github.workspace}}/build
Expand Down
42 changes: 21 additions & 21 deletions .github/workflows/macos.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,40 +7,40 @@ defaults:
shell: bash

env:
Z3_GIT_TAG: z3-4.8.12
Z3_GIT_TAG: z3-4.10.0

jobs:
build_and_test:
strategy:
matrix:
os: [ macos-10.15 ] # macos-11 when supported
compiler: [ g++-9, g++-10, clang++ ] # clang++12
os: [ macos-11, macos-12 ]
compiler: [ g++-11, clang++ ]
build_type: [ Debug, Release ]
include:
- compiler: g++-9
ccompiler: gcc
- compiler: g++-10
ccompiler: gcc
- compiler: clang++
ccompiler: clang
- compiler: g++-11
ccompiler: gcc
- os: macos-11
compiler: g++-9
build_type: Debug
- os: macos-11
compiler: g++-9
build_type: Release
ccompiler: gcc
- os: macos-11
compiler: g++-10
ccompiler: gcc
build_type: Debug
- os: macos-11
compiler: g++-10
ccompiler: gcc
build_type: Release

name: ${{matrix.os}} with ${{matrix.compiler}} (${{matrix.build_type}} mode)
runs-on: ${{matrix.os}}

steps:
- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: '3.9.x'

- name: Install pip packages
uses: BSFishy/pip-action@v1
with:
packages: |
graphviz
python-sat==0.1.6.dev6
wrapt_timeout_decorator

- name: Clone Repository
uses: actions/checkout@v3
with:
Expand All @@ -67,7 +67,7 @@ jobs:
- name: Configure CMake
working-directory: ${{github.workspace}}/build

run: cmake ${{github.workspace}} -DCMAKE_CXX_COMPILER=${{matrix.compiler}} -DCMAKE_BUILD_TYPE=${{matrix.build_type}} -DFICTION_CLI=ON -DFICTION_TEST=ON -DFICTION_Z3=ON -DFICTION_Z3_SEARCH_PATHS=${{github.workspace}}/z3lib -DFICTION_ENABLE_MUGEN=ON -DFICTION_PROGRESS_BARS=OFF -DMOCKTURTLE_EXAMPLES=OFF -DWARNINGS_AS_ERRORS=OFF
run: cmake ${{github.workspace}} -DCMAKE_CXX_COMPILER=${{matrix.compiler}} -DCMAKE_BUILD_TYPE=${{matrix.build_type}} -DFICTION_CLI=ON -DFICTION_TEST=ON -DFICTION_Z3=ON -DFICTION_Z3_SEARCH_PATHS=${{github.workspace}}/z3lib -DFICTION_PROGRESS_BARS=OFF -DMOCKTURTLE_EXAMPLES=OFF -DWARNINGS_AS_ERRORS=OFF

- name: Build
working-directory: ${{github.workspace}}/build
Expand Down
33 changes: 22 additions & 11 deletions .github/workflows/ubuntu.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,18 +7,32 @@ defaults:
shell: bash

env:
Z3_GIT_TAG: z3-4.8.12
Z3_GIT_TAG: z3-4.10.0

jobs:
build_and_test:
strategy:
matrix:
os: [ ubuntu-20.04, ubuntu-18.04 ]
compiler: [ g++-9, g++-10, clang++-9, clang++-10 ]
os: [ ubuntu-18.04, ubuntu-20.04, ubuntu-22.04 ]
compiler: [ g++-9, g++-10, clang++-10, clang++-11, clang++-12 ]
build_type: [ Debug, Release ]
exclude:
- os: ubuntu-18.04
compiler: clang++-11
- os: ubuntu-18.04
compiler: clang++-12
- os: ubuntu-22.04
compiler: clang++-10
include:
- os: ubuntu-18.04
compiler: clang++-9
build_type: Debug
- os: ubuntu-18.04
compiler: clang++-9
build_type: Release
- os: ubuntu-20.04
compiler: g++-10
build_type: Release
cppstandard: -DFICTION_CXX_STANDARD=20
cppname: C++20

Expand All @@ -34,19 +48,16 @@ jobs:
with:
python-version: '3.9.x'

- name: Install pip packages
uses: BSFishy/pip-action@v1
with:
packages: |
graphviz
python-sat==0.1.6.dev6
wrapt_timeout_decorator

- name: Clone Repository
uses: actions/checkout@v3
with:
submodules: recursive

- name: Install pip packages
uses: BSFishy/pip-action@v1
with:
requirements: ${{github.workspace}}/libs/mugen/requirements.txt

- name: Cache Z3 Solver
id: cache-z3-solver
uses: actions/cache@v3
Expand Down
11 changes: 4 additions & 7 deletions .github/workflows/windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,28 +7,25 @@ defaults:
shell: pwsh # use pwsh as directory handling does not seem to work with bash

env:
Z3_GIT_TAG: z3-4.8.12
Z3_GIT_TAG: z3-4.10.0

jobs:
build_and_test:
strategy:
matrix:
os: [ windows-2019 ]
os: [ windows-2019, windows-2022 ]
toolset: [ v142, ClangCL ]
build_type: [ Debug, Release ]
include:
- os: windows-2019
env: "Visual Studio 16 2019"
- os: windows-2022
env: "Visual Studio 17 2022"

name: ${{matrix.os}} with ${{matrix.env}} and ${{matrix.toolset}} toolset (${{matrix.build_type}} mode)
runs-on: ${{matrix.os}}

steps:
- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: '3.9.x'

- name: Clone Repository
uses: actions/checkout@v3
with:
Expand Down
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -124,9 +124,9 @@ Built-in schemes are
|:--------------------------------------------------------:|:------------------------------------------------------------------------:|:-------------------------------------------------------------------------:|
| <img src="docs/_static/use.png" alt="USE" height="200"/> | <img src="docs/_static/res.png" alt="RES" height="200"/> | <img src="docs/_static/esp.png" alt="2DDWave" height="200"/> |

| [BANCS](https://ieeexplore.ieee.org/document/8533251) |
|:------------------------------------------------------------:|
| <img src="docs/_static/bancs.png" alt="BANCS" height="300"/> |
| [CFE](https://ietresearch.onlinelibrary.wiley.com/doi/10.1049/iet-cds.2019.0096) | [BANCS](https://ieeexplore.ieee.org/document/8533251) |
|:------------------------------------------------------------------------------------:|:------------------------------------------------------------:|
| <img src="docs/_static/cfe.png" alt="CFE" height="200"/> | <img src="docs/_static/bancs.png" alt="BANCS" height="300"/> |

plus the mentioned irregular open clocking that works via a clock map instead of a regular extrapolated cutout.

Expand Down
2 changes: 1 addition & 1 deletion cli/cmd/physical_design/exact.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -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");
Expand Down
3 changes: 2 additions & 1 deletion cli/cmd/physical_design/onepass.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -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");
Expand Down
Binary file added docs/_static/cfe.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion docs/getting_started.rst
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ It has some further Python dependencies that can be installed via ``pip3``::
pip3 install python-sat==0.1.6.dev6 wrapt_timeout_decorator graphviz

The Python3 integration is experimental and may cause issues on some systems. It is currently not available on Windows
due to issues with ``python-sat``. Mugen requires at least Python 3.7!
and some macOS versions due to issues with ``python-sat``. Mugen requires at least Python 3.7!

Finally, before building *fiction*, pass ``-DFICTION_ENABLE_MUGEN=ON`` to the ``cmake`` call.

Expand Down
8 changes: 8 additions & 0 deletions docs/layouts/clocking_scheme.rst
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,14 @@ ESP

.. doxygenfunction:: fiction::esp_clocking

CFE
###

.. figure:: /_static/cfe.png
:width: 200

.. doxygenfunction:: fiction::cfe_clocking

BANCS
#####

Expand Down
Loading