Skip to content

Commit 3a82c8d

Browse files
committed
symbiflow: update packages to point to the latest availables
Signed-off-by: Alessandro Comodi <[email protected]>
1 parent ddb4a0b commit 3a82c8d

File tree

6 files changed

+38
-9
lines changed

6 files changed

+38
-9
lines changed

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -320,7 +320,7 @@ add_custom_target(get_ispd_benchmarks
320320
add_custom_target(get_symbiflow_benchmarks
321321
COMMAND ./vtr_flow/scripts/download_symbiflow.py --vtr_flow_dir ./vtr_flow
322322
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
323-
COMMENT "Downloading (~1GB) and extracting SymbiFlow architectures (~10GB) into VTR source tree.")
323+
COMMENT "Downloading (~100MB) and extracting SymbiFlow architectures (~2.7GB) into VTR source tree.")
324324

325325
#
326326
# Unit Testing

vtr_flow/benchmarks/symbiflow/README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,7 @@ This directory holds all the SymbiFlow benchmarks that are generated in the [Sym
66
The circuits come along with the SDC constraints file, if present, and have been produced with yosys.
77
They are compatible with the symbiflow architectures produced in the same Symbiflow-arch-defs build.
88

9+
Some of the circuites require also the place constraint files to correctly place some IOs and clock tiles
10+
in the correct location, so not to incur in routability issues.
11+
912
All the data files can be downloaded with the `make get_symbiflow_benchmarks` target in the root directory.
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
Place constraints
2+
=================
3+
4+
This directory contains the Place constraints files corresponding to the homonym circuit file.

vtr_flow/scripts/download_symbiflow.py

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,9 @@
1616

1717
GCS_URL = {
1818
"architectures":
19-
("https://storage.googleapis.com/symbiflow-arch-defs/artifacts/"
20-
"prod/foss-fpga-tools/symbiflow-arch-defs/presubmit/install/1125/20201201-062708/"
21-
"symbiflow-arch-defs-install-4f157a57.tar.xz"),
19+
"https://storage.googleapis.com/symbiflow-arch-defs-gha/symbiflow-xc7a50t_test-latest",
2220
"benchmarks":
23-
("https://storage.googleapis.com/symbiflow-arch-defs/artifacts/"
24-
"prod/foss-fpga-tools/symbiflow-arch-defs/presubmit/install/1125/20201201-062708/"
25-
"symbiflow-arch-defs-benchmarks-4f157a57.tar.xz")
21+
"https://storage.googleapis.com/symbiflow-arch-defs-gha/symbiflow-benchmarks-latest"
2622
}
2723

2824
SYMBIFLOW_URL_MIRRORS = {"google": GCS_URL}
@@ -117,8 +113,9 @@ def download_url(filename, url):
117113
"""
118114
Downloads the symbiflow release
119115
"""
120-
print("Downloading latest package:\n{}".format(url))
121-
request.urlretrieve(url, filename, reporthook=download_progress_callback)
116+
latest_package_url = request.urlopen(url).read().decode("utf-8")
117+
print("Downloading latest package:\n{}".format(latest_package_url))
118+
request.urlretrieve(latest_package_url, filename, reporthook=download_progress_callback)
122119

123120

124121
def download_progress_callback(block_num, block_size, expected_size):
@@ -183,6 +180,8 @@ def extract_to_vtr_flow_dir(args, tar_xz_filename, destination, extract_path="")
183180
elif fnmatch.fnmatch(src_file_path, "**/*.sdc"):
184181
dst_file_path = os.path.join(symbiflow_extract_dir, "sdc", filename)
185182

183+
elif fnmatch.fnmatch(src_file_path, "**/*.place"):
184+
dst_file_path = os.path.join(symbiflow_extract_dir, "place_constr", filename)
186185

187186
if dst_file_path:
188187
shutil.move(src_file_path, dst_file_path)

vtr_flow/scripts/python_libs/vtr/task.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ def __init__(
4040
script_params_list_add=None,
4141
pass_requirements_file=None,
4242
sdc_dir=None,
43+
place_constr_dir=None,
4344
qor_parse_file=None,
4445
cmos_tech_behavior=None,
4546
pad_file=None,
@@ -60,6 +61,7 @@ def __init__(
6061
self.script_params_list_add = script_params_list_add
6162
self.pass_requirements_file = pass_requirements_file
6263
self.sdc_dir = sdc_dir
64+
self.place_constr_dir = place_constr_dir
6365
self.qor_parse_file = qor_parse_file
6466
self.cmos_tech_behavior = cmos_tech_behavior
6567
self.pad_file = pad_file
@@ -180,6 +182,7 @@ def load_task_config(config_file):
180182
"script_params_common",
181183
"pass_requirements_file",
182184
"sdc_dir",
185+
"place_constr_dir",
183186
"qor_parse_file",
184187
"cmos_tech_behavior",
185188
"pad_file",
@@ -355,6 +358,19 @@ def create_jobs(args, configs, longest_name=0, longest_arch_circuit=0, after_run
355358
except InspectError:
356359
pass
357360

361+
if config.place_constr_dir:
362+
place_constr_name = "{}.place".format(Path(circuit).stem)
363+
try:
364+
place_constr_file = resolve_vtr_source_file(
365+
config, place_constr_name, config.place_constr_dir)
366+
367+
cmd += [
368+
"--fix_clusters",
369+
"{}".format(place_constr_file)
370+
]
371+
except InspectError:
372+
pass
373+
358374
parse_cmd = None
359375
second_parse_cmd = None
360376
qor_parse_command = None

vtr_flow/tasks/regression_tests/vtr_reg_nightly/symbiflow/config/config.txt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@ circuits_dir=benchmarks/symbiflow
88
# SDC directory
99
sdc_dir=benchmarks/symbiflow/sdc
1010

11+
# Place constraints directory
12+
place_constr_dir=benchmarks/symbiflow/place_constr
13+
1114
# Path to directory of architectures to use
1215
archs_dir=arch/symbiflow
1316

@@ -18,6 +21,10 @@ circuit_list_add=murax_basys3_full_100.eblif
1821
circuit_list_add=murax_basys3_full_50.eblif
1922
circuit_list_add=picosoc_basys3_full_100.eblif
2023
circuit_list_add=picosoc_basys3_full_50.eblif
24+
circuit_list_add=linux_arty.eblif
25+
circuit_list_add=minilitex_arty.eblif
26+
circuit_list_add=minilitex_ddr_arty.eblif
27+
circuit_list_add=minilitex_ddr_eth_arty.eblif
2128

2229
# Add architectures to list to sweep
2330
arch_list_add=arch.timing.xml

0 commit comments

Comments
 (0)