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
Copy file name to clipboardExpand all lines: README.md
+3-8Lines changed: 3 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -75,16 +75,11 @@ This is the development trunk for the Verilog-to-Routing project.
75
75
Unlike the nicely packaged releases that we create, you are working with code in a constant state of flux.
76
76
You should expect that the tools are not always stable and that more work is needed to get the flow to run.
77
77
78
-
For new developers, please [do the tutorial](dev/tutorial/NewDeveloperTutorial.txt).
79
-
You will be directed back here once you ramp up.
78
+
For new developers, please follow the [quickstart guide](https://docs.verilogtorouting.org/en/latest/quickstart/).
80
79
81
-
VTR development follows a classic centralized repository (svn-like) workflow.
82
-
The 'master' branch is supposed to be the most current stable version of the project.
83
-
Developers checkout a local copy of the code at the start of development, then do regular updates (e.g. `git pull --rebase`) to keep in sync with the GitHub master.
84
-
When a developer has a tested, working change to put back into the trunk, he/she performs a `git push` operation.
85
-
Unstable code should remain in the developer's local copy.
80
+
We follow a feature branch flow, where you create a new branch for new code, test it, measure its Quality of Results, and eventually produce a pull request for review by other developers. Pull requests that meet all the quality and review criteria are then merged into the master branch by a developer with the authority to do so.
86
81
87
-
We do automated testing of the trunk using BuildBot to verify functionality and Quality of Results (QoR).
82
+
In addition to measuring QoR and functionality automatically on pull requests, we do periodic automated testing of the master using BuildBot, and the results can be viewed below to track QoR and stability.
Copy file name to clipboardExpand all lines: doc/src/vpr/debug_aids.rst
+3Lines changed: 3 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -11,6 +11,9 @@ To access detailed echo files from VPR’s operation, use the command-line optio
11
11
After parsing the netlist and architecture files, VPR dumps out an image of its internal data structures into echo files (typically ending in ``.echo``).
12
12
These files can be examined to be sure that VPR is parsing the input files as you expect.
13
13
14
+
You ca visualize and control the placement move generator whenever the placement engine is paused in the UI. Run with graphics and VTR_ENABLE_DEBUG_LOGGONG enabled and set a breakpoint to stop placement. The new location of the moving block for each proposed move will be highlighted with GREEN and the old location will be highlighted with GOLD. The fanin and fanout blocks will also be highlighted. The move type, move outcome and delta cost will be printed in the status bar.
15
+
.. warning:: VPR must have been compiled with `VTR_ENABLE_DEBUG_LOGGING` on to get any debug output from this flag.
16
+
14
17
If the preprocessor flag ``DEBUG`` is defined in ``vpr_types.h``, some additional sanity checks are performed during a run.
15
18
``DEBUG`` only slows execution by 1 to 2%.
16
19
The major sanity checks are always enabled, regardless of the state of ``DEBUG``.
/**The expression evaluator is capable of performing many operations on given variables, after parsing the expression. The parser goes character by character and identifies the type of char or chars. (e.g bracket, comma, number, operator, variable). The supported operations include addition, subtraction, multiplication, division, finding max, min, gcd, lcm, as well as boolean operators such as &&, ||, ==, >=, <= etc. The result is returned as an int value and operation precedance is taken into account. (e.g given 3-2*4, the result will be -5). This class is also used to parse expressions indicating breakpoints. The breakpoint expressions consist of variable names such as move_num, temp_num, from_block etc, and boolean operators (e.g move_num == 3). Multiple breakpoints can be expressed in one expression**/
17
+
18
+
//function declarations
19
+
//returns the global variable that holds all values that can trigger a breakpoint and are updated by the router and placer
20
+
BreakpointStateGlobals* get_bp_state_globals();
13
21
14
22
namespacevtr {
15
23
@@ -50,6 +58,7 @@ typedef enum e_formula_obj {
50
58
E_FML_BRACKET,
51
59
E_FML_COMMA,
52
60
E_FML_OPERATOR,
61
+
E_FML_VARIABLE,
53
62
E_FML_NUM_FORMULA_OBJS
54
63
} t_formula_obj;
55
64
@@ -60,16 +69,34 @@ typedef enum e_operator {
60
69
E_OP_SUB,
61
70
E_OP_MULT,
62
71
E_OP_DIV,
63
-
E_OP_MOD,
64
-
E_OP_GT,
65
-
E_OP_LT,
66
72
E_OP_MIN,
67
73
E_OP_MAX,
68
74
E_OP_GCD,
69
75
E_OP_LCM,
76
+
E_OP_AND,
77
+
E_OP_OR,
78
+
E_OP_GT,
79
+
E_OP_LT,
80
+
E_OP_GTE,
81
+
E_OP_LTE,
82
+
E_OP_EQ,
83
+
E_OP_MOD,
84
+
E_OP_AA,
70
85
E_OP_NUM_OPS
71
86
} t_operator;
72
87
88
+
/* Used to identify operators with more than one character */
89
+
typedefenum e_compound_operator {
90
+
E_COM_OP_UNDEFINED = 0,
91
+
E_COM_OP_AND,
92
+
E_COM_OP_OR,
93
+
E_COM_OP_EQ,
94
+
E_COM_OP_AA,
95
+
E_COM_OP_GTE,
96
+
E_COM_OP_LTE
97
+
98
+
} t_compound_operator;
99
+
73
100
/**** Class Definitions ****/
74
101
/* This class is used to represent an object in a formula, such as
75
102
* a number, a bracket, an operator, or a variable */
@@ -83,6 +110,7 @@ class Formula_Object {
83
110
int num; /*for number objects*/
84
111
t_operator op; /*for operator objects*/
85
112
bool left_bracket; /*for bracket objects -- specifies if this is a left bracket*/
113
+
//std::string variable;
86
114
87
115
u_Data() { memset(this, 0, sizeof(u_Data)); }
88
116
} data;
@@ -92,7 +120,7 @@ class Formula_Object {
92
120
}
93
121
94
122
std::string to_string() const {
95
-
if (type == E_FML_NUMBER) {
123
+
if (type == E_FML_NUMBER || type == E_FML_VARIABLE) {
0 commit comments