diff --git a/dv/uvm/Makefile b/dv/uvm/Makefile index 83d2c9fb..60c50498 100644 --- a/dv/uvm/Makefile +++ b/dv/uvm/Makefile @@ -142,8 +142,11 @@ post_compare: # Generate functional coverage fcov: - cd ${GEN_DIR}; \ - python3 ./cov.py --dir ${OUT}/instr_gen/spike_sim -o ${OUT}/fcov + python3 ${GEN_DIR}/cov.py \ + --core ibex \ + --dir ${OUT}/rtl_sim \ + -o ${OUT}/fcov \ + ${RISCV_DV_OPTS} \ # Load verdi to review coverage cov: diff --git a/dv/uvm/riscv_dv_extension/ibex_log_to_trace_csv.py b/dv/uvm/riscv_dv_extension/ibex_log_to_trace_csv.py index 83f3332c..128c6f9e 100644 --- a/dv/uvm/riscv_dv_extension/ibex_log_to_trace_csv.py +++ b/dv/uvm/riscv_dv_extension/ibex_log_to_trace_csv.py @@ -13,8 +13,12 @@ sys.path.insert(0, "../../vendor/google_riscv-dv/scripts") from riscv_trace_csv import * from lib import * +REGS = ["zero","ra","sp","gp","tp","t0","t1","t2","s0","s1", + "a0","a1","a2","a3","a4","a5","a6","a7", + "s2","s3","s4","s5","s6","s7","s8","s9","s10","s11", + "t3","t4","t5","t6"] -def process_ibex_sim_log(ibex_log, csv): +def process_ibex_sim_log(ibex_log, csv, full_trace = 1): """Process ibex simulation log. Extract instruction and affected register information from ibex simulation @@ -24,6 +28,10 @@ def process_ibex_sim_log(ibex_log, csv): instr_cnt = 0 ibex_instr = "" + gpr = {} + for g in REGS: + gpr[g] = 0 + with open(ibex_log, "r") as f, open(csv, "w") as csv_fd: trace_csv = RiscvInstructionTraceCsv(csv_fd) trace_csv.start_new_trace() @@ -31,19 +39,55 @@ def process_ibex_sim_log(ibex_log, csv): if re.search("ecall", line): break # Extract instruction information - m = re.search(r"^\s*(?P