Skip to content

Commit

Permalink
Merge pull request #1439 from lnis-uofu/xt_vtr_upgrade
Browse files Browse the repository at this point in the history
Upgrade VTR to resolve the bugs in tileable routing architecture
  • Loading branch information
tangxifan authored Nov 14, 2023
2 parents 5164421 + b79703f commit ac08a94
Show file tree
Hide file tree
Showing 21 changed files with 3,283 additions and 17 deletions.
9 changes: 3 additions & 6 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -76,9 +76,6 @@ jobs:
fail-fast: false
matrix:
config:
- name: "Build Compatibility: GCC-7 (Ubuntu 20.04)"
cc: gcc-7
cxx: g++-7
- name: "Build Compatibility: GCC-8 (Ubuntu 20.04)"
cc: gcc-8
cxx: g++-8
Expand Down Expand Up @@ -137,7 +134,7 @@ jobs:
run: ccache -s
- name: Upload artifact
uses: actions/upload-artifact@v2
if: ${{ matrix.config.cc == 'gcc-8'}}
if: ${{ matrix.config.cc == 'gcc-9'}}
with:
name: openfpga
path: |
Expand Down Expand Up @@ -441,7 +438,7 @@ jobs:
chmod +x build/yosys/bin/yosys-config
chmod +x build/yosys/bin/yosys-filterlib
chmod +x build/yosys/bin/yosys-smtbmc
- name: ${{matrix.config.name}}_GCC-8_(Ubuntu 20.04)
- name: ${{matrix.config.name}}_GCC-9_(Ubuntu 20.04)
shell: bash
run: source openfpga.sh && source openfpga_flow/regression_test_scripts/${{matrix.config.name}}.sh --debug --show_thread_logs
- name: Upload artifact
Expand Down Expand Up @@ -485,7 +482,7 @@ jobs:
- name: Checkout OpenFPGA repo
uses: actions/checkout@v3

- name: ${{matrix.config.name}}_GCC-8_(Ubuntu 20.04)
- name: ${{matrix.config.name}}_GCC-9_(Ubuntu 20.04)
shell: bash
run: |
bash .github/workflows/install_dependencies_run.sh
Expand Down
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ help:
checkout:
# Update all the submodules
git submodule init
git submodule update --init --depth 1
git submodule update --init --recursive

prebuild:
# Run cmake to generate Makefile under the build directory, before compilation
Expand Down
49 changes: 48 additions & 1 deletion docs/source/manual/arch_lang/addon_vpr_syntax.rst
Original file line number Diff line number Diff line change
Expand Up @@ -88,11 +88,58 @@ Layout

.. warning:: Do NOT enable ``shrink_boundary`` if you are not using the tileable routing resource graph generator!

.. option:: opin2all_sides="<bool>"

Allow each output pin of a programmable block to drive the routing tracks on all the sides of its adjacent switch block (see an illustrative example in :numref:`fig_opin2all_sides`). This can improve the routability of an FPGA fabric with an increase in the sizes of routing multiplexers in each switch block.
By default, it is ``false``.

.. _fig_opin2all_sides:

.. figure:: ./figures/opin2all_sides.svg
:width: 100%
:alt: Impact of opin2all_sides

Impact on routing architecture when the opin-to-all-sides: (a) disabled; (b) enabled.

.. warning:: Do NOT enable ``opin2all_sides`` if you are not using the tileable routing resource graph generator!

.. option:: concat_wire="<bool>"

In each switch block, allow each routing track which ends to drive another routing track on the opposite side, as such a wire can be continued in the same direction (see an illustrative example in :numref:`fig_concat_wire`). In other words, routing wires can be concatenated in the same direction across an FPGA fabric. This can improve the routability of an FPGA fabric with an increase in the sizes of routing multiplexers in each switch block.
By default, it is ``false``.

.. _fig_concat_wire:

.. figure:: ./figures/concat_wire.svg
:width: 100%
:alt: Impact of concat_wire

Impact on routing architecture when the wire concatenation: (a) disabled; (b) enabled.

.. warning:: Do NOT enable ``concat_wire`` if you are not using the tileable routing resource graph generator!

.. option:: concat_pass_wire="<bool>"

In each switch block, allow each routing track which passes to drive another routing track on the opposite side, as such a pass wire can be continued in the same direction (see an illustrative example in :numref:`fig_concat_pass_wire`). This can improve the routability of an FPGA fabric with an increase in the sizes of routing multiplexers in each switch block.
By default, it is ``false``.

.. warning:: Please enable this option if you are looking for device support which is created by any release which is before v1.1.541!!!

.. _fig_concat_wire:

.. figure:: ./figures/concat_pass_wire.svg
:width: 100%
:alt: Impact of concat_pass_wire

Impact on routing architecture when the pass wire concatenation: (a) disabled; (b) enabled.

.. warning:: Do NOT enable ``concat_pass_wire`` if you are not using the tileable routing resource graph generator!

A quick example to show tileable routing is enabled, other options, e.g., through channels are disabled:

.. code-block:: xml
<layout tileable="true" through_channel="false" shrink_boundary="false">
<layout tileable="true" through_channel="false" shrink_boundary="false" opin2all_sides="false" concat_wire="false" concat_pass_wire="false">
</layout>
Switch Block
Expand Down
Loading

0 comments on commit ac08a94

Please sign in to comment.