Skip to content

Commit a5dc904

Browse files
authored
Merge branch 'master' into fix_generated_shell_scripts
2 parents 299d1a9 + 283e6a6 commit a5dc904

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+903
-18155
lines changed
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
# Format: //devtools/kokoro/config/proto/build.proto
2+
3+
build_file: "vtr-verilog-to-routing/.github/kokoro/run-vtr.sh"
4+
5+
# 12 hours
6+
timeout_mins: 720
7+
8+
action {
9+
define_artifacts {
10+
# File types
11+
regex: "**/*.out"
12+
regex: "**/vpr_stdout.log"
13+
regex: "**/parse_results.txt"
14+
regex: "**/qor_results.txt"
15+
regex: "**/pack.log"
16+
regex: "**/place.log"
17+
regex: "**/route.log"
18+
regex: "**/*_qor.csv"
19+
strip_prefix: "github/vtr-verilog-to-routing/"
20+
}
21+
}
22+
23+
env_vars {
24+
key: "KOKORO_TYPE"
25+
value: "continuous"
26+
}
27+
28+
env_vars {
29+
key: "KOKORO_DIR"
30+
value: "vtr-verilog-to-routing"
31+
}
32+
33+
env_vars {
34+
key: "VTR_DIR"
35+
value: "vtr-verilog-to-routing"
36+
}
37+
38+
#Use default build configuration
39+
env_vars {
40+
key: "VTR_CMAKE_PARAMS"
41+
value: ""
42+
}
43+
44+
env_vars {
45+
key: "VTR_TEST"
46+
value: "odin_reg_strong"
47+
}
48+
49+
#Options for run_reg_test.py
50+
# -show_failures: show tool failures in main log output
51+
env_vars {
52+
key: "VTR_TEST_OPTIONS"
53+
value: "-show_failures"
54+
}
55+
56+
env_vars {
57+
key: "NUM_CORES"
58+
value: "3"
59+
}
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
# Format: //devtools/kokoro/config/proto/build.proto
2+
3+
build_file: "vtr-verilog-to-routing/.github/kokoro/run-vtr.sh"
4+
5+
# 12 hours
6+
timeout_mins: 720
7+
8+
action {
9+
define_artifacts {
10+
# File types
11+
regex: "**/*.out"
12+
regex: "**/vpr_stdout.log"
13+
regex: "**/parse_results.txt"
14+
regex: "**/qor_results.txt"
15+
regex: "**/pack.log"
16+
regex: "**/place.log"
17+
regex: "**/route.log"
18+
regex: "**/*_qor.csv"
19+
strip_prefix: "github/vtr-verilog-to-routing/"
20+
}
21+
}
22+
23+
env_vars {
24+
key: "KOKORO_TYPE"
25+
value: "presubmit"
26+
}
27+
28+
env_vars {
29+
key: "KOKORO_DIR"
30+
value: "vtr-verilog-to-routing"
31+
}
32+
33+
env_vars {
34+
key: "VTR_DIR"
35+
value: "vtr-verilog-to-routing"
36+
}
37+
38+
#Use default build configuration
39+
env_vars {
40+
key: "VTR_CMAKE_PARAMS"
41+
value: ""
42+
}
43+
44+
env_vars {
45+
key: "VTR_TEST"
46+
value: "odin_reg_strong"
47+
}
48+
49+
#Options for run_reg_test.py
50+
# -show_failures: show tool failures in main log output
51+
env_vars {
52+
key: "VTR_TEST_OPTIONS"
53+
value: "-show_failures"
54+
}
55+
56+
env_vars {
57+
key: "NUM_CORES"
58+
value: "3"
59+
}

.github/kokoro/run-vtr.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ source $SCRIPT_DIR/steps/hostinfo.sh
1616
# Output git information
1717
source $SCRIPT_DIR/steps/git.sh
1818

19-
if [ $VTR_TEST == "vtr_reg_strong" ]; then
19+
if [ $VTR_TEST == "vtr_reg_strong" ] || [ $VTR_TEST == "odin_reg_strong" ]; then
2020
source $SCRIPT_DIR/steps/vtr-min-setup.sh
2121
else
2222
source $SCRIPT_DIR/steps/vtr-full-setup.sh

.github/workflows/test.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,7 @@ jobs:
199199
./.github/travis/setup.sh
200200
201201
ODINII:
202-
name: 'ODIN-II Micro Tests'
202+
name: 'ODIN-II Basic Tests'
203203
runs-on: ubuntu-18.04
204204
steps:
205205

@@ -219,7 +219,7 @@ jobs:
219219
source .github/travis/common.sh
220220
./.github/travis/setup.sh
221221
./.github/travis/build.sh
222-
./run_reg_test.py odin_reg_micro -show_failures -j2
222+
./run_reg_test.py odin_reg_basic -show_failures -j2
223223
./.github/travis/setup.sh
224224
225225

