Skip to content

Commit f6c1dca

Browse files
committed
Merge branch 'vtr_master'
Signed-off-by: Ethan Rogers <[email protected]>
2 parents 834f4ab + 45bf4c9 commit f6c1dca

File tree

85 files changed

+1628
-18290
lines changed

Some content is hidden

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

85 files changed

+1628
-18290
lines changed

.github/kokoro/continuous/nightly.cfg

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,15 @@ action {
1616
regex: "**/place.log"
1717
regex: "**/route.log"
1818
regex: "**/*_qor.csv"
19+
regex: "**/*.out.gz"
20+
regex: "**/vpr_stdout.log.gz"
21+
regex: "**/parse_results.txt.gz"
22+
regex: "**/qor_results.txt.gz"
23+
regex: "**/pack.log.gz"
24+
regex: "**/place.log.gz"
25+
regex: "**/route.log.gz"
26+
regex: "**/*_qor.csv.gz"
27+
1928
strip_prefix: "github/vtr-verilog-to-routing/"
2029
}
2130
}
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+
}

.github/kokoro/continuous/strong.cfg

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,14 @@ action {
1616
regex: "**/place.log"
1717
regex: "**/route.log"
1818
regex: "**/*_qor.csv"
19+
regex: "**/*.out.gz"
20+
regex: "**/vpr_stdout.log.gz"
21+
regex: "**/parse_results.txt.gz"
22+
regex: "**/qor_results.txt.gz"
23+
regex: "**/pack.log.gz"
24+
regex: "**/place.log.gz"
25+
regex: "**/route.log.gz"
26+
regex: "**/*_qor.csv.gz"
1927
strip_prefix: "github/vtr-verilog-to-routing/"
2028
}
2129
}

.github/kokoro/continuous/strong_sanitized.cfg

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,15 @@ action {
1616
regex: "**/place.log"
1717
regex: "**/route.log"
1818
regex: "**/*_qor.csv"
19+
regex: "**/*.out.gz"
20+
regex: "**/vpr_stdout.log.gz"
21+
regex: "**/parse_results.txt.gz"
22+
regex: "**/qor_results.txt.gz"
23+
regex: "**/pack.log.gz"
24+
regex: "**/place.log.gz"
25+
regex: "**/route.log.gz"
26+
regex: "**/*_qor.csv.gz"
27+
1928
strip_prefix: "github/vtr-verilog-to-routing/"
2029
}
2130
}

.github/kokoro/continuous/weekly.cfg

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,15 @@ action {
1616
regex: "**/place.log"
1717
regex: "**/route.log"
1818
regex: "**/*_qor.csv"
19+
regex: "**/*.out.gz"
20+
regex: "**/vpr_stdout.log.gz"
21+
regex: "**/parse_results.txt.gz"
22+
regex: "**/qor_results.txt.gz"
23+
regex: "**/pack.log.gz"
24+
regex: "**/place.log.gz"
25+
regex: "**/route.log.gz"
26+
regex: "**/*_qor.csv.gz"
27+
1928
strip_prefix: "github/vtr-verilog-to-routing/"
2029
}
2130
}
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/kokoro/steps/vtr-full-setup.sh

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
make get_titan_benchmarks
44
make get_ispd_benchmarks
5-
make get_symbiflow_benchmarks
65

76
dev/upgrade_vtr_archs.sh
7+
8+
# Symbiflow archs do not require update
9+
make get_symbiflow_benchmarks

.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/SRC/netlist_create_from_ast.cpp

Lines changed: 29 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5418,12 +5418,25 @@ signal_list_t* create_hard_block(ast_node_t* block, char* instance_name_prefix,
54185418
return return_list;
54195419
}
54205420

5421+
/**
5422+
* --------------------------------------------------------------------------
5423+
* (function: reorder_connections_from_name)
5424+
*
5425+
* @brief reorder the instantiated instance ports based on
5426+
* the order of the main item(module, function or task)
5427+
*
5428+
* @param instance_node_list including the list of the main item ports
5429+
* @param instantiated_instance_list including the list of the instantiated instance ports
5430+
* @param ids the type of the main item or instance (module, function or task)
5431+
*--------------------------------------------------------------------------*/
54215432
void reorder_connections_from_name(ast_node_t* instance_node_list, ast_node_t* instantiated_instance_list, ids type) {
54225433
int i, j;
54235434
bool has_matched;
5424-
int* arr_index = new int[instantiated_instance_list->num_children];
54255435
int start_index = type == FUNCTION ? 1 : 0;
5436+
int* arr_index = (int*)vtr::malloc(instantiated_instance_list->num_children * sizeof(int));
5437+
memset(arr_index, -1, (instantiated_instance_list->num_children) * sizeof(int));
54265438

5439+
// find the mismatch and store the right index for each item in arr_index
54275440
for (i = start_index; i < instantiated_instance_list->num_children; i++) {
54285441
has_matched = false;
54295442
arr_index[i] = -1;
@@ -5445,17 +5458,27 @@ void reorder_connections_from_name(ast_node_t* instance_node_list, ast_node_t* i
54455458
}
54465459
}
54475460

5461+
// keep the reordered instantiated instance port in an array to swap them later
5462+
ast_node_t** swapping_children = (ast_node_t**)vtr::calloc(instantiated_instance_list->num_children, sizeof(ast_node_t*));
54485463
for (i = start_index; i < instantiated_instance_list->num_children; i++) {
54495464
if (arr_index[i] != -1) {
5450-
ast_node_t* temp = instantiated_instance_list->children[arr_index[i]];
5451-
instantiated_instance_list->children[arr_index[i]] = instantiated_instance_list->children[i];
5452-
instantiated_instance_list->children[i] = temp;
5453-
arr_index[arr_index[i]] = -1;
5465+
swapping_children[arr_index[i]] = instantiated_instance_list->children[i];
54545466
}
54555467
}
54565468

5457-
delete[] arr_index;
5469+
// make instantiated instance ports ordered by swapping them using reordered indexes
5470+
for (i = start_index; i < instantiated_instance_list->num_children; i++) {
5471+
instantiated_instance_list->children[i] = (swapping_children[i]) ? swapping_children[i]
5472+
: instantiated_instance_list->children[i];
5473+
swapping_children[i] = NULL;
5474+
}
5475+
5476+
// free the allocated memory
5477+
if (swapping_children)
5478+
vtr::free(swapping_children);
5479+
vtr::free(arr_index);
54585480
}
5481+
54595482
/*--------------------------------------------------------------------------
54605483
* Resolves top module parameters and defparams defined by it's own parameters as those parameters cannot be overriden
54615484
* Technically the top module parameters can be overriden by defparams in a seperate module however that cannot be supported until

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/regression_test/benchmark/task/syntax/simulation_result.json

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2811,6 +2811,38 @@
28112811
"Estimated LUTs": 22,
28122812
"Total Node": 31
28132813
},
2814+
"syntax/unordered_ports/k6_frac_N10_frac_chain_mem32K_40nm": {
2815+
"test_name": "syntax/unordered_ports/k6_frac_N10_frac_chain_mem32K_40nm",
2816+
"architecture": "k6_frac_N10_frac_chain_mem32K_40nm.xml",
2817+
"blif": "unordered_ports.blif",
2818+
"max_rss(MiB)": 8.9,
2819+
"exec_time(ms)": 13.3,
2820+
"simulation_time(ms)": 0.6,
2821+
"test_coverage(%)": 100,
2822+
"Pi": 4,
2823+
"Po": 4,
2824+
"logic element": 6,
2825+
"generic logic size": 4,
2826+
"Longest Path": 4,
2827+
"Average Path": 4,
2828+
"Estimated LUTs": 6,
2829+
"Total Node": 6
2830+
},
2831+
"syntax/unordered_ports/no_arch": {
2832+
"test_name": "syntax/unordered_ports/no_arch",
2833+
"blif": "unordered_ports.blif",
2834+
"max_rss(MiB)": 8,
2835+
"exec_time(ms)": 2,
2836+
"simulation_time(ms)": 0.5,
2837+
"test_coverage(%)": 100,
2838+
"Pi": 4,
2839+
"Po": 4,
2840+
"logic element": 6,
2841+
"Longest Path": 4,
2842+
"Average Path": 4,
2843+
"Estimated LUTs": 6,
2844+
"Total Node": 6
2845+
},
28142846
"DEFAULT": {
28152847
"test_name": "n/a",
28162848
"architecture": "n/a",

ODIN_II/regression_test/benchmark/task/syntax/synthesis_result.json

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3342,6 +3342,39 @@
33423342
"Estimated LUTs": 14,
33433343
"Total Node": 23
33443344
},
3345+
"syntax/unordered_ports/k6_frac_N10_frac_chain_mem32K_40nm": {
3346+
"test_name": "syntax/unordered_ports/k6_frac_N10_frac_chain_mem32K_40nm",
3347+
"architecture": "k6_frac_N10_frac_chain_mem32K_40nm.xml",
3348+
"verilog": "unordered_ports.v",
3349+
"max_rss(MiB)": 6.1,
3350+
"exec_time(ms)": 12.3,
3351+
"synthesis_time(ms)": 1,
3352+
"Pi": 4,
3353+
"Po": 4,
3354+
"logic element": 2,
3355+
"Adder": 0,
3356+
"Multiplier": 0,
3357+
"Memory": 0,
3358+
"generic logic size": 4,
3359+
"Longest Path": 3,
3360+
"Average Path": 2,
3361+
"Estimated LUTs": 2,
3362+
"Total Node": 2
3363+
},
3364+
"syntax/unordered_ports/no_arch": {
3365+
"test_name": "syntax/unordered_ports/no_arch",
3366+
"verilog": "unordered_ports.v",
3367+
"max_rss(MiB)": 4.4,
3368+
"exec_time(ms)": 1.1,
3369+
"synthesis_time(ms)": 0.9,
3370+
"Pi": 4,
3371+
"Po": 4,
3372+
"logic element": 2,
3373+
"Longest Path": 3,
3374+
"Average Path": 2,
3375+
"Estimated LUTs": 2,
3376+
"Total Node": 2
3377+
},
33453378
"DEFAULT": {
33463379
"test_name": "n/a",
33473380
"architecture": "n/a",

0 commit comments

Comments
 (0)