diff --git a/.github/kokoro/test.sh b/.github/kokoro/test.sh index 65e7d6b7..895edee4 100755 --- a/.github/kokoro/test.sh +++ b/.github/kokoro/test.sh @@ -22,11 +22,11 @@ echo "-------------------------------------------" # Testing all projects/toolchains/boards python3 exhaust.py --build_type generic-all --fail --num-cpu $NUM_CORES # Testing parameters injection feature - python3 exhaust.py --parameters parameters.json --toolchain vpr --project blinky --build_type parameters --only_required + python3 exhaust.py --parameters parameters.json --toolchain vpr --project blinky --build_type parameters --only_required --fail # Testing multiple samples - python3 exhaust.py --build_type multiple-samples --run_config run_configs/multiple_samples.json --only_required + python3 exhaust.py --build_type multiple-samples --run_config run_configs/multiple_samples.json --only_required --fail # Testing multiple seeds - python3 exhaust.py --build_type multiple-seeds --run_config run_configs/multiple_seeds.json --only_required + python3 exhaust.py --build_type multiple-seeds --run_config run_configs/multiple_seeds.json --only_required --fail ) echo "-------------------------------------------" diff --git a/Makefile b/Makefile index 5b9491c6..d1365e96 100644 --- a/Makefile +++ b/Makefile @@ -25,8 +25,8 @@ SYMBIFLOW_LATEST_URL_BASE = https://storage.googleapis.com/symbiflow-arch-defs-g SYMBIFLOW_LATEST_URL = ${SYMBIFLOW_LATEST_URL_BASE}/symbiflow-toolchain-latest SYMBIFLOW_DEVICES = xc7a50t xc7a100t xc7a200t xc7z010 xc7z020 -QUICKLOGIC_ARCHIVE = quicklogic.tar.xz -QUICKLOGIC_URL = https://quicklogic-my.sharepoint.com/:u:/p/kkumar/EWuqtXJmalROpI2L5XeewMIBRYVCY8H4yc10nlli-Xq79g?download=1 +QUICKLOGIC_ARCHIVE = quicklogic.tar.gz +QUICKLOGIC_URL = https://storage.googleapis.com/symbiflow-arch-defs-install/quicklogic-arch-defs-63c3d8f9.tar.gz third_party/make-env/conda.mk: git submodule init diff --git a/conf/common/requirements.txt b/conf/common/requirements.txt index 18590217..f86bb790 100644 --- a/conf/common/requirements.txt +++ b/conf/common/requirements.txt @@ -1,13 +1,13 @@ -terminaltables asciitable -simplejson -tqdm -colorclass -lxml -python-constraint intervaltree jinja2 -pytest +lxml pandas +pytest +python-constraint +simplejson +termcolor +terminaltables +tqdm yapf git+https://github.com/SymbiFlow/edalize.git@symbiflow#egg=edalize diff --git a/conf/quicklogic/environment.yml b/conf/quicklogic/environment.yml index 2051e934..8ff263aa 100644 --- a/conf/quicklogic/environment.yml +++ b/conf/quicklogic/environment.yml @@ -1,14 +1,10 @@ name: quicklogic channels: - - conda-forge - litex-hub dependencies: - - litex-hub::quicklogic-yosys=v0.8.0_45_gcb3eef2b=20201216_065815 - - litex-hub::quicklogic-yosys-plugins=v1.2.0_11_g21045a9=20201216_065815 - - litex-hub::quicklogic-vtr=v8.0.0.rc2_4003_g8980e4621=20200902_114536 - # TODO: remove when quicklogic-vtr will be updated to version built after https://github.com/hdl/conda-eda/pull/90 - # or when conda-forge will rename API breaking tbb to another name (see https://github.com/conda-forge/tbb-feedstock/issues/81) - - tbb=2020.2 + - litex-hub::quicklogic-yosys=0.8.0_105_gd282be04=20210625_074838 + - litex-hub::quicklogic-yosys-plugins=1.2.0_11_g21045a9=20210625_074838 + - litex-hub::vtr-optimized=8.0.0_4023_ge73e88940=20210625_074838 - make - lxml - simplejson diff --git a/conf/quicklogic/requirements.txt b/conf/quicklogic/requirements.txt index e9d95041..8eb0df3f 100644 --- a/conf/quicklogic/requirements.txt +++ b/conf/quicklogic/requirements.txt @@ -1 +1,2 @@ -git+https://github.com/QuickLogic-corp/quicklogic-fasm.git +serial +git+https://github.com/QuickLogic-Corp/quicklogic-fasm.git diff --git a/env.sh b/env.sh index c0708802..2a2ce662 100644 --- a/env.sh +++ b/env.sh @@ -39,7 +39,7 @@ environment=${1:-xilinx-a35t} if [ "quicklogic" == ${environment} ]; then . ${FPGA_TOOL_PERF_BASE_DIR}/env/conda/bin/activate quicklogic - export PATH=${QUICKLOGIC}/install/bin:${PATH} + export PATH=${QUICKLOGIC}/quicklogic-arch-defs/bin:${PATH} elif [ "nextpnr" == ${environment} ]; then . ${FPGA_TOOL_PERF_BASE_DIR}/env/conda/bin/activate nextpnr-env export PATH=${SYMBIFLOW}/bin:${PATH} diff --git a/exhaust.py b/exhaust.py index 7b1da0dc..e08995a8 100755 --- a/exhaust.py +++ b/exhaust.py @@ -16,7 +16,7 @@ import re import logging from terminaltables import AsciiTable -from colorclass import Color +from termcolor import colored from multiprocessing import cpu_count from utils.utils import safe_get_dict_value @@ -74,6 +74,8 @@ def print_summary_table( row = list(re.match(pattern, build).groups()) + is_required = (row[0], row[1], row[4]) in required_task_list + if build_type != row[5] or (build_nr and int(build_nr) != int(row[6])): continue if project and row[0] not in project: @@ -87,24 +89,29 @@ def print_summary_table( # It is created for successful builds only if os.path.exists(os.path.join(root_dir, out_prefix, build, 'meta.json')): - row.append(Color('{autogreen}passed{/autogreen}')) + row.append(colored('passed', 'green')) passed += 1 else: - row.append(Color('{autored}failed{/autored}')) - failed += 1 - if (row[0], row[1], row[4]) in required_task_list: + if is_required: + row.append(colored('failed', 'red')) + build_status = False failed_required_tests.append( "{} {} {}".format(row[0], row[1], row[4]) ) + else: + row.append(colored('allowed to fail', 'blue')) + + failed += 1 + table_data.append(row) build_count += 1 table_data.append( [ - Color('{autoblue}Total Runs:{/autoblue}'), build_count, - Color('{autogreen}Passed:{/autogreen}'), passed, - Color('{autored}Failed:{/autored}'), failed, '', '', '{}%'. + colored('Total Runs:', 'blue'), build_count, + colored('Passed:', 'green'), passed, + colored('Failed:', 'red'), failed, '', '', '{}%'. format(int(passed / build_count * 100) if build_count != 0 else 0) ] ) diff --git a/project/axi-lite-reg.json b/project/axi-lite-reg.json index 5ffc434a..8868e045 100644 --- a/project/axi-lite-reg.json +++ b/project/axi-lite-reg.json @@ -8,5 +8,5 @@ "vendors": { "xilinx": ["zybo"] }, - "required_toolchains": ["vivado", "nextpnr-xilinx", "vpr"] + "required_toolchains": ["vivado", "vpr"] } diff --git a/project/blinky.json b/project/blinky.json index 445c34d4..40aa7768 100644 --- a/project/blinky.json +++ b/project/blinky.json @@ -10,5 +10,5 @@ "vendors": { "xilinx": ["arty-a35t", "arty-a100t", "basys3"] }, - "required_toolchains": ["vivado", "yosys-vivado", "nextpnr-xilinx", "nextpnr-xilinx-fasm2bels", "vpr", "vpr-fasm2bels"] + "required_toolchains": ["vivado", "yosys-vivado", "vpr", "vpr-fasm2bels"] } diff --git a/project/ibex.json b/project/ibex.json index 7deb1f36..e9e14ce2 100644 --- a/project/ibex.json +++ b/project/ibex.json @@ -32,5 +32,5 @@ "vendors": { "xilinx": ["arty-a35t", "arty-a100t", "basys3", "nexys-video"] }, - "required_toolchains": ["nextpnr-xilinx", "vivado", "vpr", "vpr-fasm2bels", "yosys-vivado"] + "required_toolchains": ["vivado", "vpr", "vpr-fasm2bels", "yosys-vivado"] } diff --git a/project/murax.json b/project/murax.json index fc280029..3895548d 100644 --- a/project/murax.json +++ b/project/murax.json @@ -17,5 +17,5 @@ "vendors": { "xilinx": ["basys3", "nexys-video"] }, - "required_toolchains": ["vivado", "yosys-vivado", "vpr", "vpr-fasm2bels", "nextpnr-xilinx"] + "required_toolchains": ["vivado", "yosys-vivado", "vpr", "vpr-fasm2bels"] } diff --git a/project/oneblink.json b/project/oneblink.json index 474af367..d441ebfc 100644 --- a/project/oneblink.json +++ b/project/oneblink.json @@ -12,5 +12,5 @@ "lattice": ["icebreaker"], "quicklogic": ["quickfeather"] }, - "required_toolchains": ["vivado", "yosys-vivado", "vpr", "vpr-fasm2bels", "nextpnr-xilinx", "nextpnr-xilinx-fasm2bels", "nextpnr-ice40", "quicklogic"] + "required_toolchains": ["vivado", "yosys-vivado", "vpr", "vpr-fasm2bels", "nextpnr-ice40", "quicklogic"] } diff --git a/project/picosoc-simpleuart.json b/project/picosoc-simpleuart.json index f0dbc00c..ffd3747e 100644 --- a/project/picosoc-simpleuart.json +++ b/project/picosoc-simpleuart.json @@ -13,5 +13,5 @@ "lattice": ["icebreaker"], "quicklogic": ["quickfeather"] }, - "required_toolchains": ["vivado", "yosys-vivado", "vpr", "vpr-fasm2bels", "nextpnr-xilinx", "nextpnr-ice40", "quicklogic"] + "required_toolchains": ["vivado", "yosys-vivado", "vpr", "vpr-fasm2bels", "nextpnr-ice40", "quicklogic"] } diff --git a/project/picosoc.json b/project/picosoc.json index 25dbbd0e..b98d487d 100644 --- a/project/picosoc.json +++ b/project/picosoc.json @@ -15,5 +15,5 @@ "vendors": { "xilinx": ["basys3", "nexys"] }, - "required_toolchains": ["vivado", "yosys-vivado", "vpr", "vpr-fasm2bels", "nextpnr-xilinx"] + "required_toolchains": ["vivado", "yosys-vivado", "vpr", "vpr-fasm2bels"] } diff --git a/project/zynq-ps7-counter.json b/project/zynq-ps7-counter.json index ba7ddfbc..451eab57 100644 --- a/project/zynq-ps7-counter.json +++ b/project/zynq-ps7-counter.json @@ -10,5 +10,5 @@ "vendors": { "xilinx": ["zybo"] }, - "required_toolchains": ["vivado", "yosys-vivado", "nextpnr-xilinx", "nextpnr-xilinx-fasm2bels", "vpr", "vpr-fasm2bels"] + "required_toolchains": ["vivado", "yosys-vivado", "vpr", "vpr-fasm2bels"] } diff --git a/tool_parameters/vpr/parameters.json b/tool_parameters/vpr/parameters.json index eabef988..db08866f 100644 --- a/tool_parameters/vpr/parameters.json +++ b/tool_parameters/vpr/parameters.json @@ -7,7 +7,7 @@ "constant_net_method": ["route"], "route_chan_width": [500], "router_heap": ["bucket"], - "router_lookahead": ["connection_box_map"], + "router_lookahead": ["extended_map"], "check_route": ["quick"], "clock_modeling": ["route"], "place_delta_delay_matrix_calculation_method": ["dijkstra"],