Skip to content

Commit e1058cb

Browse files
committed
Merge remote-tracking branch 'vtr/master' into rr_graph_node_cost_index
Signed-off-by: Ethan Rogers <[email protected]>
2 parents 8c1d49c + e82ecbb commit e1058cb

34 files changed

+1062599
-161
lines changed

.github/workflows/test.yml

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -185,6 +185,25 @@ jobs:
185185
./.github/scripts/build.sh
186186
./run_reg_test.py odin_reg_basic -show_failures -j2
187187
188+
189+
VQM2BLIF:
190+
name: 'VQM2BLIF Basic Tests'
191+
runs-on: ubuntu-18.04
192+
steps:
193+
194+
- uses: actions/setup-python@v2
195+
with:
196+
python-version: 3.6
197+
- uses: actions/checkout@v2
198+
- run: ./.github/scripts/install_dependencies.sh
199+
200+
- name: Test
201+
env:
202+
BUILD_TYPE: release
203+
run: |
204+
./.github/scripts/build.sh
205+
./utils/vqm2blif/test/scripts/test_vqm2blif.sh
206+
188207
189208
YOSYSODINII:
190209
runs-on: ubuntu-18.04
@@ -256,6 +275,7 @@ jobs:
256275
- Regression
257276
- Sanitized
258277
- ODINII
278+
- VQM2BLIF
259279
- YOSYSODINII
260280
- Compatibility
261281
runs-on: ubuntu-18.04

doc/src/api/vtrutil/logging.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ vtr_error
1212
---------
1313
.. doxygenfile:: vtr_error.h
1414
:project: vtr
15-
:sections: innernamespace innerclass briefdescription detaileddescription user-defined public-func
15+
:sections: briefdescription detaileddescription innernamespace innerclass user-defined public-func
1616

1717
vtr_assertion
1818
-------------

doc/src/vpr/graphics.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ A graphical window will now pop up when you run VPR.
4242
Navigation
4343
----------
4444
Click on **Zoom-Fit** buttons to zoom the view.
45-
Click and drag the mouse wheel to pan the view, or scroll the mouse wheel to zoom in and out.
45+
Click and drag with the left mouse button to pan the view, or scroll the mouse wheel to zoom in and out.
4646
Click on the **Window**, then on the diagonally opposite corners of a box, to zoom in on a particular area.
4747

4848
Click on **Save** to save the image on screen to PDF, PNG, or SVG file.

doc/src/vtr/benchmarks.rst

Lines changed: 44 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ They are suitable for FPGA architecture research and medium-scale CAD research.
3838
stereovision0 Computer Vision
3939
stereovision1 Computer Vision
4040
stereovision2 Computer Vision
41-
stereovision3 Computer Vision
41+
stereovision3 Computer Vision
4242
================ =================
4343

4444
The VTR benchmarks are provided as Verilog under: ::
@@ -66,7 +66,7 @@ The Titan benchmarks are suitable for large-scale FPGA CAD research, and FPGA ar
6666

6767
Koios Benchmarks
6868
-----------------
69-
The Koios benchmarks :cite:`koios_benchmarks` are a set of Deep Learning (DL) benchmarks.
69+
The Koios benchmarks :cite:`koios_benchmarks` are a set of Deep Learning (DL) benchmarks.
7070
They are suitable for DL related architecture and CAD research.
7171
There are 19 designs that include several medium-sized benchmarks and some large benchmarks.
7272
The designs target different network types (CNNs, RNNs, MLPs, RL) and layer types (fully-connected, convolution, activation, softmax, reduction, eltwise).
@@ -75,8 +75,8 @@ These designs use many precisions including binary, different fixed point types
7575

