二、RISC-V调试Spec 调试模块在CPU芯片设计里是最为不起眼的,但又是最为复杂的模块之一,大部分开源...
debug模式 CSR寄存器 Control and Status Registers (CSRs) CSR寄存器编址约定:特权等级划分、读写属性标识 CSR地址映射表 CSR寄存器读写属性 Machine-Level ISA machine mode读写的寄存器,如mhartid、mstatus、mtvec、mcause machine特权指令,如ecall(所有模式)、mret、sret、wfi(所有模式、U模式可选) 复位、NMI发...
每个中断都有中断号i(定义在mcause表中),每个中断号如果被 pending 了,那么对应的第i位就会被置为 1. 因为 RISC v spec 定义了 16 个标准的中断,因此低 16bit 是用于标准用途,其它位则*台自定义。 如下图所示是低 16bit 的mip与mie寄存器。其实比较好记忆,只需要知道mcause中的中断源即可。例如 SSIP 就...
调试模块在CPU芯片设计里是最为不起眼的,但又是最为复杂的模块之一,大部分开源的处理器IP都没有调试模块。 下面的内容基于RISC-V debug spec 0.13版本。 目前RISC-V的官方调试上位机是openocd,调试工具可以是JLink或者CMSIS-DAP,RISC-V调试系统框架如图3所示。 图3 RISC-V调试系统框架 可以看到主要分为3个部分...
本部分根据Spec进行介绍,spec共19个章节。 1、简介 1.0-版本为当前稳定版本, 2、向量指令集的参数 向量指令集的扩展必须有如下两个参数: (1) ELEN:任何操作都可以产生或消耗的向量元素的最大位大小,ELEN≥8,它必须为2的幂。 (2) VLEN:单个向量寄存器中的位数,VLEN≥ELEN,它必须是2的幂,并且不能大于2的...
目前的进度是unpriv spec差浮点,priv spec刚开始,下周会补完。 知乎的排版对内嵌html和latex表达式的支持真的很差劲,好多表格白画了。可以移步:https://github.com/penguin858/RISCV-architecture-notes/blob/main/riscV-spec-notes.md Document Version 20191213 ...
mstatus 机器模式状态。MIE=1,该模式下中断全局打开,为0关闭。进入异常和退出时都会更改此寄存器。3....
但是为了完整性,tinyriscv还是加入了JTAG模块,还单独为JTAG写了一篇文章《深入浅出RISC-V调试》,感兴趣的同学可以去看一下,这里不再单独介绍了。要明白JTAG模块的设计原理,必须先看懂RISC-V的debug spec。 RTL仿真验证 写完处理器代码后,怎么证明所写的处理器是能正确执行指令的呢?这时就需要写testbench来测试了...
但是为了完整性,tinyriscv还是加入了JTAG模块,还单独为JTAG写了一篇文章《深入浅出RISC-V调试》,感兴趣的同学可以去看一下,这里不再单独介绍了。要明白JTAG模块的设计原理,必须先看懂RISC-V的debug spec。 4.12 RTL仿真验证 写完处理器代码后,怎么证明所写的处理器是能正确执行指令的呢?这时就需要写testbench来...
docs-spec-templatedocs-spec-templatePublic template Makefile2422 docs-resourcesdocs-resourcesPublic CSS3418 Repositories riscv-performance-eventsPublic RISC-V Performance Events Specification Makefile4CC-BY-4.0402UpdatedMar 12, 2025 riscv-aiaPublic ...