Skip to content

Route 3d #2330

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

Merged
merged 83 commits into from
Jul 17, 2023
Merged

Route 3d #2330

merged 83 commits into from
Jul 17, 2023

Conversation

saaramahmoudi
Copy link
Contributor

@saaramahmoudi saaramahmoudi commented May 31, 2023

Description

In this PR, I have modified the RRGraph generation to support more than one available die (e.g., 3D FPGA). I have changed the tag in arch file to describe an attribute named "layer_offset". The layer_offset for each physical pin will specify which layer this pin is connected to. Hence, an IPIN/OPIN located at layer 0 can be connected to the upper die with layer_offset=1.

Since we have more than one die available, we want to give the user the ability to specify which die(dice) has global routing resources (wire segment, switch blocks, ..). Hence, a new optional attribute is defined for the tag called "has_routing_resources" and it can hint the RRGraph to build or ignore the routing resource graph for each die.

Related Issue

This PR is entirely dependent on place_3d, shouldn't be merged before the place_3d PR.

Types of changes

  • Bug fix (change which fixes an issue)
  • New feature (change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

  • My change requires a change to the documentation
  • I have updated the documentation accordingly
  • I have added tests to cover my changes
  • All new and existing tests passed

@saaramahmoudi saaramahmoudi changed the title [WP] route_3d [WIP] Route 3d May 31, 2023
@saaramahmoudi
Copy link
Contributor Author

@amin1377

VPR Command:
$VTR_ROOT/vtr_flow/arch/multi_die/3d_k4_N4_90nm.xml $VTR_ROOT/vtr_flow/benchmarks/blif/4/alu4.blif --device "FPGA3D" --route_chan_width 40

Problem:
When only OPINs are connected across different layers, compute delta delay takes a lot of time.

@saaramahmoudi
Copy link
Contributor Author

@amin1377

For S-IV with all IPINs and OPINs connectd to other layers: vtr_flow/arch/multi_die/stratixiv_arch.timing.xml
For S-IV with only OPINs connected to other layers: vtr_flow/arch/multi_die/stratixiv_arch.timing_OPINs.xml

@saaramahmoudi
Copy link
Contributor Author

@amin1377 I have attached koios architecture files under arch/multi_die.

Both OPINS and IPINS: vtr_flow/arch/multi_die/k6FracN10LB_mem20K_complexDSP_customSB_22nm.xml

Only OPINS: vtr_flow/arch/multi_die/k6FracN10LB_mem20K_complexDSP_customSB_22nm_OPINs.xml

@saaramahmoudi
Copy link
Contributor Author

Here is the branch result for 2d benchmarks (Titan and VTR) to double check that my changes didn't degrade the QoR for 2d designs. The branch is compared to current master branch.
QoR check

@saaramahmoudi
Copy link
Contributor Author

@vaughnbetz ready to merge.

@vaughnbetz vaughnbetz merged commit 5a6249a into master Jul 17, 2023
@vaughnbetz vaughnbetz deleted the inter_die_communication branch July 17, 2023 17:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
libarchfpga Library for handling FPGA Architecture descriptions VPR VPR FPGA Placement & Routing Tool
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants