Skip to content

Commit 02d433d

Browse files
authored
Merge pull request #2326 from Meet-Patel2580/Meet
Updated graphics.rst (Documentation)
2 parents 6e0fa63 + faeba0e commit 02d433d

15 files changed

+72
-34
lines changed

doc/.DS_Store

6 KB
Binary file not shown.

doc/src/.DS_Store

6 KB
Binary file not shown.

doc/src/Images/.DS_Store

6 KB
Binary file not shown.

doc/src/Images/Block_Settings.png

339 KB
Loading

doc/src/Images/Net_Settings.png

33.9 KB
Loading

doc/src/Images/Overall_view.png

224 KB
Loading

doc/src/Images/Routing_Options.png

508 KB
Loading

doc/src/Images/crit_path.png

327 KB
Loading

doc/src/Images/manual_move.png

99.3 KB
Loading

doc/src/vpr/graphics.rst

Lines changed: 58 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
Graphics
44
========
5-
VPR includes easy-to-use graphics for visualizing both the targetted FPGA architecture, and the circuit VPR has implementation on the architecture.
5+
VPR includes easy-to-use graphics for visualizing both the targetted FPGA architecture, and the circuit VPR has implemented on the architecture.
66

77
.. image:: https://www.verilogtorouting.org/img/des90_routing_util.gif
88
:align: center
@@ -35,19 +35,17 @@ When running VPR provide :option:`vpr --disp` ``on`` to enable graphics.
3535

3636
Saving Graphics at Run-time
3737
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
38-
When running VPR provide :option:`vpr --save_graphics` ``on`` to enable graphics.
38+
When running VPR provide :option:`vpr --save_graphics` ``on`` to save an image of the final placement and the final routing created by vpr to pdf files on disk. The files are named vpr_placement.pdf and vpr_routing.pdf.
3939

4040
A graphical window will now pop up when you run VPR.
4141

4242
Navigation
4343
----------
44-
Click on **Zoom-Fit** buttons to zoom the view.
45-
Click and drag with the left mouse button to pan the view, or scroll the mouse wheel to zoom in and out.
46-
Click on the **Window**, then on the diagonally opposite corners of a box, to zoom in on a particular area.
47-
48-
Click on **Save** to save the image on screen to PDF, PNG, or SVG file.
49-
50-
**Proceed** tells VPR to continue with the next step in placing and routing the circuit.
44+
* Click on the **Zoom-Fit** button to get an over-encompassing view of the FPGA architecture.
45+
* Click and drag with the left mouse button to pan the view, or scroll the mouse wheel to zoom in and out.
46+
* Click on the **Window** button, then on the diagonally opposite corners of a box, to zoom in on a particular area.
47+
* Click on **Save** under the **Misc.** tab to save the image on screen to PDF, PNG, or SVG file.
48+
* **Done** tells VPR to continue with the next step in placing and routing the circuit.
5149

5250

5351
.. note:: Menu buttons will be greyed out when they are not selectable (e.g. VPR is working).
@@ -56,16 +54,28 @@ Visualizing Placement
5654
--------------------------------
5755
By default VPR's graphics displays the FPGA floorplan (block grid) and current placement.
5856

57+
.. figure:: ../Images/Overall_view.png
58+
:align: center
59+
:height: 300
60+
61+
FPGA floorplan (block grid)
62+
63+
If the **Placement Macros** drop down is set, any placement macros (e.g. carry chains, which require specific relative placements between some blocks) will be highlighted.
64+
5965
.. figure:: https://www.verilogtorouting.org/img/neuron_placement_macros.gif
6066
:align: center
6167

6268
Placement with macros (carry chains) highlighted
6369

64-
If the **Placement Macros** drop down is set, any placement macros (e.g. carry chains, which require specific relative placements between some blocks) will be highlighted.
65-
6670
Visualizing Netlist Connectivity
6771
--------------------------------
68-
The **Toggle Nets** drop-down list toggles the nets in the circuit visible/invisible.
72+
The **Toggle Nets** drop-down list under the **Net Settings** tab toggles the nets in the circuit to be visible/invisible. Options include **Cluster Nets** and **Primitive Nets**.
73+
74+
.. figure:: ../Images/Net_Settings.png
75+
:align: center
76+
:height: 200
77+
78+
Toggle Nets drop-down under Net Settings tab
6979

7080
When a placement is being displayed, routing information is not yet known so nets are simply drawn as a “star;” that is, a straight line is drawn from the net source to each of its sinks.
7181
Click on any clb in the display, and it will be highlighted in green, while its fanin and fanout are highlighted in blue and red, respectively.
@@ -81,9 +91,17 @@ Multiple nets can be highlighted by pressing ctrl + mouse click.
8191

8292
Visualizing the Critical Path
8393
-----------------------------
84-
During placement and routing you can click on the **Crit. Path** drop-down menu to visualize the critical path.
94+
During placement and routing you can click on the **Crit. Path** drop-down menu under the **Misc.** tab to visualize the critical path.
8595
Each stage between primitive pins is shown in a different colour.
86-
Cliking the **Crit. Path** button again will toggle through the various visualizations:
96+
97+
.. figure:: ../Images/crit_path.png
98+
:align: center
99+
:height: 200
100+
101+
Crit. Path drop-down list under the Misc. tab
102+
103+
The **Crit. Path** drop-down will toggle through the various visualizations:
104+
87105
* During placement the critical path is shown only as flylines.
88106
* During routing the critical path can be shown as both flylines and routed net connections.
89107

@@ -94,7 +112,16 @@ Cliking the **Crit. Path** button again will toggle through the various visualiz
94112

95113
Visualizing Routing Architecture
96114
--------------------------------
97-
When a routing is on-screen, clicking on **Toggle RR** lets you to choose between various views of the routing resources available in the FPGA.
115+
116+
When a routing is on screen, the **Routing Options** tab provides various options to gain more visual information.
117+
118+
.. figure:: ../Images/Routing_Options.png
119+
:align: center
120+
:height: 300
121+
122+
Routing Options
123+
124+
Clicking on **Toggle RR** lets you to choose between various views of the routing resources available in the FPGA.
98125

99126
.. figure:: https://github.com/verilog-to-routing/verilog-to-routing.github.io/raw/master/img/routing_arch.gif
100127
:align: center
@@ -116,7 +143,7 @@ Multiple routing resources can be highlighted by pressing ctrl + mouse click.
116143

117144
Visualizing Routing Congestion
118145
------------------------------
119-
When a routing is shown on-screen, clicking on the **Congestion** drop-down menu will show a heat map of any overused routing resources (wires or pins).
146+
When a routing is shown on-screen, clicking on the **Congestion** drop-down menu under the **Routing Options** tab will show a heat map of any overused routing resources (wires or pins).
120147
Lighter colours (e.g. yellow) correspond to highly overused resources, while darker colours (e.g. blue) correspond to lower overuse.
121148
The overuse range shown at the bottom of the window.
122149

@@ -137,7 +164,15 @@ Lighter colours (e.g. yellow) correspond to highly utilized channels, while dark
137164

138165
Toggle Block Internal
139166
-------------------------------
140-
During placement and routing you can adjust the level of block detail you visualize by using the **Toggle Block Internal**. Each block can contain a number of flip flops (ff), look up tables (lut), and other primitives. The higher the number, the deeper into the hierarchy within the cluster level block you see.
167+
During placement and routing you can adjust the level of block detail you visualize by using the **Toggle Block Internal** option under the **Block Settings** tab.
168+
169+
.. figure:: ../Images/Block_Settings.png
170+
:align: center
171+
:height: 300
172+
173+
Block Settings
174+
175+
Each block can contain a number of flip flops (ff), look up tables (lut), and other primitives. The higher the number, the deeper into the hierarchy within the cluster level block you see.
141176

142177
.. figure:: https://www.verilogtorouting.org/img/ToggleBlockInternal.gif
143178
:align: center
@@ -223,10 +258,13 @@ Manual Moves
223258

224259
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.
225260

226-
.. figure:: https://www.verilogtorouting.org/img/manual_move_toggle_button.png
227-
:align: center
261+
.. figure:: ../Images/manual_move.png
262+
:align: center
263+
:height: 200
264+
265+
Misc. Tab
228266

229-
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.
267+
To enable the feature, activate the **Manual Move** toggle button under the **Misc.** tab and press Done. Alternatively, the user can activate the **Manual Move** toggle button and click on the block to be moved.
230268

231269
.. figure:: https://www.verilogtorouting.org/img/draw_manual_moves_window.png
232270
:align: center

