From accb6f9c417d5d7f14cdc7a9633f5fd3e94adf78 Mon Sep 17 00:00:00 2001 From: John McMaster Date: Sat, 22 Dec 2018 14:52:48 -0800 Subject: [PATCH 1/2] hclkpips: path Signed-off-by: John McMaster --- fuzzers/058-hclkpips/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fuzzers/058-hclkpips/Makefile b/fuzzers/058-hclkpips/Makefile index 6a88ea55..790443a6 100644 --- a/fuzzers/058-hclkpips/Makefile +++ b/fuzzers/058-hclkpips/Makefile @@ -8,8 +8,8 @@ database: $(SPECIMENS_OK) ${XRAY_SEGMATCH} -o build/segbits_hclk_r.db $(addsuffix /segdata_hclk_r_design_*.txt,$(SPECIMENS)) ${XRAY_MASKMERGE} mask_hclk_l.db $(addsuffix /segdata_hclk_l_design_*.txt,$(SPECIMENS)) ${XRAY_MASKMERGE} mask_hclk_r.db $(addsuffix /segdata_hclk_r_design_*.txt,$(SPECIMENS)) - grep CK_INOUT segbits_hclk_l.db | sed 's, .*, always,' > build/ppips_hclk_l.txt - grep CK_INOUT segbits_hclk_r.db | sed 's, .*, always,' > build/ppips_hclk_r.txt + grep CK_INOUT build/segbits_hclk_l.db | sed 's, .*, always,' > build/ppips_hclk_l.txt + grep CK_INOUT build/segbits_hclk_r.db | sed 's, .*, always,' > build/ppips_hclk_r.txt pushdb: ${XRAY_DBFIXUP} --db-root . --clb-int From 946892d1b141a2e4d298107f6c6f74aa50a9d66d Mon Sep 17 00:00:00 2001 From: John McMaster Date: Sat, 22 Dec 2018 17:17:57 -0800 Subject: [PATCH 2/2] hclkpips: ignore HCLK_CK_INOUT_* Signed-off-by: John McMaster --- fuzzers/058-hclkpips/README.md | 1 + fuzzers/058-hclkpips/generate.py | 19 ++++++++++++++----- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/fuzzers/058-hclkpips/README.md b/fuzzers/058-hclkpips/README.md index d40cb638..7522154e 100644 --- a/fuzzers/058-hclkpips/README.md +++ b/fuzzers/058-hclkpips/README.md @@ -4,3 +4,4 @@ Fuzzer for PIPs in HCLK titles Run this fuzzer once. +It cannot solve HCLK.HCLK_CK_INOUT_* family diff --git a/fuzzers/058-hclkpips/generate.py b/fuzzers/058-hclkpips/generate.py index 03356b7a..26ac18af 100644 --- a/fuzzers/058-hclkpips/generate.py +++ b/fuzzers/058-hclkpips/generate.py @@ -1,6 +1,7 @@ #!/usr/bin/env python3 import sys +import re from prjxray.segmaker import Segmaker @@ -40,18 +41,26 @@ for arg in sys.argv[1:]: if "CLB_IO_CLK" not in segmk.grid[tile]["bits"]: print("WARNING: dropping tile %s" % tile) continue - tag = "%s.%s" % (dst, src) - segmk.add_tile_tag(tile, tag, 1) + + def add_tile_tag(tag, val): + # Workaround for https://github.com/SymbiFlow/prjxray/issues/396 + # TODO: drop from tcl or make an ignpip + if re.match(r"HCLK_CK_INOUT_.*", tag): + # print("Dropping %s %s" % (tag, val)) + return + segmk.add_tile_tag(tile, tag, val) + + add_tile_tag(tag, 1) if "HCLK_CK_BUFH" in src: en_tag = "ENABLE_BUFFER.%s" % src - segmk.add_tile_tag(tile, en_tag, 1) + add_tile_tag(en_tag, 1) for tag, tag_dst in tags.items(): if tag_dst != dst: - segmk.add_tile_tag(tile, tag, 0) + add_tile_tag(tag, 0) for en_tag, en_tag_src in en_tags.items(): if en_tag_src != src: - segmk.add_tile_tag(tile, en_tag, 0) + add_tile_tag(en_tag, 0) segmk.compile() segmk.write(arg)