005-tilegrid/cfg: use ICAP instead of BSCANE2, because the fuzzed BSCANE2 parameter depends on primitive placement

Signed-off-by: Hans Baier <foss@hans-baier.de>
This commit is contained in:
Hans Baier 2025-04-30 10:13:58 +07:00
parent 08353c973e
commit c27c51d093
2 changed files with 13 additions and 18 deletions

View File

@ -4,8 +4,9 @@
# license that can be found in the LICENSE file or at
# https://opensource.org/licenses/ISC
#
#
# SPDX-License-Identifier: ISC
N ?= 2
GENERATE_ARGS?="--oneval 1 --design params.csv --dword 67 --dframe 1B --dbit 18"
GENERATE_ARGS?="--oneval 1 --design params.csv --dword 68 --dframe 1A --dbit 23"
include ../fuzzaddr/common.mk

View File

@ -23,7 +23,7 @@ def gen_sites():
gridinfo = grid.gridinfo_at_loc(loc)
if gridinfo.tile_type in ['CFG_CENTER_MID']:
for site_name in sorted(gridinfo.sites.keys()):
if site_name.startswith("BSCAN_X0Y0"):
if site_name.startswith("ICAP_X0Y0"):
yield tile_name, site_name
@ -41,30 +41,24 @@ module top();
params = {}
sites = list(gen_sites())
jtag_chains = ("1", "2", "3", "4")
param = ("X8", "X16", "X32")
for (tile_name, site_name), isone in zip(sites,
util.gen_fuzz_states(len(sites))):
params[tile_name] = (site_name, isone)
print(
'''
(* KEEP, DONT_TOUCH, LOC = "{0}" *)
BSCANE2 #(
.JTAG_CHAIN("{1}")
ICAPE2 #(
.ICAP_WIDTH("{1}")
)
BSCANE2_{0} (
.CAPTURE(),
.DRCK(),
.RESET(),
.RUNTEST(),
.SEL(),
.SHIFT(),
.TCK(),
.TDI(),
.TMS(),
.UPDATE(),
.TDO(1'b1)
ICAP_{0} (
.CSIB(),
.RDWRB(),
.I(),
.O(),
.CLK()
);
'''.format(site_name, jtag_chains[isone]))
'''.format(site_name, param[isone]))
print("endmodule")
write_params(params)