You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* @brief This routine calculate pin connections to tracks for a specific type on the Fc value defined for each pin in the architecture file.
102
+
* For each type, it will loop through all segments and calculate how many connections should be made, returns the connections for all pins of that type.
103
+
*
104
+
* @param pin_type Specifies whether the routine should connect tracks to *INPUT* pins or connect *OUTPUT* pins to tracks.
105
+
* @param Fc Actual Fc value described in the architecture file for all pins of the specific phyiscal type ([0..number_of_pins-1][0..number_of_segments-1]).
106
+
* @param Type Physical type information, such as total number of pins, block width, block height, and etc.
107
+
* @param type_layer Layer indicies on which the physical type located.
108
+
* @param perturb_switch_pattern Specifies whether connections should be distributed unevenly across the channel or not.
109
+
* @param directionality Segment directionality, should be either *UNI-DIRECTIONAL* or *BI-DIRECTIONAL*
110
+
* @param seg_inf Segments informations, such as length, frequency, and etc.
111
+
* @param sets_per_seg_type Number of available sets within the channel_width of each segment type
112
+
*
113
+
* @return an 5D matrix which keeps the track indicies connected to each pin ([0..num_pins-1][0..width-1][0..height-1][0..layer-1][0..sides-1]).
* @brief This routine calculate pin connections to tracks for a specific type and a specific segment based on the Fc value
126
+
* defined for each pin in the architecture file. This routine is called twice for each combination of block type and segment
127
+
* type: 1) connecting tracks to input pins 2) connecting output pins to tracks.
128
+
*
129
+
* @param pin_type Specifies whether the routine should connect tracks to *INPUT* pins or connect *OUTPUT* pins to tracks.
130
+
* @param Fc Actual Fc value described in the architecture file for all pins of the specific phyiscal type ([0..number_of_pins-1][0..number_of_segments-1]).
131
+
* @param seg_type_tracks Number of tracks that is avaliable for the specific segment.
132
+
* @param seg_index The segment index that the function is trying to connect to pins.
133
+
* @param max_Fc Used to allocate max possible space for simplicity.
134
+
* @param Type Physical type information, such as total number of pins, block width, block height, and etc.
135
+
* @param type_layer Layer indicies on which the physical type located.
136
+
* @param perturb_switch_pattern Specifies whether connections should be distributed unevenly across the channel or not.
137
+
* @param directionality Segment directionality, should be either *UNI-DIRECTIONAL* or *BI-DIRECTIONAL*
138
+
*
139
+
* @return an 6D matrix which keeps the track indicies connected to each pin ([0..num_pins-1][0..width-1][0..height-1][0..layer-1][0..sides-1][0..Fc-1]).
* @brief Loads the tracks_connected_to_pin array with an even distribution of switches across the tracks for each pin.
338
+
*
339
+
* @param tracks_connected_to_pin The funtion loads up this data structure with a track index for each pin ([0..num_pins-1][0..width-1][0..height-1][0..layer-1][0..sides-1][0..Fc-1]]).
340
+
* @param pin_locations Physical pin informations, such as pin_index in the physical type, side, and etc.
341
+
* @param Fc Actual Fc value described in the architecture file for all pins of the specific phyiscal type ([0..number_of_pins-1][0..number_of_segments-1]).
342
+
* @param seg_index The segment index that the function is trying to connect to pins.
343
+
* @param x_chan_width Number of tracks in x-axis.
344
+
* @param y_chan_width Number of tracks in y-axis.
345
+
* @param directionality Segment directionality, should be either *UNI-DIRECTIONAL* or *BI-DIRECTIONAL*
* @brief Loads the tracks_connected_to_pin array with an unevenly distributed set of switches across the channel.
358
+
*
359
+
* @param tracks_connected_to_pin The funtion loads up this data structure with a track index for each pin ([0..num_pins-1][0..width-1][0..height-1][0..layer-1][0..sides-1][0..Fc-1]]).
360
+
* @param pin_locations Physical pin informations, such as pin_index in the physical type, side, and etc.
361
+
* @param x_chan_width Number of tracks in x-axis.
362
+
* @param y_chan_width Number of tracks in y-axis.
363
+
* @param Fc Actual Fc value described in the architecture file for all pins of the specific phyiscal type ([0..number_of_pins-1][0..number_of_segments-1]).
364
+
* @param seg_index The segment index that the function is trying to connect to pins.
365
+
* @param directionality Segment directionality, should be either *UNI-DIRECTIONAL* or *BI-DIRECTIONAL*
0 commit comments