Test and Traceability Report

Summary

🚫 Test report 99%
🚫 Traceability report 96%

Test report

Success Failure Skipped Unknown Total
Tests 551 0 4 0 555

Run tests

Testsuite Testcase Check ID Status Log
tb_registers read_x0 tb_registers.read_x0.01 βœ…
read_port_a tb_registers.read_port_a.01 βœ…
read_port_b tb_registers.read_port_b.01 βœ…
write_x0 tb_registers.write_x0.01 βœ…
write tb_registers.write.01 βœ…
parallel_read tb_registers.parallel_read.01 βœ…
read_before_write tb_registers.read_before_write.01 βœ…
tb_loadstore reset tb_loadstore.reset.01 βœ…
tb_loadstore.reset.02 βœ…
no_stall tb_loadstore.no_stall.LB_01 βœ…
tb_loadstore.no_stall.LB_02 βœ…
tb_loadstore.no_stall.LB_03 βœ…
tb_loadstore.no_stall.LB_04 βœ…
tb_loadstore.no_stall.LB_05 βœ…
tb_loadstore.no_stall.LBU_01 βœ…
tb_loadstore.no_stall.LBU_02 βœ…
tb_loadstore.no_stall.LBU_03 βœ…
tb_loadstore.no_stall.LBU_04 βœ…
tb_loadstore.no_stall.LBU_05 βœ…
tb_loadstore.no_stall.LH_01 βœ…
tb_loadstore.no_stall.LH_02 βœ…
tb_loadstore.no_stall.LH_03 βœ…
tb_loadstore.no_stall.LH_04 βœ…
tb_loadstore.no_stall.LH_05 βœ…
tb_loadstore.no_stall.LHU_01 βœ…
tb_loadstore.no_stall.LHU_02 βœ…
tb_loadstore.no_stall.LHU_03 βœ…
tb_loadstore.no_stall.LHU_04 βœ…
tb_loadstore.no_stall.LHU_05 βœ…
tb_loadstore.no_stall.LW_01 βœ…
tb_loadstore.no_stall.LW_02 βœ…
tb_loadstore.no_stall.LW_03 βœ…
tb_loadstore.no_stall.LW_04 βœ…
tb_loadstore.no_stall.LW_05 βœ…
tb_loadstore.no_stall.SB_01 βœ…
tb_loadstore.no_stall.SB_02 βœ…
tb_loadstore.no_stall.SB_03 βœ…
tb_loadstore.no_stall.SB_04 βœ…
tb_loadstore.no_stall.SB_05 βœ…
tb_loadstore.no_stall.SH_01 βœ…
tb_loadstore.no_stall.SH_02 βœ…
tb_loadstore.no_stall.SH_03 βœ…
tb_loadstore.no_stall.SH_04 βœ…
tb_loadstore.no_stall.SH_05 βœ…
tb_loadstore.no_stall.SW_01 βœ…
tb_loadstore.no_stall.SW_02 βœ…
tb_loadstore.no_stall.SW_03 βœ…
tb_loadstore.no_stall.SW_04 βœ…
tb_loadstore.no_stall.SW_05 βœ…
memory_stall tb_loadstore.memory_stall.01 βœ…
tb_loadstore.memory_stall.02 βœ…
tb_loadstore.memory_stall.03 βœ…
memory_wait tb_loadstore.memory_wait.01 βœ…
tb_loadstore.memory_wait.02 βœ…
tb_loadstore.memory_wait.03 βœ…
bypass tb_loadstore.bypass.01 βœ…
tb_loadstore.bypass.02 βœ…
tb_loadstore.bypass.03 βœ…
bubble tb_loadstore.bubble.01 βœ…
tb_loadstore.bubble.02 βœ…
tb_loadstore.bubble.03 βœ…
back_to_back tb_loadstore.back_to_back.01 βœ…
tb_loadstore.back_to_back.02 βœ…
riscv-tests simple riscv-tests.simple.01 βœ…
riscv-tests.simple.02 βœ…
add riscv-tests.add.01 βœ…
riscv-tests.add.02 βœ…
addi riscv-tests.addi.01 βœ…
riscv-tests.addi.02 βœ…
and riscv-tests.and.01 βœ…
riscv-tests.and.02 βœ…
andi riscv-tests.andi.01 βœ…
riscv-tests.andi.02 βœ…
auipc riscv-tests.auipc.01 βœ…
riscv-tests.auipc.02 βœ…
beq riscv-tests.beq.01 βœ…
riscv-tests.beq.02 βœ…
bge riscv-tests.bge.01 βœ…
riscv-tests.bge.02 βœ…
bgeu riscv-tests.bgeu.01 βœ…
riscv-tests.bgeu.02 βœ…
blt riscv-tests.blt.01 βœ…
riscv-tests.blt.02 βœ…
bltu riscv-tests.bltu.01 βœ…
riscv-tests.bltu.02 βœ…
bne riscv-tests.bne.01 βœ…
riscv-tests.bne.02 βœ…
jal riscv-tests.jal.01 βœ…
riscv-tests.jal.02 βœ…
jalr riscv-tests.jalr.01 βœ…
riscv-tests.jalr.02 βœ…
lb riscv-tests.lb.01 βœ…
riscv-tests.lb.02 βœ…
lbu riscv-tests.lbu.01 βœ…
riscv-tests.lbu.02 βœ…
lh riscv-tests.lh.01 βœ…
riscv-tests.lh.02 βœ…
lhu riscv-tests.lhu.01 βœ…
riscv-tests.lhu.02 βœ…
lw riscv-tests.lw.01 βœ…
riscv-tests.lw.02 βœ…
lui riscv-tests.lui.01 βœ…
riscv-tests.lui.02 βœ…
or riscv-tests.or.01 βœ…
riscv-tests.or.02 βœ…
ori riscv-tests.ori.01 βœ…
riscv-tests.ori.02 βœ…
sb riscv-tests.sb.01 βœ…
riscv-tests.sb.02 βœ…
sh riscv-tests.sh.01 βœ…
riscv-tests.sh.02 βœ…
sw riscv-tests.sw.01 βœ…
riscv-tests.sw.02 βœ…
sll riscv-tests.sll.01 βœ…
riscv-tests.sll.02 βœ…
slli riscv-tests.slli.01 βœ…
riscv-tests.slli.02 βœ…
slt riscv-tests.slt.01 βœ…
riscv-tests.slt.02 βœ…
slti riscv-tests.slti.01 βœ…
riscv-tests.slti.02 βœ…
sltiu riscv-tests.sltiu.01 βœ…
riscv-tests.sltiu.02 βœ…
sltu riscv-tests.sltu.01 βœ…
riscv-tests.sltu.02 βœ…
sra riscv-tests.sra.01 βœ…
riscv-tests.sra.02 βœ…
srai riscv-tests.srai.01 βœ…
riscv-tests.srai.02 βœ…
srl riscv-tests.srl.01 βœ…
riscv-tests.srl.02 βœ…
srli riscv-tests.srli.01 βœ…
riscv-tests.srli.02 βœ…
sub riscv-tests.sub.01 βœ…
riscv-tests.sub.02 βœ…
xor riscv-tests.xor.01 βœ…
riscv-tests.xor.02 βœ…
xori riscv-tests.xori.01 βœ…
riscv-tests.xori.02 βœ…
tb_writeback write tb_writeback.write.01 βœ…
bypass tb_writeback.bypass.01 βœ…
bubble tb_writeback.bubble.01 βœ…
tb_decode reset tb_decode.reset.01 βœ…
lui tb_decode.lui.01 βœ…
tb_decode.lui.02 βœ…
tb_decode.lui.03 βœ…
tb_decode.lui.04 βœ…
tb_decode.lui.05 βœ…
auipc tb_decode.auipc.01 βœ…
tb_decode.auipc.02 βœ…
tb_decode.auipc.03 βœ…
tb_decode.auipc.04 βœ…
tb_decode.auipc.05 βœ…
jal tb_decode.jal.01 βœ…
tb_decode.jal.02 βœ…
tb_decode.jal.03 βœ…
tb_decode.jal.04 βœ…
tb_decode.jal.05 βœ…
jalr tb_decode.jalr.01 βœ…
tb_decode.jalr.02 βœ…
tb_decode.jalr.03 βœ…
tb_decode.jalr.04 βœ…
tb_decode.jalr.05 βœ…
beq tb_decode.beq.01 βœ…
tb_decode.beq.02 βœ…
tb_decode.beq.03 βœ…
tb_decode.beq.04 βœ…
tb_decode.beq.05 βœ…
tb_decode.beq.06 βœ…
bne tb_decode.bne.01 βœ…
tb_decode.bne.02 βœ…
tb_decode.bne.03 βœ…
tb_decode.bne.04 βœ…
tb_decode.bne.05 βœ…
tb_decode.bne.06 βœ…
blt tb_decode.blt.01 βœ…
tb_decode.blt.02 βœ…
tb_decode.blt.03 βœ…
tb_decode.blt.04 βœ…
tb_decode.blt.05 βœ…
tb_decode.blt.06 βœ…
bge tb_decode.bge.01 βœ…
tb_decode.bge.02 βœ…
tb_decode.bge.03 βœ…
tb_decode.bge.04 βœ…
tb_decode.bge.05 βœ…
tb_decode.bge.06 βœ…
bltu tb_decode.bltu.01 βœ…
tb_decode.bltu.02 βœ…
tb_decode.bltu.03 βœ…
tb_decode.bltu.04 βœ…
tb_decode.bltu.05 βœ…
tb_decode.bltu.06 βœ…
bgeu tb_decode.bgeu.01 βœ…
tb_decode.bgeu.02 βœ…
tb_decode.bgeu.03 βœ…
tb_decode.bgeu.04 βœ…
tb_decode.bgeu.05 βœ…
tb_decode.bgeu.06 βœ…
lb tb_decode.lb.01 βœ…
tb_decode.lb.02 βœ…
tb_decode.lb.03 βœ…
tb_decode.lb.04 βœ…
tb_decode.lb.05 βœ…
lbu tb_decode.lbu.01 βœ…
tb_decode.lbu.02 βœ…
tb_decode.lbu.03 βœ…
tb_decode.lbu.04 βœ…
tb_decode.lbu.05 βœ…
lh tb_decode.lh.01 βœ…
tb_decode.lh.02 βœ…
tb_decode.lh.03 βœ…
tb_decode.lh.04 βœ…
tb_decode.lh.05 βœ…
lhu tb_decode.lhu.01 βœ…
tb_decode.lhu.02 βœ…
tb_decode.lhu.03 βœ…
tb_decode.lhu.04 βœ…
tb_decode.lhu.05 βœ…
lw tb_decode.lw.01 βœ…
tb_decode.lw.02 βœ…
tb_decode.lw.03 βœ…
tb_decode.lw.04 βœ…
tb_decode.lw.05 βœ…
sb tb_decode.sb.01 βœ…
tb_decode.sb.02 βœ…
tb_decode.sb.03 βœ…
tb_decode.sb.04 βœ…
tb_decode.sb.05 βœ…
sh tb_decode.sh.01 βœ…
tb_decode.sh.02 βœ…
tb_decode.sh.03 βœ…
tb_decode.sh.04 βœ…
tb_decode.sh.05 βœ…
sw tb_decode.sw.01 βœ…
tb_decode.sw.02 βœ…
tb_decode.sw.03 βœ…
tb_decode.sw.04 βœ…
tb_decode.sw.05 βœ…
addi tb_decode.addi.01 βœ…
tb_decode.addi.02 βœ…
tb_decode.addi.03 βœ…
tb_decode.addi.04 βœ…
tb_decode.addi.05 βœ…
slti tb_decode.slti.01 βœ…
tb_decode.slti.02 βœ…
tb_decode.slti.03 βœ…
tb_decode.slti.04 βœ…
tb_decode.slti.05 βœ…
sltiu tb_decode.sltiu.01 βœ…
tb_decode.sltiu.02 βœ…
tb_decode.sltiu.03 βœ…
tb_decode.sltiu.04 βœ…
tb_decode.sltiu.05 βœ…
xori tb_decode.xori.01 βœ…
tb_decode.xori.02 βœ…
tb_decode.xori.03 βœ…
tb_decode.xori.04 βœ…
tb_decode.xori.05 βœ…
ori tb_decode.ori.01 βœ…
tb_decode.ori.02 βœ…
tb_decode.ori.03 βœ…
tb_decode.ori.04 βœ…
tb_decode.ori.05 βœ…
andi tb_decode.andi.01 βœ…
tb_decode.andi.02 βœ…
tb_decode.andi.03 βœ…
tb_decode.andi.04 βœ…
tb_decode.andi.05 βœ…
slli tb_decode.slli.01 βœ…
tb_decode.slli.02 βœ…
tb_decode.slli.03 βœ…
tb_decode.slli.04 βœ…
tb_decode.slli.05 βœ…
srli tb_decode.srli.01 βœ…
tb_decode.srli.02 βœ…
tb_decode.srli.03 βœ…
tb_decode.srli.04 βœ…
tb_decode.srli.05 βœ…
srai tb_decode.srai.01 βœ…
tb_decode.srai.02 βœ…
tb_decode.srai.03 βœ…
tb_decode.srai.04 βœ…
tb_decode.srai.05 βœ…
add tb_decode.add.01 βœ…
tb_decode.add.02 βœ…
tb_decode.add.03 βœ…
tb_decode.add.04 βœ…
tb_decode.add.05 βœ…
sub tb_decode.sub.01 βœ…
tb_decode.sub.02 βœ…
tb_decode.sub.03 βœ…
tb_decode.sub.04 βœ…
tb_decode.sub.05 βœ…
slt tb_decode.slt.01 βœ…
tb_decode.slt.02 βœ…
tb_decode.slt.03 βœ…
tb_decode.slt.04 βœ…
tb_decode.slt.05 βœ…
sltu tb_decode.sltu.01 βœ…
tb_decode.sltu.02 βœ…
tb_decode.sltu.03 βœ…
tb_decode.sltu.04 βœ…
tb_decode.sltu.05 βœ…
xor tb_decode.xor.01 βœ…
tb_decode.xor.02 βœ…
tb_decode.xor.03 βœ…
tb_decode.xor.04 βœ…
tb_decode.xor.05 βœ…
or tb_decode.or.01 βœ…
tb_decode.or.02 βœ…
tb_decode.or.03 βœ…
tb_decode.or.04 βœ…
tb_decode.or.05 βœ…
and tb_decode.and.01 βœ…
tb_decode.and.02 βœ…
tb_decode.and.03 βœ…
tb_decode.and.04 βœ…
tb_decode.and.05 βœ…
sll tb_decode.sll.01 βœ…
tb_decode.sll.02 βœ…
tb_decode.sll.03 βœ…
tb_decode.sll.04 βœ…
tb_decode.sll.05 βœ…
srl tb_decode.srl.01 βœ…
tb_decode.srl.02 βœ…
tb_decode.srl.03 βœ…
tb_decode.srl.04 βœ…
tb_decode.srl.05 βœ…
sra tb_decode.sra.01 βœ…
tb_decode.sra.02 βœ…
tb_decode.sra.03 βœ…
tb_decode.sra.04 βœ…
tb_decode.sra.05 βœ…
bubble tb_decode.bubble.01 βœ…
tb_decode.bubble.02 βœ…
tb_decode.bubble.03 βœ…
tb_decode.bubble.04 βœ…
tb_decode.bubble.05 βœ…
pipeline_wait tb_decode.pipeline_wait.01 βœ…
tb_decode.pipeline_wait.02 βœ…
tb_decode.pipeline_wait.03 βœ…
tb_decode.pipeline_wait.04 βœ…
tb_decode.pipeline_wait.05 βœ…
hazard tb_decode.hazard.01 βœ…
tb_decode.hazard.02 βœ…
tb_decode.hazard.03 βœ…
tb_decode.hazard.04 βœ…
tb_decode.hazard.05 βœ…
tb_hazard reset tb_hazard.reset.01 βœ…
tb_hazard.reset.02 βœ…
control tb_hazard.control.01 βœ…
data tb_hazard.data.X0_01 βœ…
tb_hazard.data.PORT1_01 βœ…
tb_hazard.data.PORT2_01 βœ…
tb_hazard.data.MULTIPLE_01 βœ…
tb_loadstore_w_slave no_stall tb_loadstore_w_slave.no_stall.LW_01 βœ…
tb_loadstore_w_slave.no_stall.LW_02 βœ…
tb_loadstore_w_slave.no_stall.LW_03 βœ…
tb_loadstore_w_slave.no_stall.LW_04 βœ…
tb_loadstore_w_slave.no_stall.SW_01 βœ…
tb_loadstore_w_slave.no_stall.SW_02 βœ…
tb_loadstore_w_slave.no_stall.SW_03 βœ…
tb_loadstore_w_slave.no_stall.SW_04 βœ…
tb_fetch reset tb_fetch.reset.01 βœ…
tb_fetch.reset.02 βœ…
tb_fetch.reset.03 βœ…
no_stall tb_fetch.no_stall.01 βœ…
tb_fetch.no_stall.02 βœ…
tb_fetch.no_stall.03 βœ…
tb_fetch.no_stall.04 βœ…
memory_stall tb_fetch.memory_stall.01 βœ…
tb_fetch.memory_stall.02 βœ…
tb_fetch.memory_stall.03 βœ…
memory_wait tb_fetch.memory_wait.01 βœ…
tb_fetch.memory_wait.02 βœ…
tb_fetch.memory_wait.03 βœ…
pipeline_wait tb_fetch.pipeline_wait.01 βœ…
tb_fetch.pipeline_wait.02 βœ…
tb_fetch.pipeline_wait.03 βœ…
tb_fetch.pipeline_wait.04 βœ…
jump_after_reset tb_fetch.jump_after_reset.01 βœ…
tb_fetch.jump_after_reset.02 βœ…
jump_during_ack tb_fetch.jump_during_ack.01 βœ…
tb_fetch.jump_during_ack.02 βœ…
jump_during_wait tb_fetch.jump_during_wait.01 βœ…
tb_fetch.jump_during_wait.02 βœ…
jump_during_memory_stall tb_fetch.jump_during_memory_stall.01 βœ…
tb_fetch.jump_during_memory_stall.02 βœ…
jump_on_output_handshake tb_fetch.jump_on_output_handshake.01 βœ…
tb_fetch.jump_on_output_handshake.02 βœ…
jump_during_pipeline_wait tb_fetch.jump_during_pipeline_wait.01 βœ…
tb_fetch.jump_during_pipeline_wait.02 βœ…
jump_back_to_back tb_fetch.jump_back_to_back.01 βœ…
tb_fetch.jump_back_to_back.02 βœ…
precedence_branch tb_fetch.precedence_branch.01 βœ…
precedence_increment tb_fetch.precedence_increment.01 βœ…
tb_ecap5_dproc nop tb_ecap5_dproc.nop.01 βœ…
tb_ecap5_dproc.nop.02 βœ…
tb_ecap5_dproc.nop.03 βœ…
tb_ecap5_dproc.nop.04 βœ…
tb_ecap5_dproc.nop.05 βœ…
tb_ecap5_dproc.nop.06 βœ…
tb_ecap5_dproc.nop.07 βœ…
alu tb_ecap5_dproc.alu.01 βœ…
tb_ecap5_dproc.alu.02 βœ…
tb_ecap5_dproc.alu.03 βœ…
tb_ecap5_dproc.alu.04 βœ…
tb_ecap5_dproc.alu.05 βœ…
tb_ecap5_dproc.alu.06 βœ…
tb_ecap5_dproc.alu.07 βœ…
ls_enable tb_ecap5_dproc.ls_enable.01 βœ…
tb_ecap5_dproc.ls_enable.02 βœ…
tb_ecap5_dproc.ls_enable.03 βœ…
tb_ecap5_dproc.ls_enable.04 βœ…
tb_ecap5_dproc.ls_enable.05 βœ…
tb_ecap5_dproc.ls_enable.06 βœ…
tb_ecap5_dproc.ls_enable.07 βœ…
tb_ecap5_dproc.ls_enable.08 βœ…
branch tb_ecap5_dproc.branch.01 βœ…
tb_ecap5_dproc.branch.02 βœ…
tb_ecap5_dproc.branch.03 βœ…
tb_ecap5_dproc.branch.04 βœ…
tb_ecap5_dproc.branch.05 βœ…
tb_ecap5_dproc.branch.06 βœ…
tb_ecap5_dproc.branch.07 βœ…
tb_ecap5_dproc.branch.08 βœ…
tb_ecap5_dproc.branch.09 βœ…
data_hazard tb_ecap5_dproc.data_hazard.01 βœ…
tb_ecap5_dproc.data_hazard.02 βœ…
tb_ecap5_dproc.data_hazard.03 βœ…
tb_ecap5_dproc.data_hazard.04 βœ…
tb_memory reset tb_memory.reset.01 βœ…
tb_memory.reset.02 βœ…
tb_memory.reset.03 βœ…
port1_read tb_memory.port1_read.01 βœ…
tb_memory.port1_read.02 βœ…
tb_memory.port1_read.03 βœ…
tb_memory.port1_read.04 βœ…
port1_write tb_memory.port1_write.01 βœ…
tb_memory.port1_write.02 βœ…
tb_memory.port1_write.03 βœ…
tb_memory.port1_write.04 βœ…
port2_read tb_memory.port2_read.01 βœ…
tb_memory.port2_read.02 βœ…
tb_memory.port2_read.03 βœ…
tb_memory.port2_read.04 βœ…
port2_write tb_memory.port2_write.01 βœ…
tb_memory.port2_write.02 βœ…
tb_memory.port2_write.03 βœ…
tb_memory.port2_write.04 βœ…
two_during_one tb_memory.two_during_one.01 βœ…
tb_memory.two_during_one.02 βœ…
tb_memory.two_during_one.03 βœ…
tb_memory.two_during_one.04 βœ…
tb_memory.two_during_one.05 βœ…
one_during_two tb_memory.one_during_two.01 βœ…
tb_memory.one_during_two.02 βœ…
tb_memory.one_during_two.03 βœ…
tb_memory.one_during_two.04 βœ…
tb_memory.one_during_two.05 βœ…
priority tb_memory.priority.01 βœ…
tb_memory.priority.02 βœ…
tb_memory.priority.03 βœ…
tb_memory.priority.04 βœ…
tb_memory.priority.05 βœ…
master_stall_s1 tb_memory.master_stall_s1.01 βœ…
tb_memory.master_stall_s1.02 βœ…
tb_memory.master_stall_s1.03 βœ…
tb_memory.master_stall_s1.04 βœ…
master_stall_s2 tb_memory.master_stall_s2.01 βœ…
tb_memory.master_stall_s2.02 βœ…
tb_memory.master_stall_s2.03 βœ…
tb_memory.master_stall_s2.04 βœ…
back_to_back tb_memory.back_to_back.01 βœ…
tb_memory.back_to_back.02 βœ…
tb_memory.back_to_back.03 βœ…
tb_memory.back_to_back.04 βœ…
tb_memory.back_to_back.05 βœ…
tb_execute reset tb_execute.reset.01 βœ…
tb_execute.reset.02 βœ…
tb_execute.reset.03 βœ…
tb_execute.reset.04 βœ…
alu tb_execute.alu.ADD_01 βœ…
tb_execute.alu.ADD_02 βœ…
tb_execute.alu.ADD_03 βœ…
tb_execute.alu.SUB_01 βœ…
tb_execute.alu.SUB_02 βœ…
tb_execute.alu.SUB_03 βœ…
tb_execute.alu.XOR_01 βœ…
tb_execute.alu.XOR_02 βœ…
tb_execute.alu.XOR_03 βœ…
tb_execute.alu.OR_01 βœ…
tb_execute.alu.OR_02 βœ…
tb_execute.alu.OR_03 βœ…
tb_execute.alu.AND_01 βœ…
tb_execute.alu.AND_02 βœ…
tb_execute.alu.AND_03 βœ…
tb_execute.alu.SLT_01 βœ…
tb_execute.alu.SLT_02 βœ…
tb_execute.alu.SLT_03 βœ…
tb_execute.alu.SLTU_01 βœ…
tb_execute.alu.SLTU_02 βœ…
tb_execute.alu.SLTU_03 βœ…
tb_execute.alu.SLL_01 βœ…
tb_execute.alu.SLL_02 βœ…
tb_execute.alu.SLL_03 βœ…
tb_execute.alu.SRL_01 βœ…
tb_execute.alu.SRL_02 βœ…
tb_execute.alu.SRL_03 βœ…
tb_execute.alu.SRA_01 βœ…
tb_execute.alu.SRA_02 βœ…
tb_execute.alu.SRA_03 βœ…
branch tb_execute.branch.BEQ_01 βœ…
tb_execute.branch.BEQ_02 βœ…
tb_execute.branch.BEQ_03 βœ…
tb_execute.branch.BNE_01 βœ…
tb_execute.branch.BNE_02 βœ…
tb_execute.branch.BNE_03 βœ…
tb_execute.branch.BLT_01 βœ…
tb_execute.branch.BLT_02 βœ…
tb_execute.branch.BLT_03 βœ…
tb_execute.branch.BLTU_01 βœ…
tb_execute.branch.BLTU_02 βœ…
tb_execute.branch.BLTU_03 βœ…
tb_execute.branch.BGE_01 βœ…
tb_execute.branch.BGE_02 βœ…
tb_execute.branch.BGE_03 βœ…
tb_execute.branch.BGEU_01 βœ…
tb_execute.branch.BGEU_02 βœ…
tb_execute.branch.BGEU_03 βœ…
tb_execute.branch.JALR_01 βœ…
tb_execute.branch.JALR_02 βœ…
tb_execute.branch.JALR_03 βœ…
back_to_back tb_execute.back_to_back.01 βœ…
tb_execute.back_to_back.02 βœ…
tb_execute.back_to_back.03 βœ…
bubble tb_execute.bubble.01 βœ…
tb_execute.bubble.02 βœ…
tb_execute.bubble.03 βœ…
pipeline_wait_after_reset tb_execute.pipeline_wait_after_reset.01 βœ…
tb_execute.pipeline_wait_after_reset.02 βœ…
tb_execute.pipeline_wait_after_reset.03 βœ…
tb_execute.pipeline_wait_after_reset.04 βœ…
pipeline_wait tb_execute.pipeline_wait.01 βœ…
tb_execute.pipeline_wait.02 βœ…
tb_execute.pipeline_wait.03 βœ…
tb_execute.pipeline_wait.04 βœ…
hazard tb_execute.hazard.01 βœ…
tb_execute.hazard.02 βœ…
tb_execute.hazard.03 βœ…