7676
.. table_koios_benchmarks:
7777
78-
.. table:: The Koios Benchmarks.
79-
78+
.. table:: The Koios Benchmarks.
79+
8080
================= ======================================
8181
Benchmark Description
8282
================= ======================================
@@ -85,16 +85,16 @@ These designs use many precisions including binary, different fixed point types
8585
lstm LSTM engine
8686
tpu_like Google-TPU-v1-like accelerator
8787
bnn 4-layer binary neural network
88-
tiny_darknet_like Accelerator for Tiny Darknet
88+
tiny_darknet_like Accelerator for Tiny Darknet
8989
gemm_layer 20x20 matrix multiplication engine
9090
attention_layer Transformer self-attention layer
9191
conv_layer GEMM based convolution
9292
spmv Sparse matrix vector multiplication
93-
robot_rl Robot+maze application
93+
robot_rl Robot+maze application
9494
reduction_layer Add/max/min reduction tree
9595
softmax Softmax classification layer
9696
conv_layer_hls Sliding window convolution
97-
eltwise_layer Matrix elementwise add/sub/mult
97+
eltwise_layer Matrix elementwise add/sub/mult
9898
================= ======================================
9999

100100
The VTR benchmarks are provided as Verilog (enabling full flexibility to modify and change how the designs are implemented) under: ::
@@ -153,3 +153,40 @@ where :math:`K=` ``<#>``.
153153
tseng 1583
154154
========= ========================================
155155

156+
SymbiFlow Benchmarks
157+
--------------------
158+
159+
SymbiFlow benchmarks are a set of small and medium sized tests to verify and test the SymbiFlow-generated
160+
architectures, including primarily the Xilinx Artix-7 device families.
161+
162+
The tests are generated by nightly builds from the `symbiflow-arch-defs repository <https://github.com/SymbiFlow/symbiflow-arch-defs>`_, and uploaded to a Google Cloud Platform
163+
from where they are fetched and executed in the VTR benchmarking suite.
164+
165+
The circuits are the following:
166+
167+
.. _table_symbiflow_benchmarks:
168+
169+
.. table:: The SymbiFlow benchmarks.
170+
171+
================= ==========================================================================
172+
Benchmark Description
173+
================= ==========================================================================
174+
picosoc @100 MHz simple SoC with a picorv32 CPU running @100MHz
175+
picosoc @50MHz simple SoC with a picorv32 CPU running @50MHz
176+
base-litex LiteX-based SoC with a VexRiscv CPU booting into a BIOS only
177+
ddr-litex LiteX-based SoC with a VexRiscv CPU and a DDR controller
178+
ddr-eth-litex LiteX=based SoC with a VexRiscv CPU, a DDR controller and an Ethernet core
179+
linux-litex LiteX-based SoC with a VexRiscv CPU capable of booting linux
180+
================= ==========================================================================
181+
182+
The SymbiFlow benchmarks can be downloaded and extracted by running the following:
183+
184+
.. code-block:: bash
185+
186+
cd $VTR_ROOT
187+
make get_symbiflow_benchmarks
188+
189+
Once downloaded and extracted, benchmarks are provided as post-synthesized eblif files under: ::
190+
191+
$VTR_ROOT/vtr_flow/benchmarks/symbiflow
192+

