Complete Design Document (#1865)

This commit is contained in:
JeanRochCoulon 2024-02-23 23:09:11 +01:00 committed by GitHub
parent e2a5b80550
commit f332688fc0
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
58 changed files with 2215 additions and 918 deletions

View file

@ -13,7 +13,8 @@
def define_blacklist(parameters):
black_list = {}
black_list["flush_bp_i"] = ["For any HW configuration", "zero"]
black_list["flush_bp_i"] = ["For any HW configuration", "0"]
black_list["dtlb_hit_i"] = ["For any HW configuration", "1"]
param = "IsRVFI"
paramvalue = "0"
@ -23,14 +24,42 @@ def define_blacklist(parameters):
param = "DebugEn"
paramvalue = parameters[param].value
if paramvalue == "0":
black_list["set_debug_pc_o"] = [f"As {param} = {paramvalue}", "0"]
black_list["set_debug_pc_i"] = [f"As {param} = {paramvalue}", "0"]
black_list["debug_mode_o"] = [f"As {param} = {paramvalue}", "0"]
black_list["debug_mode_i"] = [f"As {param} = {paramvalue}", "0"]
black_list["debug_req_i"] = [f"As {param} = {paramvalue}", "0"]
black_list["single_step_o"] = [f"As {param} = {paramvalue}", "0"]
black_list["single_step_i"] = [f"As {param} = {paramvalue}", "0"]
param = "RVV"
paramvalue = parameters[param].value
if paramvalue == "0":
black_list["vs_i"] = [f"As {param} = {paramvalue}", "0"]
black_list["vs_o"] = [f"As {param} = {paramvalue}", "0"]
param = "RVS"
paramvalue = parameters[param].value
if paramvalue == "0":
black_list["en_translation_o"] = [f"As {param} = {paramvalue}", "0"]
black_list["enable_translation_o"] = [f"As {param} = {paramvalue}", "0"]
black_list["enable_translation_i"] = [f"As {param} = {paramvalue}", "0"]
black_list["en_ld_st_translation_o"] = [f"As {param} = {paramvalue}", "0"]
black_list["en_ld_st_translation_i"] = [f"As {param} = {paramvalue}", "0"]
black_list["sum_o"] = [f"As {param} = {paramvalue}", "0"]
black_list["sum_i"] = [f"As {param} = {paramvalue}", "0"]
black_list["satp_ppn_o"] = [f"As {param} = {paramvalue}", "0"]
black_list["satp_ppn_i"] = [f"As {param} = {paramvalue}", "0"]
black_list["vaddr_to_be_flushed_o"] = [f"As {param} = {paramvalue}", "0"]
black_list["vaddr_to_be_flushed_i"] = [f"As {param} = {paramvalue}", "0"]
black_list["asid_to_be_flushed_o"] = [f"As {param} = {paramvalue}", "0"]
black_list["asid_to_be_flushed_i"] = [f"As {param} = {paramvalue}", "0"]
black_list["mxr_o"] = [f"As {param} = {paramvalue}", "0"]
black_list["mxr_i"] = [f"As {param} = {paramvalue}", "0"]
black_list["asid_o"] = [f"As {param} = {paramvalue}", "0"]
black_list["asid_i"] = [f"As {param} = {paramvalue}", "0"]
black_list["sfence_vma_o"] = [f"As {param} = {paramvalue}", "0"]
black_list["sfence_vma_i"] = [f"As {param} = {paramvalue}", "0"]
param = "EnableAccelerator"
paramvalue = parameters[param].value
@ -40,10 +69,13 @@ def define_blacklist(parameters):
param = "RVF"
paramvalue = parameters[param].value
if paramvalue == "0":
black_list["fs_o"] = [f"As {param} = {paramvalue}", "0"]
black_list["fs_i"] = [f"As {param} = {paramvalue}", "0"]
black_list["frm_o"] = [f"As {param} = {paramvalue}", "0"]
black_list["frm_i"] = [f"As {param} = {paramvalue}", "0"]
black_list["fpu_valid_o"] = [f"As {param} = {paramvalue}", "0"]
black_list["fpu_ready_o"] = [f"As {param} = {paramvalue}", "0"]
black_list["fpu_ready_i"] = [f"As {param} = {paramvalue}", "0"]
black_list["fpu_fmt_o"] = [f"As {param} = {paramvalue}", "0"]
black_list["fpu_rm_o"] = [f"As {param} = {paramvalue}", "0"]
black_list["fpu_valid_i"] = [f"As {param} = {paramvalue}", "0"]
@ -54,31 +86,54 @@ def define_blacklist(parameters):
black_list["fpu_trans_id_o"] = [f"As {param} = {paramvalue}", "0"]
black_list["fpu_result_o"] = [f"As {param} = {paramvalue}", "0"]
black_list["fpu_exception_o"] = [f"As {param} = {paramvalue}", "0"]
black_list["csr_write_fflags_i"] = [f"As {param} = {paramvalue}", "0"]
black_list["fflags_o"] = [f"As {param} = {paramvalue}", "0"]
black_list["csr_write_fflags_o"] = [f"As {param} = {paramvalue}", "0"]
black_list["fprec_o"] = [f"As {param} = {paramvalue}", "0"]
black_list["dirty_fp_state_i"] = [f"As {param} = {paramvalue}", "0"]
black_list["dirty_fp_state_o"] = [f"As {param} = {paramvalue}", "0"]
black_list["we_fpr_i"] = [f"As {param} = {paramvalue}", "0"]
param = "RVA"
paramvalue = parameters[param].value
if paramvalue == "0":
black_list["amo_req_o"] = [f"As {param} = {paramvalue}", "0"]
black_list["amo_resp_i"] = [f"As {param} = {paramvalue}", "0"]
black_list["amo_valid_commit_o"] = [f"As {param} = {paramvalue}", "0"]
black_list["amo_valid_commit_i"] = [f"As {param} = {paramvalue}", "0"]
param = "PRIV"
paramvalue = "MachineOnly"
if paramvalue == "MachineOnly": # TODO PRIV to be added to RTL parameters
black_list["ld_st_priv_lvl_o"] = [f"As {param} = {paramvalue}", "MAchineMode"]
black_list["ld_st_priv_lvl_i"] = [f"As {param} = {paramvalue}", "MAchineMode"]
black_list["priv_lvl_o"] = [f"As {param} = {paramvalue}", "MachineMode"]
black_list["priv_lvl_i"] = [f"As {param} = {paramvalue}", "MachineMode"]
# black_list["tvm_i"] = [f"As {param} = {paramvalue}", "0"]
# black_list["tw_i"] = [f"As {param} = {paramvalue}", "0"]
# black_list["tsr_i"] = [f"As {param} = {paramvalue}", "0"]
black_list["tvm_o"] = [f"As {param} = {paramvalue}", "0"]
black_list["tvm_i"] = [f"As {param} = {paramvalue}", "0"]
black_list["tw_o"] = [f"As {param} = {paramvalue}", "0"]
black_list["tw_i"] = [f"As {param} = {paramvalue}", "0"]
black_list["tsr_o"] = [f"As {param} = {paramvalue}", "0"]
black_list["tsr_i"] = [f"As {param} = {paramvalue}", "0"]
param = "PerfCounterEn"
paramvalue = "0"
if paramvalue == "0": # TODO PerfCounterEn to be added to RTL parameters
black_list["PERF_COUNTERS"] = [f"As {param} = {paramvalue}", "0"]
param = "FenceEn"
paramvalue = "0"
if paramvalue == "0": # TODO FenceEn to be added to RTL parameters
black_list["fence_i_o"] = [f"As {param} = {paramvalue}", "0"]
black_list["fence_i_i"] = [f"As {param} = {paramvalue}", "0"]
black_list["fence_o"] = [f"As {param} = {paramvalue}", "0"]
black_list["fence_i"] = [f"As {param} = {paramvalue}", "0"]
param = "MMUPresent"
paramvalue = "0"
if paramvalue == "0": # TODO the MMUPresent to be added to RTL parameters
black_list["flush_tlb_i"] = [f"As {param} = {paramvalue}", "0"]
black_list["flush_tlb_o"] = [f"As {param} = {paramvalue}", "0"]
black_list["dtlb_ppn_i"] = [f"As {param} = {paramvalue}", "0"]
return black_list