Merge branch 'master' into graphics
This commit is contained in:
@@ -1,9 +1,21 @@
|
||||
{
|
||||
"version": 1,
|
||||
"include_paths":[
|
||||
"../dpi",
|
||||
"../rtl",
|
||||
"../rtl/afu",
|
||||
"../rtl/cache",
|
||||
"../rtl/fp_cores",
|
||||
"../rtl/interfaces",
|
||||
"../rtl/libs"
|
||||
],
|
||||
"includes":[
|
||||
"../rtl/VX_config.vh",
|
||||
"../rtl/VX_platform.vh",
|
||||
"../rtl/VX_define.vh",
|
||||
"../rtl/VX_config.vh",
|
||||
"../rtl/VX_platform.vh",
|
||||
"../rtl/VX_define.vh",
|
||||
"../rtl/VX_gpu_types.vh",
|
||||
"../rtl/fp_cores/VX_fpu_types.vh",
|
||||
"../rtl/fp_cores/VX_fpu_define.vh",
|
||||
"../rtl/cache/VX_cache_define.vh"
|
||||
],
|
||||
"modules": {
|
||||
@@ -60,8 +72,8 @@
|
||||
"VX_gpu_unit": {},
|
||||
"VX_mem_unit": {
|
||||
"submodules": {
|
||||
"dcache": {"type":"VX_cache", "params":{"NUM_BANKS":"`DNUM_BANKS"}},
|
||||
"icache": {"type":"VX_cache", "params":{"NUM_BANKS":"`INUM_BANKS"}}
|
||||
"dcache": {"type":"VX_cache", "params":{"NUM_BANKS":"`DCACHE_NUM_BANKS"}},
|
||||
"icache": {"type":"VX_cache", "params":{"NUM_BANKS":"1"}}
|
||||
}
|
||||
},
|
||||
"VX_cache": {
|
||||
@@ -111,9 +123,9 @@
|
||||
"!cci_pending_writes_full": 1,
|
||||
"?afu_mem_req_fire": 1,
|
||||
"afu_mem_req_addr": 26,
|
||||
"afu_mem_req_tag": 29,
|
||||
"afu_mem_req_tag": 27,
|
||||
"?afu_mem_rsp_fire": 1,
|
||||
"afu_mem_rsp_tag": 29
|
||||
"afu_mem_rsp_tag": 27
|
||||
},
|
||||
"afu/vortex": {
|
||||
"!reset": 1,
|
||||
@@ -132,26 +144,26 @@
|
||||
"?icache_req_fire": 1,
|
||||
"icache_req_wid":"`NW_BITS",
|
||||
"icache_req_addr": 32,
|
||||
"icache_req_tag":"`ICORE_TAG_ID_BITS",
|
||||
"icache_req_tag":"`ICACHE_CORE_TAG_ID_BITS",
|
||||
"?icache_rsp_fire": 1,
|
||||
"icache_rsp_data": 32,
|
||||
"icache_rsp_tag":"`ICORE_TAG_ID_BITS"
|
||||
"icache_rsp_tag":"`ICACHE_CORE_TAG_ID_BITS"
|
||||
},
|
||||
"afu/vortex/cluster/core/pipeline/fetch/warp_sched": {
|
||||
"?wsched_scheduled_warp": 1,
|
||||
"?wsched_scheduled": 1,
|
||||
"wsched_active_warps": "`NUM_WARPS",
|
||||
"wsched_schedule_table": "`NUM_WARPS",
|
||||
"wsched_schedule_ready": "`NUM_WARPS",
|
||||
"wsched_warp_to_schedule": "`NW_BITS",
|
||||
"wsched_warp_pc": "32"
|
||||
"wsched_stalled_warps": "`NUM_WARPS",
|
||||
"wsched_schedule_tmask": "`NUM_THREADS",
|
||||
"wsched_schedule_wid": "`NW_BITS",
|
||||
"wsched_schedule_pc": "32"
|
||||
},
|
||||
"afu/vortex/cluster/core/pipeline/execute/gpu_unit": {
|
||||
"?gpu_rsp_valid": 1,
|
||||
"gpu_rsp_wid": "`NW_BITS",
|
||||
"gpu_rsp_tmc": "`GPU_TMC_BITS",
|
||||
"gpu_rsp_wspawn": "`GPU_WSPAWN_BITS",
|
||||
"gpu_rsp_split": "`GPU_SPLIT_BITS",
|
||||
"gpu_rsp_barrier": "`GPU_BARRIER_BITS"
|
||||
"gpu_rsp_tmc": 1,
|
||||
"gpu_rsp_wspawn": 1,
|
||||
"gpu_rsp_split": 1,
|
||||
"gpu_rsp_barrier": 1
|
||||
},
|
||||
"afu/vortex/cluster/core/pipeline/execute/lsu_unit": {
|
||||
"?dcache_req_fire":"`NUM_THREADS",
|
||||
@@ -172,8 +184,8 @@
|
||||
"issue_tmask":"`NUM_THREADS",
|
||||
"issue_pc": 32,
|
||||
"issue_ex_type":"`EX_BITS",
|
||||
"issue_op_type":"`OP_BITS",
|
||||
"issue_op_mod":"`MOD_BITS",
|
||||
"issue_op_type":"`INST_OP_BITS",
|
||||
"issue_op_mod":"`INST_MOD_BITS",
|
||||
"issue_wb": 1,
|
||||
"issue_rd":"`NR_BITS",
|
||||
"issue_rs1":"`NR_BITS",
|
||||
@@ -203,9 +215,7 @@
|
||||
"is_fill_st0": 1,
|
||||
"is_mshr_st0": 1,
|
||||
"miss_st0": 1,
|
||||
"force_miss_st0": 1,
|
||||
"mshr_push": 1,
|
||||
"?crsq_in_stall": 1,
|
||||
"?crsq_stall": 1,
|
||||
"?mreq_alm_full": 1,
|
||||
"?mshr_alm_full": 1
|
||||
}
|
||||
|
||||
@@ -125,6 +125,11 @@ def parse_func_args(text):
|
||||
|
||||
return (args, l)
|
||||
|
||||
def load_include_path(dir):
|
||||
if not dir in include_dirs:
|
||||
print("*** include path: " + dir)
|
||||
include_dirs.append(dir)
|
||||
|
||||
def resolve_include_path(filename, parent_dir):
|
||||
if os.path.basename(filename) in exclude_files:
|
||||
return None
|
||||
@@ -137,7 +142,7 @@ def resolve_include_path(filename, parent_dir):
|
||||
filepath = os.path.join(dir, filename)
|
||||
if os.path.isfile(filepath):
|
||||
return os.path.abspath(filepath)
|
||||
raise Exception("couldn't find include file: " + filename)
|
||||
raise Exception("couldn't find include file: " + filename + " in " + parent_dir)
|
||||
|
||||
def remove_comments(text):
|
||||
text = re.sub(re.compile("/\*.*?\*/",re.DOTALL ), "", text) # multiline
|
||||
@@ -273,6 +278,7 @@ def expand_text(text, params):
|
||||
return None
|
||||
|
||||
def parse_include(filename, nesting):
|
||||
print("*** parsing: " + filename + "...")
|
||||
if nesting > 99:
|
||||
raise Exception("include recursion!")
|
||||
#print("*** parsing '" + filename + "'...")
|
||||
@@ -356,15 +362,11 @@ def parse_includes(includes):
|
||||
|
||||
for include in includes:
|
||||
parse_include(include, 0)
|
||||
load_include_path(os.path.dirname(include))
|
||||
|
||||
# restore current directory
|
||||
os.chdir(old_dir)
|
||||
|
||||
def load_include_dirs(dirs):
|
||||
for dir in dirs:
|
||||
#print("*** include dir: " + dir)
|
||||
include_dirs.append(dir)
|
||||
|
||||
def load_defines(defines):
|
||||
for define in defines:
|
||||
key_value = define.split('=', 2)
|
||||
@@ -396,6 +398,8 @@ def eval_node(text, params):
|
||||
try:
|
||||
__text = text.replace('$clog2', '__clog2')
|
||||
__text = translate_ternary(__text)
|
||||
__text = __text.replace('||', 'or')
|
||||
__text = __text.replace('&&', 'and')
|
||||
e = eval(__text, {'__clog2': clog2})
|
||||
return e
|
||||
except (NameError, SyntaxError):
|
||||
@@ -801,7 +805,8 @@ def main():
|
||||
global br_stack
|
||||
|
||||
if args.I:
|
||||
load_include_dirs(args.I)
|
||||
for dir in args.I:
|
||||
load_include_path(dir)
|
||||
|
||||
if args.D:
|
||||
load_defines(args.D)
|
||||
@@ -810,6 +815,10 @@ def main():
|
||||
|
||||
exclude_files.append(os.path.basename(args.vl))
|
||||
|
||||
if "include_paths" in config:
|
||||
for path in config["include_paths"]:
|
||||
load_include_path(path)
|
||||
|
||||
if "includes" in config:
|
||||
parse_includes(config["includes"])
|
||||
|
||||
|
||||
Reference in New Issue
Block a user