update Design Doc after bumping H extension (#1968)

This commit is contained in:
JeanRochCoulon 2024-03-28 09:32:59 +01:00 committed by GitHub
parent f73724b7e2
commit 64273ca4af
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
16 changed files with 143 additions and 2 deletions

View file

@ -22,7 +22,7 @@ package cva6_config_pkg;
localparam CVA6ConfigZcbExtEn = 1;
localparam CVA6ConfigZcmpExtEn = 0;
localparam CVA6ConfigAExtEn = 0;
localparam CVA6ConfigHExtEn = 0; // always disabled
localparam CVA6ConfigHExtEn = 0;
localparam CVA6ConfigBExtEn = 1;
localparam CVA6ConfigVExtEn = 0;
localparam CVA6ConfigZiCondExtEn = 0;

View file

@ -84,6 +84,10 @@
- Compress RISC-V extension
- 1
* - RVH
- Hypervisor RISC-V extension
- 0
* - RVZCB
- Zcb RISC-V extension
- 1
@ -121,7 +125,7 @@
- 64'h800
* - ExceptionAddress
- Address to jump when exception
- Address to jump when exception
- 64'h808
* - RASDepth

View file

@ -98,6 +98,8 @@
Due to cv32a65x configuration, some ports are tied to a static value. These ports do not appear in the above table, they are listed below
| As RVH = 0,
| ``v_i`` input is tied to 0
| As DebugEn = 0,
| ``debug_mode_i`` input is tied to 0

View file

@ -171,4 +171,7 @@ Due to cv32a65x configuration, some ports are tied to a static value. These port
| ``fence_o`` output is tied to 0
| As RVS = 0,
| ``sfence_vma_o`` output is tied to 0
| As RVH = 0,
| ``hfence_vvma_o`` output is tied to 0
| ``hfence_gvma_o`` output is tied to 0

View file

@ -128,6 +128,12 @@
Due to cv32a65x configuration, some ports are tied to a static value. These ports do not appear in the above table, they are listed below
| As RVH = 0,
| ``v_i`` input is tied to 0
| ``flush_tlb_vvma_o`` output is tied to 0
| ``flush_tlb_gvma_o`` output is tied to 0
| ``hfence_vvma_i`` input is tied to 0
| ``hfence_gvma_i`` input is tied to 0
| As MMUPresent = 0,
| ``flush_tlb_o`` output is tied to 0
| As EnableAccelerator = 0,

View file

@ -190,6 +190,21 @@ Due to cv32a65x configuration, some ports are tied to a static value. These port
| ``tvm_o`` output is tied to 0
| ``tw_o`` output is tied to 0
| ``tsr_o`` output is tied to 0
| As RVH = 0,
| ``v_o`` output is tied to 0
| ``vfs_o`` output is tied to 0
| ``en_g_translation_o`` output is tied to 0
| ``en_ld_st_g_translation_o`` output is tied to 0
| ``ld_st_v_o`` output is tied to 0
| ``csr_hs_ld_st_inst_i`` input is tied to 0
| ``vs_sum_o`` output is tied to 0
| ``vmxr_o`` output is tied to 0
| ``vsatp_ppn_o`` output is tied to 0
| ``vs_asid_o`` output is tied to 0
| ``hgatp_ppn_o`` output is tied to 0
| ``vmid_o`` output is tied to 0
| ``vtw_o`` output is tied to 0
| ``hu_o`` output is tied to 0
| As RVV = 0,
| ``vs_o`` output is tied to 0
| As RVS = 0,

View file

@ -118,6 +118,11 @@ Due to cv32a65x configuration, some ports are tied to a static value. These port
| ``tvm_i`` input is tied to 0
| ``tw_i`` input is tied to 0
| ``tsr_i`` input is tied to 0
| As RVH = 0,
| ``v_i`` input is tied to 0
| ``vfs_i`` input is tied to 0
| ``vtw_i`` input is tied to 0
| ``hu_i`` input is tied to 0
| As RVF = 0,
| ``fs_i`` input is tied to 0
| ``frm_i`` input is tied to 0

View file

@ -346,6 +346,21 @@ Due to cv32a65x configuration, some ports are tied to a static value. These port
| As DebugEn = 0,
| ``debug_mode_i`` input is tied to 0
| As RVH = 0,
| ``tinst_i`` input is tied to 0
| ``enable_g_translation_i`` input is tied to 0
| ``en_ld_st_g_translation_i`` input is tied to 0
| ``flush_tlb_vvma_i`` input is tied to 0
| ``flush_tlb_gvma_i`` input is tied to 0
| ``v_i`` input is tied to 0
| ``ld_st_v_i`` input is tied to 0
| ``csr_hs_ld_st_inst_o`` output is tied to 0
| ``vs_sum_i`` input is tied to 0
| ``vmxr_i`` input is tied to 0
| ``vsatp_ppn_i`` input is tied to 0
| ``vs_asid_i`` input is tied to 0
| ``hgatp_ppn_i`` input is tied to 0
| ``vmid_i`` input is tied to 0
| As EnableAccelerator = 0,
| ``stall_st_pending_i`` input is tied to 0
| ``acc_valid_i`` input is tied to 0

View file

@ -108,6 +108,11 @@ Due to cv32a65x configuration, some ports are tied to a static value. These port
| ``tvm_i`` input is tied to 0
| ``tw_i`` input is tied to 0
| ``tsr_i`` input is tied to 0
| As RVH = 0,
| ``v_i`` input is tied to 0
| ``vfs_i`` input is tied to 0
| ``vtw_i`` input is tied to 0
| ``hu_i`` input is tied to 0
| As RVF = 0,
| ``fs_i`` input is tied to 0
| ``frm_i`` input is tied to 0

View file

@ -120,4 +120,10 @@
- ID_STAGE
- logic
Due to cv32a65x configuration, some ports are tied to a static value. These ports do not appear in the above table, they are listed below
| As RVH = 0,
| ``exception_gpaddr_i`` input is tied to 0
| ``exception_tinst_i`` input is tied to 0
| ``exception_gva_i`` input is tied to 0

View file

@ -250,6 +250,8 @@ Due to cv32a65x configuration, some ports are tied to a static value. These port
| As EnableAccelerator = 0,
| ``stall_i`` input is tied to 0
| As RVH = 0,
| ``tinst_o`` output is tied to 0
| As RVF = 0,
| ``fpu_ready_i`` input is tied to 0
| ``fpu_valid_o`` output is tied to 0

View file

@ -249,6 +249,8 @@ Due to cv32a65x configuration, some ports are tied to a static value. These port
| ``stall_i`` input is tied to 0
| ``issue_instr_o`` output is tied to 0
| ``issue_instr_hs_o`` output is tied to 0
| As RVH = 0,
| ``tinst_o`` output is tied to 0
| As RVF = 0,
| ``fpu_ready_i`` input is tied to 0
| ``fpu_valid_o`` output is tied to 0

View file

@ -186,6 +186,23 @@ Due to cv32a65x configuration, some ports are tied to a static value. These port
| ``amo_valid_commit_i`` input is tied to 0
| ``amo_req_o`` output is tied to 0
| ``amo_resp_i`` input is tied to 0
| As RVH = 0,
| ``tinst_i`` input is tied to 0
| ``enable_g_translation_i`` input is tied to 0
| ``en_ld_st_g_translation_i`` input is tied to 0
| ``v_i`` input is tied to 0
| ``ld_st_v_i`` input is tied to 0
| ``csr_hs_ld_st_inst_o`` output is tied to 0
| ``vs_sum_i`` input is tied to 0
| ``vmxr_i`` input is tied to 0
| ``vsatp_ppn_i`` input is tied to 0
| ``vs_asid_i`` input is tied to 0
| ``hgatp_ppn_i`` input is tied to 0
| ``vmid_i`` input is tied to 0
| ``vmid_to_be_flushed_i`` input is tied to 0
| ``gpaddr_to_be_flushed_i`` input is tied to 0
| ``flush_tlb_vvma_i`` input is tied to 0
| ``flush_tlb_gvma_i`` input is tied to 0
| As RVS = 0,
| ``enable_translation_i`` input is tied to 0
| ``en_ld_st_translation_i`` input is tied to 0

View file

@ -146,6 +146,10 @@
Due to cv32a65x configuration, some ports are tied to a static value. These ports do not appear in the above table, they are listed below
| As RVH = 0,
| ``tinst_o`` output is tied to 0
| ``hs_ld_st_inst_o`` output is tied to 0
| ``hlvx_inst_o`` output is tied to 0
| For any HW configuration,
| ``dtlb_hit_i`` input is tied to 1
| As MMUPresent = 0,

View file

@ -164,6 +164,10 @@ Due to cv32a65x configuration, some ports are tied to a static value. These port
| ``amo_resp_i`` input is tied to 0
| As IsRVFI = 0,
| ``rvfi_mem_paddr_o`` output is tied to 0
| As RVH = 0,
| ``tinst_o`` output is tied to 0
| ``hs_ld_st_inst_o`` output is tied to 0
| ``hlvx_inst_o`` output is tied to 0
| For any HW configuration,
| ``dtlb_hit_i`` input is tied to 1

View file

@ -45,6 +45,57 @@ def define_blacklist(parameters):
black_list["single_step_o"] = [f"As {param} = {paramvalue}", "0"]
black_list["single_step_i"] = [f"As {param} = {paramvalue}", "0"]
param = "RVH"
paramvalue = parameters[param].value
if paramvalue == "0":
black_list["v_i"] = [f"As {param} = {paramvalue}", "0"]
black_list["v_o"] = [f"As {param} = {paramvalue}", "0"]
black_list["vfs_o"] = [f"As {param} = {paramvalue}", "0"]
black_list["vfs_i"] = [f"As {param} = {paramvalue}", "0"]
black_list["hfence_vvma_o"] = [f"As {param} = {paramvalue}", "0"]
black_list["hfence_gvma_o"] = [f"As {param} = {paramvalue}", "0"]
black_list["flush_tlb_vvma_i"] = [f"As {param} = {paramvalue}", "0"]
black_list["flush_tlb_gvma_i"] = [f"As {param} = {paramvalue}", "0"]
black_list["flush_tlb_vvma_o"] = [f"As {param} = {paramvalue}", "0"]
black_list["flush_tlb_gvma_o"] = [f"As {param} = {paramvalue}", "0"]
black_list["en_g_translation_o"] = [f"As {param} = {paramvalue}", "0"]
black_list["enable_g_translation_i"] = [f"As {param} = {paramvalue}", "0"]
black_list["en_ld_st_g_translation_o"] = [f"As {param} = {paramvalue}", "0"]
black_list["en_ld_st_g_translation_i"] = [f"As {param} = {paramvalue}", "0"]
black_list["ld_st_v_o"] = [f"As {param} = {paramvalue}", "0"]
black_list["ld_st_v_i"] = [f"As {param} = {paramvalue}", "0"]
black_list["csr_hs_ld_st_inst_i"] = [f"As {param} = {paramvalue}", "0"]
black_list["csr_hs_ld_st_inst_o"] = [f"As {param} = {paramvalue}", "0"]
black_list["vs_sum_i"] = [f"As {param} = {paramvalue}", "0"]
black_list["vs_sum_o"] = [f"As {param} = {paramvalue}", "0"]
black_list["vmxr_o"] = [f"As {param} = {paramvalue}", "0"]
black_list["vmxr_i"] = [f"As {param} = {paramvalue}", "0"]
black_list["vsatp_ppn_o"] = [f"As {param} = {paramvalue}", "0"]
black_list["vsatp_ppn_i"] = [f"As {param} = {paramvalue}", "0"]
black_list["vs_asid_o"] = [f"As {param} = {paramvalue}", "0"]
black_list["vs_asid_i"] = [f"As {param} = {paramvalue}", "0"]
black_list["hgatp_ppn_o"] = [f"As {param} = {paramvalue}", "0"]
black_list["hgatp_ppn_i"] = [f"As {param} = {paramvalue}", "0"]
black_list["vmid_o"] = [f"As {param} = {paramvalue}", "0"]
black_list["vmid_i"] = [f"As {param} = {paramvalue}", "0"]
black_list["vtw_o"] = [f"As {param} = {paramvalue}", "0"]
black_list["vtw_i"] = [f"As {param} = {paramvalue}", "0"]
black_list["hu_o"] = [f"As {param} = {paramvalue}", "0"]
black_list["hu_i"] = [f"As {param} = {paramvalue}", "0"]
black_list["ld_st_v_i"] = [f"As {param} = {paramvalue}", "0"]
black_list["tinst_i"] = [f"As {param} = {paramvalue}", "0"]
black_list["tinst_o"] = [f"As {param} = {paramvalue}", "0"]
black_list["csr_hs_ld_st_inst_o"] = [f"As {param} = {paramvalue}", "0"]
black_list["exception_gpaddr_i"] = [f"As {param} = {paramvalue}", "0"]
black_list["exception_tinst_i"] = [f"As {param} = {paramvalue}", "0"]
black_list["exception_gva_i"] = [f"As {param} = {paramvalue}", "0"]
black_list["hs_ld_st_inst_o"] = [f"As {param} = {paramvalue}", "0"]
black_list["hlvx_inst_o"] = [f"As {param} = {paramvalue}", "0"]
black_list["hfence_vvma_i"] = [f"As {param} = {paramvalue}", "0"]
black_list["hfence_gvma_i"] = [f"As {param} = {paramvalue}", "0"]
black_list["vmid_to_be_flushed_i"] = [f"As {param} = {paramvalue}", "0"]
black_list["gpaddr_to_be_flushed_i"] = [f"As {param} = {paramvalue}", "0"]
param = "RVV"
paramvalue = parameters[param].value
if paramvalue == "0":