mirror of https://github.com/openXC7/prjxray.git
005-tilegrid: add CFG_CENTER_MID tile base address calculation
Signed-off-by: Tomasz Michalak <tmichalak@antmicro.com>
This commit is contained in:
parent
0bddcaf908
commit
369362f8c8
|
|
@ -9,6 +9,7 @@ TILEGRID_TDB_DEPENDENCIES += bram_block/build/segbits_tilegrid.tdb
|
|||
TILEGRID_TDB_DEPENDENCIES += bram_int/build/segbits_tilegrid.tdb
|
||||
TILEGRID_TDB_DEPENDENCIES += clb/build/segbits_tilegrid.tdb
|
||||
TILEGRID_TDB_DEPENDENCIES += clb_int/build/segbits_tilegrid.tdb
|
||||
TILEGRID_TDB_DEPENDENCIES += cfg/build/segbits_tilegrid.tdb
|
||||
TILEGRID_TDB_DEPENDENCIES += dsp/build/segbits_tilegrid.tdb
|
||||
TILEGRID_TDB_DEPENDENCIES += fifo_int/build/segbits_tilegrid.tdb
|
||||
TILEGRID_TDB_DEPENDENCIES += cfg_int/build/segbits_tilegrid.tdb
|
||||
|
|
@ -54,6 +55,9 @@ clb/build/segbits_tilegrid.tdb: build/basicdb/tilegrid.json
|
|||
clb_int/build/segbits_tilegrid.tdb: build/basicdb/tilegrid.json
|
||||
cd clb_int && $(MAKE)
|
||||
|
||||
cfg/build/segbits_tilegrid.tdb: build/basicdb/tilegrid.json
|
||||
cd cfg && $(MAKE)
|
||||
|
||||
iob/build/segbits_tilegrid.tdb: build/basicdb/tilegrid.json
|
||||
cd iob && $(MAKE)
|
||||
|
||||
|
|
@ -126,6 +130,7 @@ clean:
|
|||
rm -rf build run.ok
|
||||
cd clb && $(MAKE) clean
|
||||
cd clb_int && $(MAKE) clean
|
||||
cd cfg && $(MAKE) clean
|
||||
cd iob && $(MAKE) clean
|
||||
cd iob_int && $(MAKE) clean
|
||||
cd mmcm && $(MAKE) clean
|
||||
|
|
|
|||
|
|
@ -83,6 +83,7 @@ def run(fn_in, fn_out, verbose=False):
|
|||
("bram/build/segbits_tilegrid.tdb", 28, 10),
|
||||
("bram_block/build/segbits_tilegrid.tdb", 128, 10),
|
||||
("clb/build/segbits_tilegrid.tdb", 36, 2),
|
||||
("cfg/build/segbits_tilegrid.tdb", 30, 101),
|
||||
("dsp/build/segbits_tilegrid.tdb", 28, 10),
|
||||
("clk_hrow/build/segbits_tilegrid.tdb", 30, 18),
|
||||
("clk_bufg/build/segbits_tilegrid.tdb", 30, 8),
|
||||
|
|
|
|||
|
|
@ -0,0 +1,4 @@
|
|||
N ?= 2
|
||||
GENERATE_ARGS?="--oneval 1 --design params.csv --dword 67 --dframe 1B --dbit 18"
|
||||
include ../fuzzaddr/common.mk
|
||||
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
source "$::env(XRAY_DIR)/utils/utils.tcl"
|
||||
generate_top
|
||||
|
|
@ -0,0 +1,64 @@
|
|||
import os
|
||||
import random
|
||||
#random.seed(int(os.getenv("SEED"), 16))
|
||||
from prjxray import util
|
||||
from prjxray.db import Database
|
||||
|
||||
|
||||
def gen_sites():
|
||||
db = Database(util.get_db_root())
|
||||
grid = db.grid()
|
||||
for tile_name in sorted(grid.tiles()):
|
||||
loc = grid.loc_of_tilename(tile_name)
|
||||
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"):
|
||||
yield tile_name, site_name
|
||||
|
||||
|
||||
def write_params(params):
|
||||
pinstr = 'tile,val,site\n'
|
||||
for tile, (site, val) in sorted(params.items()):
|
||||
pinstr += '%s,%s,%s\n' % (tile, val, site)
|
||||
open('params.csv', 'w').write(pinstr)
|
||||
|
||||
|
||||
def run():
|
||||
print('''
|
||||
module top();
|
||||
''')
|
||||
params = {}
|
||||
|
||||
sites = list(gen_sites())
|
||||
jtag_chains = ("1", "2", "3", "4")
|
||||
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}")
|
||||
)
|
||||
BSCANE2_{0} (
|
||||
.CAPTURE(),
|
||||
.DRCK(),
|
||||
.RESET(),
|
||||
.RUNTEST(),
|
||||
.SEL(),
|
||||
.SHIFT(),
|
||||
.TCK(),
|
||||
.TDI(),
|
||||
.TMS(),
|
||||
.UPDATE(),
|
||||
.TDO(1'b1)
|
||||
);
|
||||
'''.format(site_name, jtag_chains[isone]))
|
||||
|
||||
print("endmodule")
|
||||
write_params(params)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
run()
|
||||
Loading…
Reference in New Issue