-
Notifications
You must be signed in to change notification settings - Fork 415
Add a new API set_node_rc_index() to RRGraphBuilder #1887
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
Changes from 4 commits
71d9f17
e535241
cf31a73
e0e97c5
abb68da
94a6827
82c5913
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -1437,7 +1437,7 @@ static void build_rr_sinks_sources(RRGraphBuilder& rr_graph_builder, | |
rr_graph_builder.set_node_coordinates(inode, i, j, i + type->width - 1, j + type->height - 1); | ||
float R = 0.; | ||
float C = 0.; | ||
L_rr_node.set_node_rc_index(inode, find_create_rr_rc_data(R, C)); | ||
rr_graph_builder.set_node_rc_index(inode, find_create_rr_rc_data(R, C)); | ||
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. @hariszafar-lm If you see any functions in rr_graph.cpp and rr_graph2.cpp which no longer use the old data structure 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. Noted, I'll create a separate PR for this. |
||
rr_graph_builder.set_node_class_num(inode, iclass); | ||
} | ||
|
||
|
@@ -1485,7 +1485,7 @@ static void build_rr_sinks_sources(RRGraphBuilder& rr_graph_builder, | |
rr_graph_builder.set_node_capacity(inode, 1); | ||
float R = 0.; | ||
float C = 0.; | ||
L_rr_node.set_node_rc_index(inode, find_create_rr_rc_data(R, C)); | ||
rr_graph_builder.set_node_rc_index(inode, find_create_rr_rc_data(R, C)); | ||
rr_graph_builder.set_node_pin_num(inode, ipin); | ||
|
||
//Note that we store the grid tile location and side where the pin is located, | ||
|
@@ -1674,7 +1674,7 @@ static void build_rr_chan(RRGraphBuilder& rr_graph_builder, | |
int length = end - start + 1; | ||
float R = length * seg_details[track].Rmetal(); | ||
float C = length * seg_details[track].Cmetal(); | ||
L_rr_node.set_node_rc_index(node, find_create_rr_rc_data(R, C)); | ||
rr_graph_builder.set_node_rc_index(node, find_create_rr_rc_data(R, C)); | ||
|
||
rr_graph_builder.set_node_type(node, chan_type); | ||
rr_graph_builder.set_node_track_num(node, track); | ||
|
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.
@hariszafar-lm I had a discussion with @vaughnbetz . We believe it is better to use a strong id here, e.g., NodeRcIndex, rather than an integer. Can you look into the implementation here:
vtr-verilog-to-routing/vpr/src/device/rr_graph_fwd.h
Line 18 in b3e8685
And then create a strong id for the RC index? For internal data of RRGraphBuilder, you can still use integer.
But for the API, we force the use of strong ids.
Let me know if this makes sense or not.
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.
Hi @tangxifan, could you review it now. I had created and implemented strong id for it in this commit.