libs/EXTERNAL/libezgl/examples/basic-application/basic_application.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -392,7 +392,7 @@ void draw_line_example(ezgl::renderer *g)
392392
{
393393
double offsetY = 50*i;
394394

395-
g->set_horiz_text_just(ezgl::text_just::left);
395+
g->set_horiz_justification(ezgl::justification::left);
396396

397397
if (i == 0) {
398398
g->set_color(ezgl::BLACK);
@@ -415,7 +415,7 @@ void draw_line_example(ezgl::renderer *g)
415415
g->draw_text({950, 920+offsetY}, "Butt ends, 67% transparent", 400, DBL_MAX);
416416
}
417417

418-
g->set_horiz_text_just(ezgl::text_just::center);
418+
g->set_horiz_justification(ezgl::justification::center);
419419

420420
g->draw_text({200, 900+offsetY}, "Thin line (width 1)", 200, DBL_MAX);
421421
g->set_line_width(1);

libs/EXTERNAL/libezgl/examples/basic-application/main.ui

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
<child>
3232
<object class="GtkButton" id="UpButton">
3333
<property name="visible">True</property>
34-
<property name="can_focus">True</property>
34+
<property name="can_focus">False</property>
3535
<property name="receives_default">True</property>
3636
<child>
3737
<object class="GtkArrow" id="UpArrow">
@@ -49,7 +49,7 @@
4949
<child>
5050
<object class="GtkButton" id="DownButton">
5151
<property name="visible">True</property>
52-
<property name="can_focus">True</property>
52+
<property name="can_focus">False</property>
5353
<property name="receives_default">True</property>
5454
<child>
5555
<object class="GtkArrow" id="DownArrow">
@@ -67,7 +67,7 @@
6767
<child>
6868
<object class="GtkButton" id="LeftButton">
6969
<property name="visible">True</property>
70-
<property name="can_focus">True</property>
70+
<property name="can_focus">False</property>
7171
<property name="receives_default">True</property>
7272
<child>
7373
<object class="GtkArrow" id="LeftArrow">
@@ -85,7 +85,7 @@
8585
<child>
8686
<object class="GtkButton" id="RightButton">
8787
<property name="visible">True</property>
88-
<property name="can_focus">True</property>
88+
<property name="can_focus">False</property>
8989
<property name="receives_default">True</property>
9090
<child>
9191
<object class="GtkArrow" id="RightArrow">
@@ -103,7 +103,7 @@
103103
<object class="GtkButton" id="ZoomInButton">
104104
<property name="label" translatable="yes">Zoom In</property>
105105
<property name="visible">True</property>
106-
<property name="can_focus">True</property>
106+
<property name="can_focus">False</property>
107107
<property name="receives_default">True</property>
108108
</object>
109109
<packing>
@@ -116,7 +116,7 @@
116116
<object class="GtkButton" id="ZoomOutButton">
117117
<property name="label" translatable="yes">Zoom Out</property>
118118
<property name="visible">True</property>
119-
<property name="can_focus">True</property>
119+
<property name="can_focus">False</property>
120120
<property name="receives_default">True</property>
121121
</object>
122122
<packing>
@@ -129,7 +129,7 @@
129129
<object class="GtkButton" id="ZoomFitButton">
130130
<property name="label" translatable="yes">Zoom Fit</property>
131131
<property name="visible">True</property>
132-
<property name="can_focus">True</property>
132+
<property name="can_focus">False</property>
133133
<property name="receives_default">True</property>
134134
</object>
135135
<packing>
@@ -142,7 +142,7 @@
142142
<object class="GtkButton" id="ProceedButton">
143143
<property name="label" translatable="yes">Proceed</property>
144144
<property name="visible">True</property>
145-
<property name="can_focus">True</property>
145+
<property name="can_focus">False</property>
146146
<property name="receives_default">True</property>
147147
</object>
148148
<packing>

libs/EXTERNAL/libezgl/include/ezgl/application.hpp

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
#include <map>
2929
#include <memory>
3030
#include <string>
31+
#include <ctime>
3132

3233
#include <gtk/gtk.h>
3334

@@ -36,6 +37,13 @@
3637
*/
3738
namespace ezgl {
3839

40+
// A flag to specify whether the GUI is built from an XML file or an XML resource
41+
#ifndef ECE297
42+
const bool build_ui_from_file = false;
43+
#else
44+
const bool build_ui_from_file = true;
45+
#endif
46+
3947
class application;
4048

4149
/**
@@ -81,7 +89,7 @@ class application {
8189
*/
8290
struct settings {
8391
/**
84-
* The resource path that contains the XML file, which describes the GUI.
92+
* The resource/file path that contains the XML file, which describes the GUI.
8593
*/
8694
std::string main_ui_resource;
8795

@@ -121,9 +129,13 @@ class application {
121129
* Create the settings structure with default values
122130
*/
123131
settings()
124-
: main_ui_resource("/ezgl/main.ui"), window_identifier("MainWindow"), canvas_identifier("MainCanvas"), application_identifier("ezgl.app"),
132+
: main_ui_resource(build_ui_from_file ? "main_ui" : "/ezgl/main.ui"), window_identifier("MainWindow"), canvas_identifier("MainCanvas"), application_identifier("ezgl.app"),
125133
setup_callbacks(nullptr)
126134
{
135+
// Uniquify the application_identifier by appending a time stamp,
136+
// so that each instance of the same program has a different application ID.
137+
// This allows multiple instance of the program to run independelty.
138+
application_identifier += ".t" + std::to_string(std::time(nullptr));
127139
}
128140

129141
/**
@@ -134,6 +146,10 @@ class application {
134146
: main_ui_resource(m_resource), window_identifier(w_identifier), canvas_identifier(c_identifier), application_identifier(a_identifier),
135147
setup_callbacks(s_callbacks)
136148
{
149+
// Uniquify the application_identifier by appending a time stamp,
150+
// so that each instance of the same program has a different application ID.
151+
// This allows multiple instance of the program to run independelty.
152+
application_identifier += ".t" + std::to_string(std::time(nullptr));
137153
}
138154
};
139155

@@ -403,7 +419,6 @@ class application {
403419
/**
404420
* Set the disable_event_loop flag to new_setting
405421
* Call with new_setting == true to make the event_loop immediately return.
406-
* Needed only for auto-marking
407422
*
408423
* @param new_setting The new state of disable_event_loop flag
409424
*/

libs/EXTERNAL/libezgl/include/ezgl/callback.hpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,9 @@
2727

2828
#include <iostream>
2929

30+
// Mouse button used for panning (left button (1) - middle button (2) - right button (3))
31+
#define PANNING_MOUSE_BUTTON 1
32+
3033
namespace ezgl {
3134

3235
/**** Callback functions for keyboard and mouse input, and for all the ezgl predefined buttons. *****/

libs/EXTERNAL/libezgl/include/ezgl/graphics.hpp

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -65,9 +65,9 @@ enum t_coordinate_system {
6565
};
6666

6767
/**
68-
* Text justification options
68+
* Justification options (used for text and surfaces)
6969
*/
70-
enum class text_just {
70+
enum class justification {
7171
/**
7272
* Center Justification: used for both vertical and horizontal justification
7373
*/
@@ -279,18 +279,18 @@ class renderer {
279279
void set_text_rotation(double degrees);
280280

281281
/**
282-
* set horizontal text justification.
282+
* set horizontal justification (used for text and surfaces).
283283
*
284284
* @param horiz_just Options: center, left and right justification.
285285
*/
286-
void set_horiz_text_just(text_just horiz_just);
286+
void set_horiz_justification(justification horiz_just);
287287

288288
/**
289-
* set vertical text justification.
289+
* set vertical justification (used for text and surfaces).
290290
*
291291
* @param vert_just Options: center, top and bottom justification.
292292
*/
293-
void set_vert_text_just(text_just vert_just);
293+
void set_vert_justification(justification vert_just);
294294

295295
/**** Functions to draw various graphics primitives ****/
296296

@@ -425,9 +425,10 @@ class renderer {
425425
* Draw a surface
426426
*
427427
* @param surface The surface to draw
428-
* @param top_left The corner point of the drawn surface.
428+
* @param anchor_point The anchor_point point of the drawn surface.
429+
* @param scale_factor The scaling factor of the drawn surface (optional)
429430
*/
430-
void draw_surface(surface *surface, point2d top_left);
431+
void draw_surface(surface *p_surface, point2d anchor_point, double scale_factor = 1);
431432

432433
/**
433434
* load a png image
@@ -516,11 +517,11 @@ class renderer {
516517
// the rotation angle variable used in rotating text
517518
double rotation_angle;
518519

519-
// Current horizontal text justification
520-
text_just horiz_text_just = text_just::center;
520+
// Current horizontal justification (used for text and surfaces)
521+
justification horiz_justification = justification::center;
521522

522-
// Current vertical text justification
523-
text_just vert_text_just = text_just::center;
523+
// Current vertical justification (used for text and surfaces)
524+
justification vert_justification = justification::center;
524525

525526
// Current line width
526527
int current_line_width = 1;

libs/EXTERNAL/libezgl/include/ezgl/point.hpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,13 @@ namespace ezgl {
2626
*/
2727
class point2d {
2828
public:
29+
/**
30+
* Default constructor: Create a point at (0, 0).
31+
*/
32+
point2d() : x(0.0), y(0.0)
33+
{
34+
}
35+
2936
/**
3037
* Create a point at the given x and y position.
3138
*/

0 commit comments

Comments
 (0)