是CPU与协处理器交互的专用接口,它可以让协处理器不通过icb总线直接就能访问到DTCM,也可以支持自定义指令集。官网说明:https://doc.nucleisys.com/hbirdv2/core/core.html#nice 参考:《RISC-V CPU工程与实践 上》
总指令交互分为三大部分:接收CPU的cmd指令(cmd_req),给CPU发cmd指令(cmd_rsp),以及读写DTCM中的数据。虽然指令里一个叫req一个叫rsp,但是注意这是两组端口,每一组都有自己的ready和valid握手信号线。注意,不能在CPU req指令还没完成时就rsp

图中的e203_subsys_nice_core就是挂我们加速模块的顶层,我们的mnist_top(或者什么别的加速模块)就例化在e203_subsys_nice_core.v中
指令的格式如下:req和rsp都用同样的格式
这里的rs1和rs2以及rd表示寄存器索引,类似于表示一个数组中的哪一个数,因为这里的寄存器指的都是寄存器组,不是一个寄存器。
xd xs1 xs2表示rs1,rs2,rd是否有效

参考:《RISC-V CPU工程与实践 下》


这份文档关于NICE接口使用,以及使用c代码控制下面的加速模块写的很清楚
这份文档关于NICE接口使用,以及使用c代码控制下面的加速模块写的很清楚