-
Notifications
You must be signed in to change notification settings - Fork 415
Clock modeling 2 #405
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
Clock modeling 2 #405
Changes from 62 commits
Commits
Show all changes
115 commits
Select commit
Hold shift + click to select a range
0410e62
Added the VPR option for modeling clocks to the router options
mustafabbas b586169
Connected clock pins to general routing depending on VPR option
mustafabbas b0d4c64
Passed parameter to route clocks in the timing driven router
mustafabbas e55dee6
Matched the router and timing analyzer net delay for global nets
mustafabbas a6c0fd6
Reverted commits that routed the clock using general routing
mustafabbas cc7a27c
Added an option to route clock nets through a dedicated clock network
mustafabbas 36bb832
Added clock_modeling_method to router options
mustafabbas 5558d20
Added a StrongId for t_rr_node
mustafabbas 9c8ab0d
Fix: rename change that caused a merge conflict
mustafabbas 34dc89a
Passed clock modeling router option to rr_graph generation code
mustafabbas 992ab30
Simple Star clock model (code resused from other parts in the code base)
mustafabbas de4c718
skeleton of clock network generation code
mustafabbas 5105760
Added Spine and Rib wires rr_node generation code
mustafabbas cc25946
Added drive point node and started clock switch generation
mustafabbas 49c7747
Moved clock network base class and its children to a sperate file
mustafabbas 96f67e7
Added Switchs into reverse lookup
mustafabbas 10f5a43
Added skelton of clock edge creation
mustafabbas 217d366
Added clock network switches
mustafabbas c9c4bd9
Added missing information in clock rr nodes
mustafabbas 11f15af
Allowed clock to be routable (still needs fixing)
mustafabbas 1fb4c90
Added boundry checks for clock wires and adjusted ptc num calculation
mustafabbas ab1e441
Added support to draw edges for zero length wires in an unconventiona…
mustafabbas d5eb144
Better way to get ptc num for clock
mustafabbas b17afb7
Revert "Allowed clock to be routable (still needs fixing)"
mustafabbas cf66303
Safer way to acess is_global pin array in treat_clock_pins_as_non_glo…
mustafabbas d6ff779
Made clock nets routable with dedicated clock network
mustafabbas 1636472
used a safer function to set ptc_num
mustafabbas 22a1610
Code cleanup for clock to pin create_switches()
mustafabbas 3ed093b
Changed rr_indexed_data from array to vector
mustafabbas 037a937
Fixed mistake when selecting when to treat clock pins as global
mustafabbas 43b7425
Added missing direction attribute value to clock rr_nodes
mustafabbas 75d85ca
Adjusted drawing leave enough space for channel width
mustafabbas a30b19f
refractored alloc_and_load_rr_index_data to make it easier to use for…
mustafabbas dd99cb7
Added assert and modified load rr index data function to be more flex…
mustafabbas 77e086c
Changed segment_inf array to vector
mustafabbas 01bc66e
modified load rr index data function to be more flexible
mustafabbas 2349795
Ensure that ortho_cost_index does not go out of bounds
mustafabbas b98c56b
removed nun_seg and used segment_inf.size() instead
mustafabbas 59ac675
Revert "Added suppport to draw edges for zero lenght wires"
mustafabbas b3d1425
Added seg_index class variable to rr_node and set it in rr_graph.cpp
mustafabbas df35875
Fixed routing issue for clocks by reseting the seed per function call
mustafabbas 634d24d
Parsed clock network into intermediate data types
mustafabbas ec8dab7
minor comment fixes
mustafabbas fefac09
moved data from arch to new clock networks vector in vpr context
mustafabbas 3235405
Added parsing for clock connections
mustafabbas 1855561
Addjusted boundry conditions for clock creation
mustafabbas 7c0448d
Made rr_switch_inf into a vector
mustafabbas cab6036
Moved call to create clock nodes into create_rr_graph
mustafabbas 3bbc2b3
Added clock switches to rr_switches
mustafabbas ec50220
Added function to set the cost index based on the seg index
mustafabbas 6721fc2
Added clock segments
mustafabbas 2e3bc39
Reverted modifications made to rr_graph_indexed_data
mustafabbas 8e2ef4e
Changed pointer types in segment_inf to vector types
mustafabbas ecdca5e
Changed char* to string in t_segment_inf
mustafabbas 7d9aed1
Added a check to skip connecting clock pins to clock networks if a bl…
mustafabbas 29d7ae0
Added basic clock arrchitecture example
mustafabbas e40a0be
Eddited the drive buffer to be sized according to the regular routing…
mustafabbas fde6a79
Renamed is_global_pin flag to is_ignored_pin
mustafabbas d2d6024
Renamed is_global_net to is_ignored_net
mustafabbas b3ff343
Removed unused create_start_model function in rr_graph_clock
mustafabbas d1655d3
Added a is_pin_global flag and used it to mark nets as global
mustafabbas 1cc850d
Ignore high fanout bounding box if routing a global net
mustafabbas ea44e95
Added missing c_str_conversion for printing segments
mustafabbas c1fe45b
Added missing c_str conversion for printing metal layers
mustafabbas f938a50
Added missing c_str conversion for printing clock errors
mustafabbas c23cf60
Added missing c_str conversion for printing segments rr_graph.cpp
mustafabbas 51743c0
vpr: Avoid access to invalid segment
kmurray 3e95697
vtr_flow/arch: Added a second clock instance to the rib and spine clo…
mustafabbas 9d660bd
vtr_flow: Added a clock arch with a rib and spine clock network where…
mustafabbas 605cc5a
Fixed warning about unsigned vs signed comparison
mustafabbas 1a6d5ff
merge branch master
mustafabbas 17dbb03
Merge branch 'master' into clock_modeling_2
mustafabbas da830a1
Clock Modeling:commenting on how the ptc num is requested and updated
mustafabbas 2788ef1
Clock Modeling: Renamed ClockRRGraph class to ClockRRGraphBuilder
mustafabbas 0af6e69
Clock Modeling: Adding comments to clock_name_to_switch_points map he…
mustafabbas fd19ade
Clock Modeling: Adding comments to SwitchPoint classes used to store …
mustafabbas ae598ae
Clock Modeling: Renamed switch_name to switchpoint_name to be consist…
mustafabbas 69d6e5d
Clock Modeling: Adding comments for how to use SwitchPoint class
mustafabbas 17ca1c3
Clock Modeling: Clarifing boundry conditions
mustafabbas 31b4324
Clock Modeling: Fixing comment on wire creating above and below the d…
mustafabbas 46646e1
Clock Modeling: Adding a comment to explain why tap locations are rec…
mustafabbas d81fa06
Clock Modeling: Renamed function for creating clock wires to clearly …
mustafabbas ebc701d
Clock Modeling: Adding disclaimer to set_cost_index for which the act…
mustafabbas b9994cd
Clock Modeling: Inserting a comment relating to unused segment_inf data
mustafabbas 0fe65b1
Clock Modeling: Adding a highlevel comment to ClockRRGraphBuilder bui…
mustafabbas a901810
Clock Modeling: Removing unused function get_connection_type
mustafabbas 0fb8448
Clock Modeling: Removed commented out code
mustafabbas efbd439
Clock Modeling: renamed switch_name to switch_point_name
mustafabbas 71844b5
Clock Modeling: Renamed switch_index to rr_switch_index
mustafabbas 247e951
Clock Modeling: Created a variable to describe the number of inter bl…
mustafabbas 3b23176
Clock Modeling: Removed functions in RoutingToClockConnection class a…
mustafabbas 869b7ca
Clock Modeling: Renamed indices to rr_node_indices
mustafabbas 61aa34a
Clock Modeling: Adding comments to explain how clock to clock connect…
mustafabbas 816485d
Clock Modeling: Added comment describing the limitaions of the ClockT…
mustafabbas 786075f
Clock Modeling: Better naming in ClockToPinConnection class
mustafabbas 26c94a6
Clock Modeling: Commenting function in ClockRRGraphBuilder
mustafabbas 72a2f38
Clock Modeling: Added comment to clarify add_rr_switches_and_map_to_n…
mustafabbas fc0922b
Merge branch 'master' into clock_modeling_2
mustafabbas 6e38548
Clock Modeling: Renamed switch to switchPoints
mustafabbas 1c6deeb
Clock Modeling: Renamed clockConnection to clockRouting
mustafabbas df78a62
Clock Modeling: Changed dynamic casts to make_unique and move
mustafabbas 7bf127f
Clock Modeling: Replaced repeated split function with the one in vtr_…
mustafabbas 0a170ad
Clock Modeling: Capitalized special values 'clock' and 'routing' in c…
mustafabbas bb1041e
Clock Modeling: Added comment to clarify what setup_clock_network_wir…
mustafabbas 4915283
Clock Modeling: Renamed buffer to switch_name in the clock arch descr…
mustafabbas c58e5e8
Clock Modeling: Renamed file clock_{network|connection}_types files t…
mustafabbas 7e5c49c
Clock Modeling: Added expect_only_children() and expect_only_attribut…
mustafabbas 754656c
Clock Modeling: Grouping clock related data types
mustafabbas a16d529
Merge branch 'master' into clock_modeling_2
mustafabbas 5c0bde0
Clock Modeling: Made repeatx and repeaty optional for clock networks …
mustafabbas a31813c
Clock Modeling: Refactored load_rr_switch_inf for code reuse
mustafabbas e7ea3e1
Clock Modeling: Removing seg index from rr_nodes
mustafabbas 7425a53
Merge branch 'master' into clock_modeling_2
mustafabbas 2794983
Renaming is_global_net to net_is_global
mustafabbas 4a5867c
Clock Modeling: Adding Regression test for dedicated clock
mustafabbas 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 hidden or 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 hidden or 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 hidden or 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 |
---|---|---|
@@ -0,0 +1,64 @@ | ||
#ifndef CLOCK_TYPES_H | ||
#define CLOCK_TYPES_H | ||
|
||
#include <string> | ||
#include <vector> | ||
|
||
enum class e_clock_type { | ||
SPINE, | ||
RIB, | ||
H_TREE | ||
}; | ||
|
||
struct t_metal_layer { | ||
float r_metal; | ||
float c_metal; | ||
}; | ||
|
||
struct t_wire_repeat { | ||
std::string x; | ||
std::string y; | ||
}; | ||
|
||
struct t_wire { | ||
std::string start; | ||
std::string end; | ||
std::string position; | ||
}; | ||
|
||
struct t_clock_drive { | ||
std::string name; | ||
std::string offset; | ||
int arch_switch_idx; | ||
}; | ||
|
||
struct t_clock_taps { | ||
std::string name; | ||
std::string offset; | ||
std::string increment; | ||
}; | ||
|
||
struct t_clock_network_arch { | ||
std::string name; | ||
int num_inst; | ||
|
||
e_clock_type type; | ||
|
||
std::string metal_layer; | ||
t_wire wire; | ||
t_wire_repeat repeat; | ||
t_clock_drive drive; | ||
t_clock_taps tap; | ||
}; | ||
|
||
struct t_clock_connection_arch { | ||
std::string from; | ||
std::string to; | ||
int arch_switch_idx; | ||
std::string locationx; | ||
std::string locationy; | ||
float fc; | ||
}; | ||
|
||
#endif | ||
|
This file contains hidden or 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 hidden or 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 hidden or 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.
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.
Uh oh!
There was an error while loading. Please reload this page.