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
The manual moves feature allows the user to specify the next move in placement. If the move is legal, blocks are swapped and the new move is shown on the architecture.
To enable the feature, activate the Manual Move toggle button and press Proceed. Alternatively, the user can active the Manual Move toggle button and click on the block to be moved.
On the manual move window, the user can specify the Block ID/Block name of the block to move and the To location, with the x position, y position and subtile position. For the manual move to be valid:
230
+
231
+
- The To location requested by the user should be within the grid's dimensions.
232
+
- The block to be moved is found, valid and not fixed.
233
+
- The blocks to be swapped are compatible.
234
+
- The location choosen by the user is different from the block's current location.
235
+
236
+
If the manual move is legal, the cost summary window will display the delta cost, delta timing, delta bounding box cost and the placer's annealing decision that would result from this move.
Copy file name to clipboardExpand all lines: vpr/src/draw/manual_moves.h
+9-5Lines changed: 9 additions & 5 deletions
Original file line number
Diff line number
Diff line change
@@ -4,7 +4,7 @@
4
4
* @date 2021-07-19
5
5
* @brief Contains the function prototypes needed for manual moves feature.
6
6
*
7
-
* Includes the data structures sed and gtk function for manual moves. The Manual Move Generator class is defined manual_move_generator.h/cpp.
7
+
* Includes the data structures and gtk function for manual moves. The Manual Move Generator class is defined manual_move_generator.h/cpp.
8
8
*/
9
9
10
10
#ifndef MANUAL_MOVES_H
@@ -15,6 +15,7 @@
15
15
16
16
# include"ezgl/application.hpp"
17
17
# include"ezgl/graphics.hpp"
18
+
# include"manual_move_generator.h"
18
19
19
20
# include"move_utils.h"
20
21
# include<cstdio>
@@ -30,7 +31,7 @@
30
31
* Contains information about the block, location, validity of user input, timing variables, and placer outcomes.
31
32
*
32
33
* GUI writes to:
33
-
* blockID: Stores the block ID of the block requested to move by the user.
34
+
* blockID: Stores the block ID of the block requested to move by the user. This block is the from block in the move generator.
34
35
* x_pos: Stores the x position of the block requested to move by the user.
35
36
* y_pos: Stores the y position of the block requested to move by the user.
36
37
* subtile: Stores the subtile of the block requested to move by the user.
@@ -89,7 +90,7 @@ bool manual_move_is_selected();
89
90
/**
90
91
* @brief Draws the manual move window.
91
92
*
92
-
* Window prompts the user for input: block id/name, s position, y position, and subtile position.
93
+
* Window prompts the user for input: block id/name used as the from block in the move generator, x position, y position, and subtile position.
93
94
* @param block_id: The block id is passed in if the user decides to highlight the block in the UI. If the user decides to manually input the block ID in the manual move window, the string will be empty and the block ID will later be assigned to ManualMovesState struct.
* Checks if the user input is between the grid's dimensions, block comptaibility, if the block requested to move is valid, if the block is fixed, and if the curent location of the block is different from the location requested by the user.
110
-
* @param block_id: The ID of the block to move.
111
+
* @param block_id: The ID of the block to move used as the from block in the move generator).
111
112
* @param to: Location of where the user wants to move the block.
112
113
*
113
114
* @return True if all conditions are met, false otherwise.
0 commit comments