Skipped tests

riscv-tests.fence_i.01
riscv-tests.fence_i.02
riscv-tests.ma_data.01
riscv-tests.ma_data.02

Traceability report

Covered Untraceable Uncovered Total
Requirements 89 5 3 97

Covered requirements

Requirement Description Derived from Covered by Tested by Test results
User Requirements
U_INSTRUCTION_SET_01 ECAP5-DPROC shall implement the RV32I instruction set. F_REGISTER_01
F_REGISTER_02
F_REGISTER_03
F_INSTR_IMMEDIATE_01
F_INSTR_IMMEDIATE_02
F_INSTR_IMMEDIATE_03
F_OPCODE_ENCODING_01
F_OPCODE_ENCODING_02
F_OPCODE_ENCODING_03
F_OPCODE_ENCODING_04
F_OPCODE_ENCODING_05
F_OPCODE_ENCODING_06
F_LUI_01
F_AUIPC_01
F_JAL_01
F_JAL_02
F_JALR_01
F_JALR_02
F_BEQ_01
F_BNE_01
F_BLT_01
F_BGE_01
F_BLTU_01
F_BGEU_01
F_LB_01
F_LH_01
F_LW_01
F_LBU_01
F_LHU_01
F_SB_01
F_SH_01
F_SW_01
F_ADDI_01
F_SLTI_01
F_SLTIU_01
F_XORI_01
F_ORI_01
F_ANDI_01
F_SLLI_01
F_SRLI_01
F_SRAI_01
F_ADD_01
F_SUB_01
F_SLT_01
F_SLTU_01
F_XOR_01
F_OR_01
F_AND_01
F_SLL_01
F_SRL_01
F_SRA_01
F_INSTR_ADDR_MISALIGNED_01
F_MISALIGNED_MEMORY_ACCESS_01
F_MEMORY_INTERFACE_01
U_MEMORY_INTERFACE_01 ECAP5-DPROC shall access both instruction and data through a unique memory interface. A_FUNCTIONAL_PARTITIONING_01
U_MEMORY_INTERFACE_02 ECAP5-DPROC's unique memory interface shall be compliant with the Wishbone specification. F_WISHBONE_DATASHEET_01
F_WISHBONE_RESET_01
F_WISHBONE_RESET_02
F_WISHBONE_RESET_03
F_WISHBONE_TRANSFER_CYCLE_01
F_WISHBONE_TRANSFER_CYCLE_02
F_WISHBONE_TRANSFER_CYCLE_03
F_WISHBONE_HANDSHAKE_02
F_WISHBONE_STALL_01
F_WISHBONE_READ_CYCLE_01
F_WISHBONE_READ_CYCLE_02
F_WISHBONE_WRITE_CYCLE_01
F_WISHBONE_WRITE_CYCLE_02
F_WISHBONE_TIMING_01
U_RESET_01 ECAP5-DPROC shall provide a signal which shall hold ECAP5-DPROC in a reset state while asserted. I_RESET_01
U_BOOT_ADDRESS_01 The address at which ECAP5-DPROC jumps after the reset signal is deasserted shall be hardware-configurable. F_REGISTER_RESET_01
External Interface Requirements
I_RESET_01 The rst_i signal shall hold ECAP5-DPROC in a reset state while asserted. U_RESET_01 tb_hazard.reset.01
tb_hazard.reset.02
tb_loadstore.reset.01
tb_loadstore.reset.02
tb_execute.reset.01
tb_execute.reset.02
tb_execute.reset.03
tb_execute.reset.04
tb_memory.reset.01
tb_memory.reset.02
tb_memory.reset.03
tb_fetch.reset.01
tb_fetch.reset.02
tb_fetch.reset.03
tb_decode.reset.01
Functional Requirements
F_REGISTER_01 ECAP5-DPROC shall implement 32 user-accessible general purpose registers ranging from x0 to x31. U_INSTRUCTION_SET_01 tb_registers.read_x0.01
tb_registers.read_port_a.01
tb_registers.read_port_b.01
tb_registers.write_x0.01
tb_registers.write.01
tb_registers.parallel_read.01
tb_registers.read_before_write.01
F_REGISTER_02 Register x0 shall always be equal to zero. U_INSTRUCTION_SET_01 tb_registers.read_x0.01
tb_registers.write_x0.01
F_REGISTER_03 ECAP5-DPROC shall implement a pc register storing the address of the current instruction. U_INSTRUCTION_SET_01 tb_fetch.no_stall.01
tb_fetch.no_stall.02
tb_fetch.no_stall.03
tb_fetch.no_stall.04
tb_fetch.memory_stall.01
tb_fetch.memory_stall.02
tb_fetch.memory_stall.03
tb_fetch.memory_wait.01
tb_fetch.memory_wait.02
tb_fetch.memory_wait.03
tb_fetch.pipeline_wait.01
tb_fetch.pipeline_wait.02
tb_fetch.pipeline_wait.03
tb_fetch.pipeline_wait.04
tb_fetch.jump_after_reset.01
tb_fetch.jump_after_reset.02
tb_fetch.jump_during_ack.01
tb_fetch.jump_during_ack.02
tb_fetch.jump_during_wait.01
tb_fetch.jump_during_wait.02
tb_fetch.jump_during_memory_stall.01
tb_fetch.jump_during_memory_stall.02
tb_fetch.jump_on_output_handshake.01
tb_fetch.jump_on_output_handshake.02
tb_fetch.jump_during_pipeline_wait.01
tb_fetch.jump_during_pipeline_wait.02
tb_fetch.jump_back_to_back.01
tb_fetch.jump_back_to_back.02
tb_fetch.precedence_branch.01
tb_fetch.precedence_increment.01
F_REGISTER_RESET_01 The pc register shall be loaded with an hardware-configurable address when ECAP5-DPROC leaves its reset state. U_BOOT_ADDRESS_01 tb_fetch.no_stall.02
F_INSTR_IMMEDIATE_01 Immediate values shall be sign-extended. U_INSTRUCTION_SET_01 tb_execute.branch.BEQ_02
tb_execute.branch.BNE_02
tb_execute.branch.BLT_02
tb_execute.branch.BLTU_02
tb_execute.branch.BGE_02
tb_execute.branch.BGEU_02
tb_decode.jal.01
tb_decode.jalr.01
tb_decode.beq.03
tb_decode.bne.03
tb_decode.blt.03
tb_decode.bge.03
tb_decode.bltu.03
tb_decode.bgeu.03
tb_decode.lb.01
tb_decode.lbu.01
tb_decode.lh.01
tb_decode.lhu.01
tb_decode.lw.01
tb_decode.sb.01
tb_decode.sh.01
tb_decode.sw.01
tb_decode.addi.01
tb_decode.slti.01
tb_decode.sltiu.01
tb_decode.xori.01
tb_decode.ori.01
tb_decode.andi.01
tb_decode.slli.01
tb_decode.srli.01
tb_decode.srai.01
F_INSTR_IMMEDIATE_02 The value of an instruction immediate shall be the concatenation of immediate fragments from the instruction encoding. U_INSTRUCTION_SET_01 tb_decode.lui.01
tb_decode.auipc.01
tb_decode.jal.01
tb_decode.jalr.01
tb_decode.beq.03
tb_decode.bne.03
tb_decode.blt.03
tb_decode.bge.03
tb_decode.bltu.03
tb_decode.bgeu.03
tb_decode.lb.01
tb_decode.lbu.01
tb_decode.lh.01
tb_decode.lhu.01
tb_decode.lw.01
tb_decode.sb.01
tb_decode.sh.01
tb_decode.sw.01
tb_decode.addi.01
tb_decode.slti.01
tb_decode.sltiu.01
tb_decode.xori.01
tb_decode.ori.01
tb_decode.andi.01
tb_decode.slli.01
tb_decode.srli.01
tb_decode.srai.01
F_INSTR_IMMEDIATE_03 Missing immediate fragments shall be replaced by zeros. U_INSTRUCTION_SET_01 tb_decode.lui.01
tb_decode.auipc.01
tb_decode.jal.01
tb_decode.jalr.01
tb_decode.beq.03
tb_decode.bne.03
tb_decode.blt.03
tb_decode.bge.03
tb_decode.bltu.03
tb_decode.bgeu.03
tb_decode.lb.01
tb_decode.lbu.01
tb_decode.lh.01
tb_decode.lhu.01
tb_decode.lw.01
tb_decode.sb.01
tb_decode.sh.01
tb_decode.sw.01
tb_decode.addi.01
tb_decode.slti.01
tb_decode.sltiu.01
tb_decode.xori.01
tb_decode.ori.01
tb_decode.andi.01
tb_decode.slli.01
tb_decode.srli.01
tb_decode.srai.01
F_OPCODE_ENCODING_01 Instructions with the following opcodes shall be decoded as an R-type instruction : OP. U_INSTRUCTION_SET_01 tb_decode.add.01
tb_decode.add.02
tb_decode.add.03
tb_decode.add.04
tb_decode.add.05
tb_decode.sub.01
tb_decode.sub.02
tb_decode.sub.03
tb_decode.sub.04
tb_decode.sub.05
tb_decode.slt.01
tb_decode.slt.02
tb_decode.slt.03
tb_decode.slt.04
tb_decode.slt.05
tb_decode.sltu.01
tb_decode.sltu.02
tb_decode.sltu.03
tb_decode.sltu.04
tb_decode.sltu.05
tb_decode.xor.01
tb_decode.xor.02
tb_decode.xor.03
tb_decode.xor.04
tb_decode.xor.05
tb_decode.or.01
tb_decode.or.02
tb_decode.or.03
tb_decode.or.04
tb_decode.or.05
tb_decode.and.01
tb_decode.and.02
tb_decode.and.03
tb_decode.and.04
tb_decode.and.05
tb_decode.sll.01
tb_decode.sll.02
tb_decode.sll.03
tb_decode.sll.04
tb_decode.sll.05
tb_decode.srl.01
tb_decode.srl.02
tb_decode.srl.03
tb_decode.srl.04
tb_decode.srl.05
tb_decode.sra.01
tb_decode.sra.02
tb_decode.sra.03
tb_decode.sra.04
tb_decode.sra.05
F_OPCODE_ENCODING_02 Instructions with the following opcodes shall be decoded as an I-type instruction : JALR, LOAD, OP-IMM, MISC-MEM and SYSTEM. U_INSTRUCTION_SET_01 tb_decode.jalr.01
tb_decode.jalr.02
tb_decode.jalr.03
tb_decode.jalr.04
tb_decode.jalr.05
tb_decode.lb.01
tb_decode.lb.02
tb_decode.lb.03
tb_decode.lb.04
tb_decode.lb.05
tb_decode.lbu.01
tb_decode.lbu.02
tb_decode.lbu.03
tb_decode.lbu.04
tb_decode.lbu.05
tb_decode.lh.01
tb_decode.lh.02
tb_decode.lh.03
tb_decode.lh.04
tb_decode.lh.05
tb_decode.lhu.01
tb_decode.lhu.02
tb_decode.lhu.03
tb_decode.lhu.04
tb_decode.lhu.05
tb_decode.lw.01
tb_decode.lw.02
tb_decode.lw.03
tb_decode.lw.04
tb_decode.lw.05
tb_decode.addi.01
tb_decode.addi.02
tb_decode.addi.03
tb_decode.addi.04
tb_decode.addi.05
tb_decode.slti.01
tb_decode.slti.02
tb_decode.slti.03
tb_decode.slti.04
tb_decode.slti.05
tb_decode.sltiu.01
tb_decode.sltiu.02
tb_decode.sltiu.03
tb_decode.sltiu.04
tb_decode.sltiu.05
tb_decode.xori.01
tb_decode.xori.02
tb_decode.xori.03
tb_decode.xori.04
tb_decode.xori.05
tb_decode.ori.01
tb_decode.ori.02
tb_decode.ori.03
tb_decode.ori.04
tb_decode.ori.05
tb_decode.andi.01
tb_decode.andi.02
tb_decode.andi.03
tb_decode.andi.04
tb_decode.andi.05
tb_decode.slli.01
tb_decode.slli.02
tb_decode.slli.03
tb_decode.slli.04
tb_decode.slli.05
tb_decode.srli.01
tb_decode.srli.02
tb_decode.srli.03
tb_decode.srli.04
tb_decode.srli.05
tb_decode.srai.01
tb_decode.srai.02
tb_decode.srai.03
tb_decode.srai.04
tb_decode.srai.05
F_OPCODE_ENCODING_03 Instructions with the following opcodes shall be decoded as an S-type instruction : STORE. U_INSTRUCTION_SET_01 tb_decode.sb.01
tb_decode.sb.02
tb_decode.sb.03
tb_decode.sb.04
tb_decode.sb.05
tb_decode.sh.01
tb_decode.sh.02
tb_decode.sh.03
tb_decode.sh.04
tb_decode.sh.05
tb_decode.sw.01
tb_decode.sw.02
tb_decode.sw.03
tb_decode.sw.04
tb_decode.sw.05
F_OPCODE_ENCODING_04 Instructions with the following opcodes shall be decoded as an B-type instruction : BRANCH. U_INSTRUCTION_SET_01 tb_decode.beq.01
tb_decode.beq.02
tb_decode.beq.03
tb_decode.beq.04
tb_decode.beq.05
tb_decode.beq.06
tb_decode.bne.01
tb_decode.bne.02
tb_decode.bne.03
tb_decode.bne.04
tb_decode.bne.05
tb_decode.bne.06
tb_decode.blt.01
tb_decode.blt.02
tb_decode.blt.03
tb_decode.blt.04
tb_decode.blt.05
tb_decode.blt.06
tb_decode.bge.01
tb_decode.bge.02
tb_decode.bge.03
tb_decode.bge.04
tb_decode.bge.05
tb_decode.bge.06
tb_decode.bltu.01
tb_decode.bltu.02
tb_decode.bltu.03
tb_decode.bltu.04
tb_decode.bltu.05
tb_decode.bltu.06
tb_decode.bgeu.01
tb_decode.bgeu.02
tb_decode.bgeu.03
tb_decode.bgeu.04
tb_decode.bgeu.05
tb_decode.bgeu.06
F_OPCODE_ENCODING_05 Instructions with the following opcodes shall be decoded as an U-type instruction : LUI and AUIPC. U_INSTRUCTION_SET_01 tb_decode.lui.01
tb_decode.lui.02
tb_decode.lui.03
tb_decode.lui.04
tb_decode.lui.05
tb_decode.auipc.01
tb_decode.auipc.02
tb_decode.auipc.03
tb_decode.auipc.04
tb_decode.auipc.05
F_OPCODE_ENCODING_06 Instructions with the following opcodes shall be decoded as an J-type instruction : JAL. U_INSTRUCTION_SET_01 tb_decode.jal.01
tb_decode.jal.02
tb_decode.jal.03
tb_decode.jal.04
tb_decode.jal.05
F_LUI_01 When the opcode is LUI, the register pointed by the rd field shall be loaded with the immediate value. U_INSTRUCTION_SET_01 riscv-tests.lui.01
riscv-tests.lui.02
F_AUIPC_01 When the opcode is AUIPC, the register pointed by the rd field shall be the signed sum of the immediate value and the address of the instruction. U_INSTRUCTION_SET_01 riscv-tests.auipc.01
riscv-tests.auipc.02
F_JAL_01 When the opcode is JAL, the pc register shall be loaded with the signed sum of the immediate value and the address of the instruction. U_INSTRUCTION_SET_01 riscv-tests.jal.01
riscv-tests.jal.02
F_JAL_02 When the opcode is JAL, the register pointed by the rd field shall be loaded with the address of the instruction incremented by 4. U_INSTRUCTION_SET_01 riscv-tests.jal.01
riscv-tests.jal.02
F_JALR_01 When the opcode is JALR and the func3 field is 0x0, the pc register shall be loaded with the signed sum of the register pointed by the rs1 field and the immediate value. U_INSTRUCTION_SET_01 riscv-tests.jalr.01
riscv-tests.jalr.02
F_JALR_02 When the opcode is JALR and the func3 field is 0x0, the register pointed by the rd field shall be loaded with the address of the instruction incremented by 4. U_INSTRUCTION_SET_01 riscv-tests.jalr.01
riscv-tests.jalr.02
F_BEQ_01 When the opcode is BRANCH and the func3 field is 0x0, the pc register shall be loaded with the signed sum of the address of the instruction and the immediate value, if the registers pointed by the rs1 field and the rs2 field are equal. U_INSTRUCTION_SET_01 riscv-tests.beq.01
riscv-tests.beq.02
F_BNE_01 When the opcode is BRANCH and the func3 field is 0x1, the pc register shall be loaded with the signed sum of the address of the instruction and the immediate value, if the registers pointed by the rs1 field and the rs2 field are equal. U_INSTRUCTION_SET_01 riscv-tests.bne.01
riscv-tests.bne.02
F_BLT_01 When the opcode is BRANCH and the func3 field is 0x4, the pc register shall be loaded with the signed sum of the address of the instruction and the immediate value, if the register pointed by the rs1 field is lower than the register pointed by the rs2 field using a signed comparison. U_INSTRUCTION_SET_01 riscv-tests.blt.01
riscv-tests.blt.02
F_BGE_01 When the opcode is BRANCH and the func3 field is 0x5, the pc register shall be loaded with the signed sum of the address of the instruction and the immediate value, if the register pointed by the rs1 field is greater than the register pointed by the rs2 field using a signed comparison. U_INSTRUCTION_SET_01 riscv-tests.bge.01
riscv-tests.bge.02
F_BLTU_01 When the opcode is BRANCH and the func3 field is 0x6, the pc register shall be loaded with the signed sum of the address of the instruction and the immediate value, if the register pointed by the rs1 field is lower than the register pointed by the rs2 field using an unsigned comparison. U_INSTRUCTION_SET_01 riscv-tests.bltu.01
riscv-tests.bltu.02
F_BGEU_01 When the opcode is BRANCH and the func3 field is 0x7, the pc register shall be loaded with the signed sum of the address of the instruction and the immediate value, if the register pointed by the rs1 field is greater than the register pointed by the rs2 field using an unsigned comparison. U_INSTRUCTION_SET_01 riscv-tests.bgeu.01
riscv-tests.bgeu.02
F_LB_01 When the opcode is LOAD and the func3 field is 0x0, the register pointed by the rd field shall be the 32 bits sign-extended 8-bit value stored in memory at the address specified by the signed sum of the register pointed by the rs1 field and the immediate value. U_INSTRUCTION_SET_01 riscv-tests.lb.01
riscv-tests.lb.02
F_LH_01 When the opcode is LOAD and the func3 field is 0x1, the register pointed by the rd field shall be the 32 bits sign-extended 16-bit value stored in memory at the address specified by the signed sum of the register pointed by the rs1 field and the immediate value. U_INSTRUCTION_SET_01 riscv-tests.lh.01
riscv-tests.lh.02
F_LW_01 When the opcode is LOAD and the func3 field is 0x2, the register pointed by the rd field shall be the 32-bit value stored in memory at the address specified by the signed sum of the register pointed by the rs1 field and the immediate value. U_INSTRUCTION_SET_01 riscv-tests.lw.01
riscv-tests.lw.02
F_LBU_01 When the opcode is LOAD and the func3 field is 0x4, the register pointed by the rd field shall be the 32 bits zero-extended 8-bit value stored in memory at the address specified by the signed sum of the register pointed by the rs1 field and the immediate value. U_INSTRUCTION_SET_01 riscv-tests.lbu.01
riscv-tests.lbu.02
F_LHU_01 When the opcode is LOAD and the func3 field is 0x5, the register pointed by the rd field shall be the 32 bits zero-extended 16-bit value stored in memory at the address specified by the signed sum of the register pointed by the rs1 field and the immediate value. U_INSTRUCTION_SET_01 riscv-tests.lhu.01
riscv-tests.lhu.02
F_SB_01 When the opcode is STORE and the func3 field is 0x0, the least-significant byte of the register pointed by the rs2 field shall be stored in memory at the address specified by the signed sum of the register pointed by the rs1 field and the immediate value. U_INSTRUCTION_SET_01 riscv-tests.sb.01
riscv-tests.sb.02
F_SH_01 When the opcode is STORE and the func3 field is 0x1, the two least-significant bytes of the register pointed by the rs2 field shall be stored in memory at the address specified by the signed sum of the register pointed by the rs1 field and the immediate value. U_INSTRUCTION_SET_01 riscv-tests.sh.01
riscv-tests.sh.02
F_SW_01 When the opcode is STORE and the func3 field is 0x2, the register pointed by the rs2 field shall be stored in memory at the address specified by the signed sum of the register pointed by the rs1 field and the immediate value. U_INSTRUCTION_SET_01 riscv-tests.sw.01
riscv-tests.sw.02
F_ADDI_01 When the opcode is OP-IMM and the func3 field is 0x0, the register pointed by the rd field shall be loaded with the signed sum of the register pointed by the rs1 field and the immediate value. U_INSTRUCTION_SET_01 riscv-tests.addi.01
riscv-tests.addi.02
F_SLTI_01 When the opcode is OP-IMM and the func3 field is 0x1, the register pointed by the rd field shall be 1 if the register pointed by the rs1 field is lower than the immediate value using a signed comparison, 0 otherwise. U_INSTRUCTION_SET_01 riscv-tests.slti.01
riscv-tests.slti.02
F_SLTIU_01 When the opcode is OP-IMM and the func3 field is 0x3, the register pointed by the rd field shall be 1 if the register pointed by the rs1 field is lower than the immediate value using an unsigned comparison, 0 otherwise. U_INSTRUCTION_SET_01 riscv-tests.sltiu.01
riscv-tests.sltiu.02
F_XORI_01 When the opcode is OP-IMM and the func3 field is 0x4, the register pointed by the rd field shall be the result of a bitwise xor of the register pointed by the rs1 field and the immediate value. U_INSTRUCTION_SET_01 riscv-tests.xori.01
riscv-tests.xori.02
F_ORI_01 When the opcode is OP-IMM and the func3 field is 0x6, the register pointed by the rd field shall be the result of a bitwise or of the register pointed by the rs1 field and the immediate value. U_INSTRUCTION_SET_01 riscv-tests.ori.01
riscv-tests.ori.02
F_ANDI_01 When the opcode is OP-IMM and the func3 field is 0x7, the register pointed by the rd field shall be the result of a bitwise and of the register pointed by the rs1 field and immediate value. U_INSTRUCTION_SET_01 riscv-tests.andi.01
riscv-tests.andi.02
F_SLLI_01 When the opcode is OP-IMM and the func3 field is 0x1, the register pointed by the rd field shall be the register pointed by the rs1 field shited left by the number of bits specified in the 5 lowest-significant bits of the immediate value, filling lower bits with zeros. U_INSTRUCTION_SET_01 riscv-tests.slli.01
riscv-tests.slli.02
F_SRLI_01 When the opcode is OP-IMM, the func3 field is 0x5 and the 30th bit of the immediate value is 0, the register pointed by the rd field shall be the register pointed by the rs1 field shited right by the number of bits specified in the 5 lowest-significant bits of the immediate value, filling upper bits with zeros. U_INSTRUCTION_SET_01 riscv-tests.srli.01
riscv-tests.srli.02
F_SRAI_01 When the opcode is OP-IMM, the func3 field is 0x5 and the 30th bit of the immediate value is 1, the register pointed by the rd field shall be the register pointed by the rs1 field shited right by the number of bits specified in the 5 lowest-significant bits of the immediate value, filling upper bits with the most-significant bit of the register pointed by the rs1 field. U_INSTRUCTION_SET_01 riscv-tests.srai.01
riscv-tests.srai.02
F_ADD_01 When the opcode is OP, the func3 field is 0x0 and the func7 field is 0x0, the register pointed by the rd field shall be the signed sum of the registers pointed by the rs1 and rs2 fields. U_INSTRUCTION_SET_01 riscv-tests.add.01
riscv-tests.add.02
F_SUB_01 When the opcode is OP, the func3 field is 0x0 and the func7 field is 0x20, the register pointed by the rd field shall be the difference of the register pointed by the rs1 field minus the register pointed by the rs2 fields. U_INSTRUCTION_SET_01 riscv-tests.sub.01
riscv-tests.sub.02
F_SLT_01 When the opcode is OP and the func3 field is 0x2, the register pointed by the rd field shall be 1 if the register pointed by the rs1 field is lower than the register pointed by the rs2 field using a signed comparison, 0 otherwise. U_INSTRUCTION_SET_01 riscv-tests.slt.01
riscv-tests.slt.02
F_SLTU_01 When the opcode is OP and the func3 field is 0x3, the register pointed by the rd field shall be 1 if the register pointed by the rs1 field is lower than the register pointed by the rs2 field using an unsigned comparison, 0 otherwise. U_INSTRUCTION_SET_01 riscv-tests.sltu.01
riscv-tests.sltu.02
F_XOR_01 When the opcode is OP and the func3 field is 0x4, the register pointed by the rd field shall be the result of a bitwise xor of the registers pointed by the rs1 and rs2 fields. U_INSTRUCTION_SET_01 riscv-tests.xor.01
riscv-tests.xor.02
F_OR_01 When the opcode is OP and the func3 field is 0x6, the register pointed by the rd field shall be the result of a bitwise or of the registers pointed by the rs1 and rs2 fields. U_INSTRUCTION_SET_01 riscv-tests.or.01
riscv-tests.or.02
F_AND_01 When the opcode is OP and the func3 field is 0x7, the register pointed by the rd field shall be the result of a bitwise and of the registers pointed by the rs1 and rs2 fields. U_INSTRUCTION_SET_01 riscv-tests.and.01
riscv-tests.and.02
F_SLL_01 When the opcode is OP and the func3 field is 0x1, the register pointed by the rd field shall be the register pointed by the rs1 field shited left by the number of bits specified by the register pointed by the rs2 field, filling lower bits with zeros. U_INSTRUCTION_SET_01 riscv-tests.sll.01
riscv-tests.sll.02
F_SRL_01 When the opcode is OP, the func3 field is 0x5 and the func7 field is 0x0, the register pointed by the rd field shall be the register pointed by the rs1 field shited right by the number of bits specified by the register pointed by the rs2 field, filling upper bits with zeros. U_INSTRUCTION_SET_01 riscv-tests.srl.01
riscv-tests.srl.02
F_SRA_01 When the opcode is OP, the func3 field is 0x5 and the func7 field is 0x0, the register pointed by the rd field shall be the register pointed by the rs1 field shited right by the number of bits specified in the register pointed by the rs2 field, filling upper bits with the most-significant bit of the register pointed by the rs1 field. U_INSTRUCTION_SET_01 riscv-tests.sra.01
riscv-tests.sra.02
F_WISHBONE_RESET_01 The memory interface shall initialize itself at the rising edge of clk_i following the assertion of rst_i. U_MEMORY_INTERFACE_02 tb_memory.reset.01
tb_memory.reset.02
tb_memory.reset.03
F_WISHBONE_RESET_02 The memory interface shall stay in the initialization state until the rising edge of clk_i following the deassertion of rst_i. U_MEMORY_INTERFACE_02 tb_memory.reset.01
tb_memory.reset.02
tb_memory.reset.03
F_WISHBONE_RESET_03 Signals wb_stb_o and wb_cyc_o shall be deasserted while the memory interface is in the initialization state. The state of all other memory interface signals are undefined in response to a reset cycle. U_MEMORY_INTERFACE_02 tb_memory.reset.01
tb_memory.reset.02
tb_memory.reset.03
F_WISHBONE_TRANSFER_CYCLE_01 The memory interface shall assert wb_cyc_o for the entire duration of the memory access. U_MEMORY_INTERFACE_02 tb_memory.port1_read.04
tb_memory.port1_write.04
tb_memory.port2_read.04
tb_memory.port2_write.04
F_WISHBONE_TRANSFER_CYCLE_02 Signal wb_cyc_o shall be asserted no later than the rising edge of clk_i that qualifies the assertion of wb_stb_o. U_MEMORY_INTERFACE_02 tb_memory.port1_read.04
tb_memory.port1_write.04
tb_memory.port2_read.04
tb_memory.port2_write.04
F_WISHBONE_TRANSFER_CYCLE_03 Signal wb_cyc_o shall be deasserted no earlier than the rising edge of clk_i that qualifies the deassertion of wb_stb_o. U_MEMORY_INTERFACE_02 tb_memory.port1_read.04
tb_memory.port1_write.04
tb_memory.port2_read.04
tb_memory.port2_write.04
F_WISHBONE_HANDSHAKE_02 The memory interface must qualify the following signals with wb_stb_o : wb_adr_o, wb_dat_o, wb_sel_o and wb_we_o. U_MEMORY_INTERFACE_02 tb_memory.port1_read.04
tb_memory.port1_write.04
tb_memory.port2_read.04
tb_memory.port2_write.04
F_WISHBONE_STALL_01 While initiating a request, the memory interface shall hold the state of its outputs until wb_stall_i is deasserted. U_MEMORY_INTERFACE_02 tb_memory.master_stall_s1.04
tb_memory.master_stall_s2.04
F_WISHBONE_READ_CYCLE_01 A read transaction shall be started by asserting both wb_cyc_o and wb_stb_i, and deasserting wb_we_o. U_MEMORY_INTERFACE_02 tb_memory.port1_read.04
tb_memory.port2_read.04
F_WISHBONE_READ_CYCLE_02 The memory interface shall conform to the READ cycle detailed in the figure below. U_MEMORY_INTERFACE_02 tb_memory.port1_read.04
tb_memory.port2_read.04
F_WISHBONE_WRITE_CYCLE_01 A write transaction shall be started by asserting wb_cyc_o, wb stb i and wb_we_o. U_MEMORY_INTERFACE_02 tb_memory.port1_write.04
tb_memory.port2_write.04
F_WISHBONE_WRITE_CYCLE_02 The memory interface shall conform to the WRITE cycle detailed in figure below. U_MEMORY_INTERFACE_02 tb_memory.port1_write.04
tb_memory.port2_write.04
Architecture Requirements
A_FUNCTIONAL_PARTITIONING_01 The memory module shall arbitrate memory requests from both the fetch module and the loadstore module. U_MEMORY_INTERFACE_01 tb_memory.port1_read.01
tb_memory.port1_read.02
tb_memory.port1_read.03
tb_memory.port1_read.04
tb_memory.port1_write.01
tb_memory.port1_write.02
tb_memory.port1_write.03
tb_memory.port1_write.04
tb_memory.port2_read.01
tb_memory.port2_read.02
tb_memory.port2_read.03
tb_memory.port2_read.04
tb_memory.port2_write.01
tb_memory.port2_write.02
tb_memory.port2_write.03
tb_memory.port2_write.04
tb_memory.two_during_one.01
tb_memory.two_during_one.02
tb_memory.two_during_one.03
tb_memory.two_during_one.04
tb_memory.two_during_one.05
tb_memory.one_during_two.01
tb_memory.one_during_two.02
tb_memory.one_during_two.03
tb_memory.one_during_two.04
tb_memory.one_during_two.05
tb_memory.priority.01
tb_memory.priority.02
tb_memory.priority.03
tb_memory.priority.04
tb_memory.priority.05
tb_memory.master_stall_s1.01
tb_memory.master_stall_s1.02
tb_memory.master_stall_s1.03
tb_memory.master_stall_s1.04
tb_memory.master_stall_s2.01
tb_memory.master_stall_s2.02
tb_memory.master_stall_s2.03
tb_memory.master_stall_s2.04
tb_memory.back_to_back.01
tb_memory.back_to_back.02
tb_memory.back_to_back.03
tb_memory.back_to_back.04
tb_memory.back_to_back.05
A_MEMORY_01 The memory module shall give priority access to the external memory bus for the fetch module. tb_memory.priority.01
tb_memory.priority.02
tb_memory.priority.03
tb_memory.priority.04
tb_memory.priority.05
A_FUNCTIONAL_PARTITIONING_02 The fetch module shall implement the instruction fetch stage of the pipeline. tb_fetch.no_stall.01
tb_fetch.no_stall.02
tb_fetch.no_stall.03
tb_fetch.no_stall.04
tb_fetch.memory_stall.01
tb_fetch.memory_stall.02
tb_fetch.memory_stall.03
tb_fetch.memory_wait.01
tb_fetch.memory_wait.02
tb_fetch.memory_wait.03
tb_fetch.pipeline_wait.01
tb_fetch.pipeline_wait.02
tb_fetch.pipeline_wait.03
tb_fetch.pipeline_wait.04
tb_fetch.jump_after_reset.01
tb_fetch.jump_after_reset.02
tb_fetch.jump_during_ack.01
tb_fetch.jump_during_ack.02
tb_fetch.jump_during_wait.01
tb_fetch.jump_during_wait.02
tb_fetch.jump_during_memory_stall.01
tb_fetch.jump_during_memory_stall.02
tb_fetch.jump_on_output_handshake.01
tb_fetch.jump_on_output_handshake.02
tb_fetch.jump_during_pipeline_wait.01
tb_fetch.jump_during_pipeline_wait.02
tb_fetch.jump_back_to_back.01
tb_fetch.jump_back_to_back.02
tb_fetch.precedence_branch.01
tb_fetch.precedence_increment.01
A_FUNCTIONAL_PARTITIONING_03 The decode module shall implement the decode stage of the pipeline. tb_decode.lui.01
tb_decode.lui.02
tb_decode.lui.03
tb_decode.lui.04
tb_decode.lui.05
tb_decode.auipc.01
tb_decode.auipc.02
tb_decode.auipc.03
tb_decode.auipc.04
tb_decode.auipc.05
tb_decode.jal.01
tb_decode.jal.02
tb_decode.jal.03
tb_decode.jal.04
tb_decode.jal.05
tb_decode.jalr.01
tb_decode.jalr.02
tb_decode.jalr.03
tb_decode.jalr.04
tb_decode.jalr.05
tb_decode.beq.01
tb_decode.beq.02
tb_decode.beq.03
tb_decode.beq.04
tb_decode.beq.05
tb_decode.beq.06
tb_decode.bne.01
tb_decode.bne.02
tb_decode.bne.03
tb_decode.bne.04
tb_decode.bne.05
tb_decode.bne.06
tb_decode.blt.01
tb_decode.blt.02
tb_decode.blt.03
tb_decode.blt.04
tb_decode.blt.05
tb_decode.blt.06
tb_decode.bge.01
tb_decode.bge.02
tb_decode.bge.03
tb_decode.bge.04
tb_decode.bge.05
tb_decode.bge.06
tb_decode.bltu.01
tb_decode.bltu.02
tb_decode.bltu.03
tb_decode.bltu.04
tb_decode.bltu.05
tb_decode.bltu.06
tb_decode.bgeu.01
tb_decode.bgeu.02
tb_decode.bgeu.03
tb_decode.bgeu.04
tb_decode.bgeu.05
tb_decode.bgeu.06
tb_decode.lb.01
tb_decode.lb.02
tb_decode.lb.03
tb_decode.lb.04
tb_decode.lb.05
tb_decode.lbu.01
tb_decode.lbu.02
tb_decode.lbu.03
tb_decode.lbu.04
tb_decode.lbu.05
tb_decode.lh.01
tb_decode.lh.02
tb_decode.lh.03
tb_decode.lh.04
tb_decode.lh.05
tb_decode.lhu.01
tb_decode.lhu.02
tb_decode.lhu.03
tb_decode.lhu.04
tb_decode.lhu.05
tb_decode.lw.01
tb_decode.lw.02
tb_decode.lw.03
tb_decode.lw.04
tb_decode.lw.05
tb_decode.sb.01
tb_decode.sb.02
tb_decode.sb.03
tb_decode.sb.04
tb_decode.sb.05
tb_decode.sh.01
tb_decode.sh.02
tb_decode.sh.03
tb_decode.sh.04
tb_decode.sh.05
tb_decode.sw.01
tb_decode.sw.02
tb_decode.sw.03
tb_decode.sw.04
tb_decode.sw.05
tb_decode.addi.01
tb_decode.addi.02
tb_decode.addi.03
tb_decode.addi.04
tb_decode.addi.05
tb_decode.slti.01
tb_decode.slti.02
tb_decode.slti.03
tb_decode.slti.04
tb_decode.slti.05
tb_decode.sltiu.01
tb_decode.sltiu.02
tb_decode.sltiu.03
tb_decode.sltiu.04
tb_decode.sltiu.05
tb_decode.xori.01
tb_decode.xori.02
tb_decode.xori.03
tb_decode.xori.04
tb_decode.xori.05
tb_decode.ori.01
tb_decode.ori.02
tb_decode.ori.03
tb_decode.ori.04
tb_decode.ori.05
tb_decode.andi.01
tb_decode.andi.02
tb_decode.andi.03
tb_decode.andi.04
tb_decode.andi.05
tb_decode.slli.01
tb_decode.slli.02
tb_decode.slli.03
tb_decode.slli.04
tb_decode.slli.05
tb_decode.srli.01
tb_decode.srli.02
tb_decode.srli.03
tb_decode.srli.04
tb_decode.srli.05
tb_decode.srai.01
tb_decode.srai.02
tb_decode.srai.03
tb_decode.srai.04
tb_decode.srai.05
tb_decode.add.01
tb_decode.add.02
tb_decode.add.03
tb_decode.add.04
tb_decode.add.05
tb_decode.sub.01
tb_decode.sub.02
tb_decode.sub.03
tb_decode.sub.04
tb_decode.sub.05
tb_decode.slt.01
tb_decode.slt.02
tb_decode.slt.03
tb_decode.slt.04
tb_decode.slt.05
tb_decode.sltu.01
tb_decode.sltu.02
tb_decode.sltu.03
tb_decode.sltu.04
tb_decode.sltu.05
tb_decode.xor.01
tb_decode.xor.02
tb_decode.xor.03
tb_decode.xor.04
tb_decode.xor.05
tb_decode.or.01
tb_decode.or.02
tb_decode.or.03
tb_decode.or.04
tb_decode.or.05
tb_decode.and.01
tb_decode.and.02
tb_decode.and.03
tb_decode.and.04
tb_decode.and.05
tb_decode.sll.01
tb_decode.sll.02
tb_decode.sll.03
tb_decode.sll.04
tb_decode.sll.05
tb_decode.srl.01
tb_decode.srl.02
tb_decode.srl.03
tb_decode.srl.04
tb_decode.srl.05
tb_decode.sra.01
tb_decode.sra.02
tb_decode.sra.03
tb_decode.sra.04
tb_decode.sra.05
tb_decode.bubble.01
tb_decode.bubble.02
tb_decode.bubble.03
tb_decode.bubble.04
tb_decode.bubble.05
tb_decode.pipeline_wait.01
tb_decode.pipeline_wait.02
tb_decode.pipeline_wait.03
tb_decode.pipeline_wait.04
tb_decode.pipeline_wait.05
tb_decode.hazard.01
tb_decode.hazard.02
tb_decode.hazard.03
tb_decode.hazard.04
tb_decode.hazard.05
A_FUNCTIONAL_PARTITIONING_04 The register module shall implement the internal general-purpose registers. tb_registers.read_x0.01
tb_registers.read_port_a.01
tb_registers.read_port_b.01
tb_registers.write_x0.01
tb_registers.write.01
tb_registers.parallel_read.01
tb_registers.read_before_write.01
A_FUNCTIONAL_PARTITIONING_05 The execute module shall implement the execute stage of the pipeline. tb_execute.alu.ADD_01
tb_execute.alu.ADD_02
tb_execute.alu.ADD_03
tb_execute.alu.SUB_01
tb_execute.alu.SUB_02
tb_execute.alu.SUB_03
tb_execute.alu.XOR_01
tb_execute.alu.XOR_02
tb_execute.alu.XOR_03
tb_execute.alu.OR_01
tb_execute.alu.OR_02
tb_execute.alu.OR_03
tb_execute.alu.AND_01
tb_execute.alu.AND_02
tb_execute.alu.AND_03
tb_execute.alu.SLT_01
tb_execute.alu.SLT_02
tb_execute.alu.SLT_03
tb_execute.alu.SLTU_01
tb_execute.alu.SLTU_02
tb_execute.alu.SLTU_03
tb_execute.alu.SLL_01
tb_execute.alu.SLL_02
tb_execute.alu.SLL_03
tb_execute.alu.SRL_01
tb_execute.alu.SRL_02
tb_execute.alu.SRL_03
tb_execute.alu.SRA_01
tb_execute.alu.SRA_02
tb_execute.alu.SRA_03
tb_execute.branch.BEQ_01
tb_execute.branch.BEQ_02
tb_execute.branch.BEQ_03
tb_execute.branch.BNE_01
tb_execute.branch.BNE_02
tb_execute.branch.BNE_03
tb_execute.branch.BLT_01
tb_execute.branch.BLT_02
tb_execute.branch.BLT_03
tb_execute.branch.BLTU_01
tb_execute.branch.BLTU_02
tb_execute.branch.BLTU_03
tb_execute.branch.BGE_01
tb_execute.branch.BGE_02
tb_execute.branch.BGE_03
tb_execute.branch.BGEU_01
tb_execute.branch.BGEU_02
tb_execute.branch.BGEU_03
tb_execute.back_to_back.01
tb_execute.back_to_back.02
tb_execute.back_to_back.03
tb_execute.bubble.01
tb_execute.bubble.02
tb_execute.bubble.03
tb_execute.pipeline_wait_after_reset.01
tb_execute.pipeline_wait_after_reset.02
tb_execute.pipeline_wait_after_reset.03
tb_execute.pipeline_wait_after_reset.04
tb_execute.pipeline_wait.01
tb_execute.pipeline_wait.02
tb_execute.pipeline_wait.03
tb_execute.pipeline_wait.04
tb_execute.reset.01
tb_execute.reset.02
tb_execute.reset.03
tb_execute.reset.04
tb_execute.branch.JALR_01
tb_execute.branch.JALR_02
tb_execute.branch.JALR_03
tb_execute.hazard.01
tb_execute.hazard.02
tb_execute.hazard.03
A_FUNCTIONAL_PARTITIONING_06 The loadstore module shall implement the load/store stage of the pipeline. tb_loadstore.no_stall.LB_01
tb_loadstore.no_stall.LB_02
tb_loadstore.no_stall.LB_03
tb_loadstore.no_stall.LB_04
tb_loadstore.no_stall.LB_05
tb_loadstore.no_stall.LBU_01
tb_loadstore.no_stall.LBU_02
tb_loadstore.no_stall.LBU_03
tb_loadstore.no_stall.LBU_04
tb_loadstore.no_stall.LBU_05
tb_loadstore.no_stall.LH_01
tb_loadstore.no_stall.LH_02
tb_loadstore.no_stall.LH_03
tb_loadstore.no_stall.LH_04
tb_loadstore.no_stall.LH_05
tb_loadstore.no_stall.LHU_01
tb_loadstore.no_stall.LHU_02
tb_loadstore.no_stall.LHU_03
tb_loadstore.no_stall.LHU_04
tb_loadstore.no_stall.LHU_05
tb_loadstore.no_stall.LW_01
tb_loadstore.no_stall.LW_02
tb_loadstore.no_stall.LW_03
tb_loadstore.no_stall.LW_04
tb_loadstore.no_stall.LW_05
tb_loadstore.no_stall.SB_01
tb_loadstore.no_stall.SB_02
tb_loadstore.no_stall.SB_03
tb_loadstore.no_stall.SB_04
tb_loadstore.no_stall.SB_05
tb_loadstore.no_stall.SH_01
tb_loadstore.no_stall.SH_02
tb_loadstore.no_stall.SH_03
tb_loadstore.no_stall.SH_04
tb_loadstore.no_stall.SH_05
tb_loadstore.no_stall.SW_01
tb_loadstore.no_stall.SW_02
tb_loadstore.no_stall.SW_03
tb_loadstore.no_stall.SW_04
tb_loadstore.no_stall.SW_05
tb_loadstore.memory_stall.01
tb_loadstore.memory_stall.02
tb_loadstore.memory_stall.03
tb_loadstore.memory_wait.01
tb_loadstore.memory_wait.02
tb_loadstore.memory_wait.03
tb_loadstore.bypass.01
tb_loadstore.bypass.02
tb_loadstore.bypass.03
tb_loadstore.bubble.01
tb_loadstore.bubble.02
tb_loadstore.bubble.03
tb_loadstore.back_to_back.01
tb_loadstore.back_to_back.02
tb_loadstore_w_slave.no_stall.LW_01
tb_loadstore_w_slave.no_stall.LW_02
tb_loadstore_w_slave.no_stall.LW_03
tb_loadstore_w_slave.no_stall.LW_04
tb_loadstore_w_slave.no_stall.SW_01
tb_loadstore_w_slave.no_stall.SW_02
tb_loadstore_w_slave.no_stall.SW_03
tb_loadstore_w_slave.no_stall.SW_04
A_FUNCTIONAL_PARTITIONING_07 The writeback module shall implement the write-back stage of the pipeline. tb_writeback.write.01
tb_writeback.bypass.01
tb_writeback.bubble.01
A_WRITEBACK_01 The writeback module shall perform its operation in a single cycle. tb_writeback.write.01
tb_writeback.bypass.01
tb_writeback.bubble.01
A_FUNCTIONAL_PARTITIONING_08 The hazard module shall handle the detection of data and control hazards as well as trigger the associated pipeline stalls and pipeline drops. tb_hazard.control.01
tb_hazard.data.X0_01
tb_hazard.data.PORT1_01
tb_hazard.data.PORT2_01
tb_hazard.data.MULTIPLE_01
A_PIPELINE_WAIT_01 The following modules shall implement the pipeline wait state : fetch, decode, execute. tb_execute.pipeline_wait_after_reset.01
tb_execute.pipeline_wait_after_reset.02
tb_execute.pipeline_wait_after_reset.03
tb_execute.pipeline_wait_after_reset.04
tb_execute.pipeline_wait.01
tb_execute.pipeline_wait.02
tb_execute.pipeline_wait.03
tb_execute.pipeline_wait.04
tb_fetch.pipeline_wait.01
tb_fetch.pipeline_wait.02
tb_fetch.pipeline_wait.03
tb_fetch.pipeline_wait.04
tb_decode.pipeline_wait.01
tb_decode.pipeline_wait.02
tb_decode.pipeline_wait.03
tb_decode.pipeline_wait.04
tb_decode.pipeline_wait.05
A_PIPELINE_BUBBLE_01 The following modules shall implement the pipeline bubble state : decode, execute, loadstore and writeback. tb_loadstore.bubble.01
tb_loadstore.bubble.02
tb_loadstore.bubble.03
tb_execute.bubble.01
tb_execute.bubble.02
tb_execute.bubble.03
tb_writeback.bubble.01
tb_decode.bubble.01
tb_decode.bubble.02
tb_decode.bubble.03
tb_decode.bubble.04
tb_decode.bubble.05
A_PIPELINE_STALL_01 The fetch module shall stall the pipeline while performing the memory request. The pipeline shall be unstalled after completing the request. tb_fetch.no_stall.04
tb_fetch.memory_stall.03
tb_fetch.memory_wait.03
tb_fetch.pipeline_wait.04
A_PIPELINE_STALL_02 The loadstore module shall stall the pipeline while performing the memory request. The pipeline shall be unstalled after completing the request. tb_loadstore.no_stall.LB_05
tb_loadstore.no_stall.LBU_05
tb_loadstore.no_stall.LH_05
tb_loadstore.no_stall.LHU_05
tb_loadstore.no_stall.LW_05
tb_loadstore.no_stall.SB_05
tb_loadstore.no_stall.SH_05
tb_loadstore.no_stall.SW_05
tb_loadstore.memory_stall.03
tb_loadstore.memory_wait.03
A_HAZARD_01 The hazard module shall issue a stall request to the decode module while a write operation to one of the next registers to be read by decode is to be performed by the following modules : decode (current output), execute, loadstore and writeback. tb_hazard.data.X0_01
tb_hazard.data.PORT1_01
tb_hazard.data.PORT2_01
tb_hazard.data.MULTIPLE_01
A_PIPELINE_STALL_03 The decode module shall stall the pipeline upon stall request from the hazard module. tb_decode.hazard.01
tb_decode.hazard.02
tb_decode.hazard.03
tb_decode.hazard.04
tb_decode.hazard.05
A_PIPELINE_STALL_04 While stalling the pipeline due to a stall request from the hazard module, the decode module shall clear its register outputs. tb_decode.hazard.03
A_HAZARD_02 The hazard module shall issue a pipeline drop request to the execute module on the rising edge of clk_i after the execute module has issued a branch request to the fetch module. The pipeline drop request shall be held asserted for two cycles. tb_hazard.control.01
A_PIPELINE_DROP_01 The execute module shall discard the decode module's output and output a pipeline bubble upon drop request from the hazard module. tb_execute.hazard.01
tb_execute.hazard.02
tb_execute.hazard.03

