@@ -221,8 +221,41 @@ ChanNodeDetails build_unidir_chan_node_details(const size_t& chan_width,
221
221
num_tracks_bend.push_back (num_tracks[iseg] * seg_len[i] / segment_inf[iseg].length );
222
222
223
223
VTR_ASSERT (num_tracks_bend[0 ] + num_tracks_bend[1 ] == num_tracks[iseg]);
224
+
225
+ for (size_t itrack = 0 ; itrack < num_tracks[iseg]; ++itrack) {
226
+ bool seg_start = false ;
227
+ bool seg_end = false ;
228
+ size_t seg_bend_start = 0 ;
229
+ size_t seg_bend_end = 0 ;
230
+
231
+ if (0 == itrack % segment_inf[iseg].length ) {
232
+ seg_start = true ;
233
+ }
234
+
235
+ if (seg_len[0 ] == int (itrack) % segment_inf[iseg].length ) {
236
+ seg_start = true ;
237
+ seg_bend_start = bend_num;
238
+ }
239
+
240
+ if (seg_len[0 ] - 1 == int (itrack) % segment_inf[iseg].length ) {
241
+ seg_end = true ;
242
+ seg_bend_end = bend_num;
243
+ }
244
+
245
+ if ((segment_inf[iseg].length - 1 == int (itrack) % segment_inf[iseg].length )
246
+ || (itrack == num_tracks[iseg] - 1 )) {
247
+ seg_end = true ;
248
+ }
249
+
250
+ int seg_index = segment_inf[iseg].seg_index ;
251
+
252
+ chan_node_details.add_track (cur_track, Direction::INC, seg_index, seg_len[0 ], seg_start, seg_end, seg_bend_start, seg_bend_end);
253
+ cur_track++;
254
+ chan_node_details.add_track (cur_track, Direction::DEC, seg_index, seg_len[0 ], seg_start, seg_end, seg_bend_start, seg_bend_end);
255
+ cur_track++;
256
+ }
224
257
225
- for (size_t itrack = 0 ; itrack < num_tracks_bend[0 ]; ++itrack) {
258
+ /* for (size_t itrack = 0; itrack < num_tracks_bend[0]; ++itrack) {
226
259
227
260
bool seg_start = false;
228
261
bool seg_end = false;
@@ -270,7 +303,7 @@ ChanNodeDetails build_unidir_chan_node_details(const size_t& chan_width,
270
303
chan_node_details.add_track(cur_track, Direction::DEC, seg_index, seg_len[1], seg_start, seg_end, seg_bend_start, seg_bend_end);
271
304
cur_track++;
272
305
273
- }
306
+ }*/
274
307
}
275
308
}
276
309
/* Check if all the tracks have been satisified */
0 commit comments