vpr/main.ui

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -316,8 +316,8 @@
316316
<property name="active_id">0</property>
317317
<items>
318318
<item id="0" translatable="yes">None</item>
319-
<item id="1" translatable="yes">Nets</item>
320-
<item id="2" translatable="yes">Logical Connections</item>
319+
<item id="1" translatable="yes">Cluster Nets</item>
320+
<item id="2" translatable="yes">Primitive Nets</item>
321321
</items>
322322
</object>
323323
<packing>
@@ -330,7 +330,7 @@
330330
<object class="GtkLabel" id="netAlphaLabel">
331331
<property name="visible">True</property>
332332
<property name="can_focus">False</property>
333-
<property name="label" translatable="yes">Set Net Transparency</property>
333+
<property name="label" translatable="yes">Net Transparency (0 - 255)</property>
334334
</object>
335335
<packing>
336336
<property name="expand">False</property>

vpr/src/draw/draw.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -219,21 +219,21 @@ static void draw_main_canvas(ezgl::renderer* g) {
219219

220220
if (draw_state->pic_on_screen == PLACEMENT) {
221221
switch (draw_state->show_nets) {
222-
case DRAW_NETS:
222+
case DRAW_CLUSTER_NETS:
223223
drawnets(g);
224224
break;
225-
case DRAW_LOGICAL_CONNECTIONS:
225+
case DRAW_PRIMITIVE_NETS:
226226
break;
227227
default:
228228
break;
229229
}
230230
} else { /* ROUTING on screen */
231231

232232
switch (draw_state->show_nets) {
233-
case DRAW_NETS:
233+
case DRAW_CLUSTER_NETS:
234234
drawroute(ALL_NETS, g);
235235
break;
236-
case DRAW_LOGICAL_CONNECTIONS:
236+
case DRAW_PRIMITIVE_NETS:
237237
// fall through
238238
default:
239239
draw_rr(g);

vpr/src/draw/draw_toggle_functions.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -80,10 +80,10 @@ void toggle_nets_cbk(GtkComboBox* self, ezgl::application* app) {
8080
// assign corresponding enum value to draw_state->show_nets
8181
if (strcmp(setting, "None") == 0)
8282
new_state = DRAW_NO_NETS;
83-
else if (strcmp(setting, "Nets") == 0) {
84-
new_state = DRAW_NETS;
85-
} else { // "Logical Connections"
86-
new_state = DRAW_LOGICAL_CONNECTIONS;
83+
else if (strcmp(setting, "Cluster Nets") == 0) {
84+
new_state = DRAW_CLUSTER_NETS;
85+
} else { // Primitive Nets - Used to be called "Logical Connections"
86+
new_state = DRAW_PRIMITIVE_NETS;
8787
}
8888
draw_state->reset_nets_congestion_and_rr();
8989
draw_state->show_nets = new_state;

vpr/src/draw/draw_types.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,8 @@ enum e_draw_crit_path {
4545

4646
enum e_draw_nets {
4747
DRAW_NO_NETS = 0,
48-
DRAW_NETS,
49-
DRAW_LOGICAL_CONNECTIONS
48+
DRAW_CLUSTER_NETS,
49+
DRAW_PRIMITIVE_NETS
5050
};
5151

5252
/* Draw rr_graph from less detailed to more detailed

vpr/src/draw/intra_logic_block.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -576,7 +576,7 @@ void draw_logical_connections(ezgl::renderer* g) {
576576
g->set_color(DRIVES_IT_COLOR, DRIVES_IT_COLOR.alpha * NET_ALPHA);
577577
} else if (src_is_src_of_selected && sel_subblk_info.is_in_selected_subtree(sink_pb_gnode, sink_clb)) {
578578
g->set_color(DRIVEN_BY_IT_COLOR, DRIVEN_BY_IT_COLOR.alpha * NET_ALPHA);
579-
} else if (draw_state->show_nets == DRAW_LOGICAL_CONNECTIONS && (draw_state->showing_sub_blocks() || src_clb != sink_clb)) {
579+
} else if (draw_state->show_nets == DRAW_PRIMITIVE_NETS && (draw_state->showing_sub_blocks() || src_clb != sink_clb)) {
580580
g->set_color(ezgl::BLACK, ezgl::BLACK.alpha * NET_ALPHA); // if showing all, draw the other ones in black
581581
} else {
582582
continue; // not showing all, and not the sperified block, so skip

0 commit comments

Comments
 (0)