From ce64c61eb280dd996c65a223d8ec2a348255e234 Mon Sep 17 00:00:00 2001 From: Maciej Kurc Date: Mon, 23 Jan 2023 11:01:09 +0100 Subject: [PATCH 1/3] Added passing NISP data to nextpnr Signed-off-by: Maciej Kurc --- toolchains/nextpnr.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/toolchains/nextpnr.py b/toolchains/nextpnr.py index d97c66a5..d41ee2d5 100644 --- a/toolchains/nextpnr.py +++ b/toolchains/nextpnr.py @@ -699,8 +699,19 @@ def __init__(self, rootdir): def configure(self): super().configure() + self.tool_options['binary_path'] = self.toolchain_bin + nisp_data = os.path.join( + self.rootdir, 'env', 'interchange', 'devices', self.chip, + '{}_site_routability.json'.format(self.chip) + ) + + self.tool_options['nextpnr_options'].extend([ + "--site-routing-graph", + nisp_data + ]) + class NextpnrXilinx(NextpnrGeneric): '''nextpnr Xilinx variant using Yosys for synthesis''' From 097e2ef5248f1136f880b3c7b8890b2760a9a411 Mon Sep 17 00:00:00 2001 From: Maciej Kurc Date: Mon, 23 Jan 2023 15:45:59 +0100 Subject: [PATCH 2/3] Enabled building nextpnr-fpga_interchange with NISP Signed-off-by: Maciej Kurc --- .github/scripts/build_nextpnr_fpga_interchange.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/scripts/build_nextpnr_fpga_interchange.sh b/.github/scripts/build_nextpnr_fpga_interchange.sh index e9cf263e..f4cac584 100755 --- a/.github/scripts/build_nextpnr_fpga_interchange.sh +++ b/.github/scripts/build_nextpnr_fpga_interchange.sh @@ -28,6 +28,6 @@ echo '::endgroup::' echo '::group::Building nextpnr-fpga_interchange' cd ./third_party/nextpnr -cmake . -DARCH=fpga_interchange -DRAPIDWRIGHT_PATH=`realpath ../RapidWright` -DINTERCHANGE_SCHEMA_PATH=`realpath ../fpga-interchange-schema` -make +cmake . -DARCH=fpga_interchange -DRAPIDWRIGHT_PATH=`realpath ../RapidWright` -DINTERCHANGE_SCHEMA_PATH=`realpath ../fpga-interchange-schema` -DENABLE_NISP=ON +make -j `nproc` echo '::endgroup::' From 6c833cf8e6a3f14a225dc94a6049f5825e576194 Mon Sep 17 00:00:00 2001 From: Maciej Kurc Date: Mon, 23 Jan 2023 14:31:53 +0100 Subject: [PATCH 3/3] Better fpga-tool-perf error handling Signed-off-by: Maciej Kurc --- fpgaperf.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/fpgaperf.py b/fpgaperf.py index 10eb9c86..74a020cc 100755 --- a/fpgaperf.py +++ b/fpgaperf.py @@ -25,6 +25,7 @@ import signal import sys import yaml +import traceback from terminaltables import AsciiTable from toolchains.icestorm import NextpnrIcestorm @@ -271,7 +272,13 @@ def run( err = str(e) if not verbose and len(err) > 1000: err = f"[...]\n{err[-1000:]}" - logger.debug(f"ERROR: {err}") + logger.error(err) + + if verbose: + trace = traceback.format_exc() + for line in trace.split("\n"): + logger.error(line) + err = err.split("\n") else: logger.debug("Printing Stats")