ODIN_II/SRC/ast_elaborate.cpp

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1813,8 +1813,11 @@ ast_node_t* reduce_expressions(ast_node_t* node, sc_hierarchy* local_ref, long*
18131813

18141814
vtr::free(max_size);
18151815

1816-
/* cast to unsigned if necessary */
1817-
if (node_is_constant(node->children[1])) {
1816+
/*
1817+
* cast to unsigned if necessary
1818+
* Concatenate results are unsigned, regardless of the operands. IEEE.1364-2005 pp.65
1819+
*/
1820+
if (node->children[0]->type != CONCATENATE && node_is_constant(node->children[1])) {
18181821
char* id = NULL;
18191822
if (node->children[0]->type == IDENTIFIERS) {
18201823
id = node->children[0]->types.identifier;

ODIN_II/regression_test/benchmark/suite/light_suite/task_list.conf

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,3 +9,4 @@ regression_test/benchmark/task/syntax
99
regression_test/benchmark/task/FIR
1010
regression_test/benchmark/task/micro
1111
regression_test/benchmark/suite/complex_synthesis_suite
12+
regression_test/benchmark/suite/vtr_multiclock_suite
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
vtr::vtr_reg_multiclock

ODIN_II/verify_odin.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1255,7 +1255,7 @@ FILTERED_VTR_TASK_PATH="${NEW_RUN_DIR}/vtr/task_list.txt"
12551255
function run_vtr_reg() {
12561256
pushd "${VTR_DIR}" &> /dev/null
12571257
RELATIVE_PATH_TO_TEST=$(realapath_from "${FILTERED_VTR_TASK_PATH}" "${VTR_REG_DIR}")
1258-
/usr/bin/env perl run_reg_test.py -j "${_NUMBER_OF_PROCESS}" "${RELATIVE_PATH_TO_TEST}"
1258+
/usr/bin/env perl run_reg_test.py -j "${_NUMBER_OF_PROCESS}" $(dirname ${RELATIVE_PATH_TO_TEST})
12591259
popd &> /dev/null
12601260
}
12611261

@@ -1277,7 +1277,7 @@ function filter_vtr_test() {
12771277
pushd "${VTR_REG_DIR}" &> /dev/null
12781278
for test in $(cat "${VTR_TASK_PATH}")
12791279
do
1280-
if grep -E "circuit_list_add=.*\.v" "${test/regression_tests\//}/config/config.txt" &> "/dev/null"
1280+
if grep -E "circuit_list_add=.*\.v" "${VTR_REG_DIR/regression_tests}${test}/config/config.txt" &> "/dev/null"
12811281
then
12821282
echo $test >> "${FILTERED_VTR_TASK_PATH}";
12831283
fi

README.developers.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ The overall approach is similar, but we call out the differences below.
7272
7373
8. Create a Pull Request (PR) to request your changes be merged into VTR.
7474
75-
* Navitage to your branch on GitHub
75+
* Navigate to your branch on GitHub
7676
7777
a. **External Developers**
7878
@@ -92,7 +92,7 @@ The overall approach is similar, but we call out the differences below.
9292
9393
## Commit Messages
9494
95-
Commit messagaes are an important part of understanding the code base and it's history.
95+
Commit messages are an important part of understanding the code base and it's history.
9696
It is therefore *extremely* important to provide the following information in the commit message:
9797
9898
* What is being changed?
@@ -285,14 +285,14 @@ $ ./run_reg_test.py vtr_reg_basic vtr_reg_strong -j4
285285

286286
Odin has its own set of tests to verify the correctness of its synthesis results:
287287

288-
* `odin_reg_micro`: ~2 minutes serial
289-
* `odin_reg_full`: ~6 minutes serial
288+
* `odin_reg_basic`: ~2 minutes serial
289+
* `odin_reg_strong`: ~6 minutes serial
290290

291291
These can be run with:
292292
```shell
293293
#From the VTR root directory
294-
$ ./run_reg_test.py odin_reg_micro
295-
$ ./run_reg_test.py odin_reg_full
294+
$ ./run_reg_test.py odin_reg_basic
295+
$ ./run_reg_test.py odin_reg_strong
296296
```
297297
and should be used when making changes to Odin.
298298

libs/EXTERNAL/libargparse/src/argparse.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
#include <cassert>
55
#include <string>
66
#include <set>
7+
#include <limits>
78

89
#include "argparse.hpp"
910
#include "argparse_util.hpp"

run_reg_test.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -269,12 +269,12 @@ def run_odin_test(args, test_name):
269269
odin_reg_script[-1] += "task/arch_sweep"
270270
elif test_name == "odin_reg_operators":
271271
odin_reg_script[-1] += "task/operators"
272-
elif test_name == "odin_reg_large":
273-
odin_reg_script[-1] += "task/large"
274272
elif test_name == "odin_reg":
275273
odin_reg_script[-1] += "task/full"
276-
elif test_name == "odin_reg_micro":
274+
elif test_name == "odin_reg_basic":
277275
odin_reg_script[-1] += "suite/light_suite"
276+
elif test_name == "odin_reg_strong":
277+
odin_reg_script[-1] += "suite/heavy_suite"
278278
else:
279279
raise IOError("Test does not exist: {}".format(test_name))
280280

utils/fasm/src/main.cpp

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ using namespace std;
2222

2323
#include "fasm.h"
2424

25+
#include "post_routing_pb_pin_fixup.h"
26+
2527
/*
2628
* Exit codes to signal success/failure to scripts
2729
* calling vpr
@@ -79,6 +81,17 @@ int main(int argc, const char **argv) {
7981
bool flow_succeeded = false;
8082
flow_succeeded = vpr_flow(vpr_setup, Arch);
8183

84+
/* Sync netlist to the actual routing (necessary if there are block
85+
ports with equivalent pins) */
86+
if (flow_succeeded) {
87+
sync_netlists_to_routing(g_vpr_ctx.device(),
88+
g_vpr_ctx.mutable_atom(),
89+
g_vpr_ctx.mutable_clustering(),
90+
g_vpr_ctx.placement(),
91+
g_vpr_ctx.routing(),
92+
vpr_setup.PackerOpts.pack_verbosity > 2);
93+
}
94+
8295
/* Actually write output FASM file. */
8396
flow_succeeded = write_fasm();
8497
if (!flow_succeeded) {

0 commit comments

Comments
 (0)