Untraceable requirements

Requirement Description Derived from Justification
External Interface Requirements
I_CLK_01 ECAP5-DPROC's outputs shall be registered on the rising edge of clk_i. This requirement is covered by the hdl code.
Functional Requirements
F_MEMORY_INTERFACE_01 Both instruction and data accesses shall be handled by a unique external memory interface. U_INSTRUCTION_SET_01 This requirement is covered by the hdl code of the memory module.
F_WISHBONE_DATASHEET_01 The memory interface shall comply with the Wishbone Datasheet provided in section 2.1. U_MEMORY_INTERFACE_02 This requirement is covered by the hdl code.
F_WISHBONE_TIMING_01 The clock input clk_i shall coordinate all activites for the internal logic within the memory interface. All output signals of the memory interface shall be registered at the rising edge of clk_i. All input signals of the memory interface shall be stable before the rising edge of clk_i. U_MEMORY_INTERFACE_02 This requirement is covered by the hdl code.
Architecture Requirements
A_CLOCK_DOMAIN_01 All modules of ECAP5-DPROC shall belong to a unique clock domain. This requirement is covered by the hdl code.

Uncovered requirements

Requirement Description Derived from
User Requirements
U_DEBUG_01 ECAP5-DPROC shall be compliant with the RISC-V External Debug Support specification.
Functional Requirements
F_INSTR_ADDR_MISALIGNED_01 An Instruction Address Misaligned exception shall be raised when the target address of a taken branch or an unconditional jump is not four-byte aligned. U_INSTRUCTION_SET_01
F_MISALIGNED_MEMORY_ACCESS_01 A Misaligned Memory Access exception shall be raised when the target address of a load/store instruction is not aligned on the referenced type size. U_INSTRUCTION_SET_01

Back to top