-
Notifications
You must be signed in to change notification settings - Fork 396
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
Initial NoC Placement #2421
Merged
Merged
Initial NoC Placement #2421
Changes from all commits
Commits
Show all changes
41 commits
Select commit
Hold shift + click to select a range
b77eecd
Simple annealer for NoC routers in initial placement.
soheilshahrouz f27c9dc
Clarify the description for propose_router_swap().
soheilshahrouz a4ef7a3
Look for an empty location in find_compatible_compressed_loc_in_range().
soheilshahrouz ade86b5
Add router swap proposal based on the flow centroid.
soheilshahrouz c11000e
Clean the code for initial router placement.
soheilshahrouz afc7e4e
Add RouterPlacementCheckpoint to store initial router placement check…
soheilshahrouz a91abe2
Solve non-decreasing NoC cost in initial placemennt
soheilshahrouz 845e041
Re-initialize NoC-related costs when a checkpoint is restored.
soheilshahrouz f35b940
Place constrained routers in their region
soheilshahrouz da483b9
Moved RouterPlacementCheckpoint to a separate file. Used const refere…
soheilshahrouz aea8221
Call NoC-related functions only when NoC is enabled.
soheilshahrouz 49ef3c3
Cherry-picked packing changes.
soheilshahrouz 824b6b6
Add prototypes and comments for functions related to initial NoC plac…
soheilshahrouz 1547c0c
Change the condition for restoring a placement checkpoint.
soheilshahrouz 2597853
Avoid using constant and very high fanout (the same order as clock) n…
soheilshahrouz 192151b
Disable high fanout connectivity in the first packing attempt.
soheilshahrouz a71ade5
Merge branch 'master' into init_noc_sa
soheilshahrouz cfe5151
Removed initial temperature boosting for NoC designs. Removed print_n…
soheilshahrouz c9cc32d
make format
soheilshahrouz 634d852
Temporarily consider constant nets for clustering.
soheilshahrouz f715a53
cherry-picked some packing updates from noc congestion branch
soheilshahrouz 7feda70
fixed out of range NoCRouterId bug in link removal test
soheilshahrouz 3db9060
Merge branch 'master' into init_noc_sa
soheilshahrouz a31fe80
don't consider constant net candidates when NoC is enabled
soheilshahrouz ea9f5be
temporarily don't check emptiness
soheilshahrouz 8f3b2fa
Revert "temporarily don't check emptiness"
soheilshahrouz 355ba50
make format
soheilshahrouz 7295447
weigh sink block locations in centroid calculation
soheilshahrouz a1188ce
Revert "weigh sink block locations in centroid calculation"
soheilshahrouz 2b21f1c
Merge branch 'master' into init_noc_sa
soheilshahrouz e4ff934
Disable high fanout connectivity clustering for logic blocks
soheilshahrouz 375db58
Reverted packing optimizations for NoC benchmarks
soheilshahrouz 39c80f8
Reverted LOGIC_BLOCK_TYPE_HIGH_FANOUT_THRESHOLD value to 32.
soheilshahrouz d2d3904
Don't look for empty locs in init placement
soheilshahrouz 81224e3
Applied the comments.
soheilshahrouz 4439184
make format
soheilshahrouz 67f55f0
set search_for_empty to false.
soheilshahrouz 7e5ad48
Merge branch 'master' into init_noc_sa
soheilshahrouz 12b681a
updated the default value for --noc_swap_percentage option
soheilshahrouz 0617bae
Merge branch 'master' into init_noc_sa
vaughnbetz 4357180
Merge branch 'master' into init_noc_sa
soheilshahrouz File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -194,16 +194,21 @@ class t_ext_pin_util_targets { | |
public: | ||
t_ext_pin_util_targets() = default; | ||
t_ext_pin_util_targets(float default_in_util, float default_out_util); | ||
t_ext_pin_util_targets(const std::vector<std::string>& specs); | ||
t_ext_pin_util_targets& operator=(t_ext_pin_util_targets&& other) noexcept; | ||
|
||
///@brief Returns the input pin util of the specified block (or default if unspecified) | ||
t_ext_pin_util get_pin_util(std::string block_type_name) const; | ||
t_ext_pin_util get_pin_util(const std::string& block_type_name) const; | ||
|
||
///@brief Returns a string describing input/output pin utilization targets | ||
std::string to_string() const; | ||
|
||
public: | ||
/** | ||
* @brief Sets the pin util for the specified block type | ||
* @return true if non-default was previously set | ||
*/ | ||
void set_block_pin_util(std::string block_type_name, t_ext_pin_util target); | ||
void set_block_pin_util(const std::string& block_type_name, t_ext_pin_util target); | ||
|
||
/** | ||
* @brief Sets the default pin util | ||
|
@@ -219,16 +224,22 @@ class t_ext_pin_util_targets { | |
class t_pack_high_fanout_thresholds { | ||
public: | ||
t_pack_high_fanout_thresholds() = default; | ||
t_pack_high_fanout_thresholds(int threshold); | ||
explicit t_pack_high_fanout_thresholds(int threshold); | ||
explicit t_pack_high_fanout_thresholds(const std::vector<std::string>& specs); | ||
t_pack_high_fanout_thresholds& operator=(t_pack_high_fanout_thresholds&& other) noexcept; | ||
|
||
///@brief Returns the high fanout threshold of the specifi ed block | ||
int get_threshold(const std::string& block_type_name) const; | ||
|
||
int get_threshold(std::string block_type_name) const; | ||
///@brief Returns a string describing high fanout thresholds for different block types | ||
std::string to_string() const; | ||
|
||
public: | ||
/** | ||
* @brief Sets the pin util for the specified block type | ||
* @return true if non-default was previously set | ||
*/ | ||
void set(std::string block_type_name, int threshold); | ||
void set(const std::string& block_type_name, int threshold); | ||
|
||
/** | ||
* @brief Sets the default pin util | ||
|
@@ -723,6 +734,11 @@ struct t_pl_loc { | |
, y(yloc) | ||
, sub_tile(sub_tile_loc) | ||
, layer(layer_num) {} | ||
t_pl_loc(const t_physical_tile_loc& phy_loc, int sub_tile_loc) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Add a brief comment for the constructors (can just say various constructors) |
||
: x(phy_loc.x) | ||
, y(phy_loc.y) | ||
, sub_tile(sub_tile_loc) | ||
, layer(phy_loc.layer_num) {} | ||
|
||
int x = OPEN; | ||
int y = OPEN; | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Think about whether you should have these two packing classes in vpr_types.h, or if you should move them into a packing header (could be a new one).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It sounds like these should go in an existing or a new packing_utility.h or some such.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Both high fanout threshold and target pin utilization are commang line arguements that impact the packing stage. I think if we move these two classes two a separate file, we also need to move other packing data types like e_balance_block_type_util and e_unrelated_clustering to the same file. What is your view on this?