RISC-V MCU中文社区

【分享】 NICE协处理器接口信号解读--以demo为例

发表于 全国大学生集成电路创新创业大赛 2021-05-29 18:37:42
0
4393
6

团队介绍


大家好,我们团队的名字是293小分队,报名编号为CICC1363。这次分享我们会以NICE协处理器demo为例,对接口信号进行解读。水平有限,如果有错误希望大家多多批评指正



总体介绍

关于NICE各个接口信号的介绍文档的链接如下:

https://doc.nucleisys.com/hbirdv2/core/core.html#nice

接口信号总共可以分为4个通道,分别是Request Channel、Response Channel、Memory Request Channel和Memory Response Channel。每个通道包含多个信号,都遵循valid-ready握手协议。


详细说明

在这一部分,我们会结合demo中的具体代码对接口信号的行为进行分析。

1.系统信号


nice_clk是系统的时钟信号,nice_rst_n是系统的复位信号。

nice_active表示nice协处理器是否正在工作,但该信号在上层文件中未例化,如下图所示。


nice_mem_holdup信号在e203_lsu_ctrl.v文件中用于覆盖cpu对memory的访存请求,也就是当nice协处理器访存时能够独占内存的访问权,如下图所示。



2.Request Channel:主机(cpu)对从机(NICE协处理器)发送指令

NICE协处理器根据nice_req_valid信号和nice_req_inst信号进行译码,确定要执行的具体操作,如下图所示。


nice_req_rs1和nice_req_rs2是两个源寄存器的数值,demo中只用到源寄存器rs1,其数值代表待累加的数据在内存中的初始地址,如下图所示。


nice_req_ready信号是nice协处理器发送给cpu的反馈信号,表示协处理器有无收到cpu的指令。


3.Response Channel:从机(NICE协处理器)对主机(CPU)发出的响应信号

nice_rsp_valid信号由NICE协处理器产生,告知CPU要发送响应数据。demo中该信号是由lbuf/rowsum/sbuf等状态的完成信号得到,如下图所示。


nice_rsp_ready信号由cpu产生,告知NICE协处理器已经接收到响应数据。

nice_rsp_rdat信号是NICE协处理器要返回的结果,如下图所示。


nice_rsp_err信号是NICE协处理器报错信号,demo中该信号是由memory发送给协处理器的nice_icb_rsp系列信号得到。



4.Memory Request Channel:cpu告知协处理器进行访存和累加操作后,由主机(协处理器)向从机(cpu)发出的请求信号

nice_icb_cmd_valid信号是NICE协处理器在需要访存时向cpu发送的信号,demo中状态机在到达需要访存的时刻把该信号置为有效,如下图所示。


nice_icb_cmd_ready信号是cpu告知协处理器收到了访存请求的反馈信号。

nice_icb_cmd_addr信号表示要访存的地址,demo中是源寄存器地址和累加后的地址,如下图所示。


nice_icb_cmd_read信号表示协处理器是要读内存数据还是要向内存写入数据。0为写,1为读,如下图所示。


nice_icb_cmd_wdata信号是待写入的数据,如下图所示。


4.Memory Response Channel:cpu把memory的响应信号发送给NICE协处理器

nice_icb_rsp_valid信号表示memory要反馈给协处理器信号,nice_icb_ready表示协处理器可以接收memory发送来的数据。nice_icb_rsp_rdata中的数据是Memory Request Channel中读地址对应的数据。nice_icb_rsp_err信号表示访存出错





喜欢6
用户评论

未通过实名认证

懒的都不写签名

积分
问答
粉丝
关注
  • RV-STAR 开发板
  • RISC-V处理器设计系列课程
  • 培养RISC-V大学土壤 共建RISC-V教育生态
RV-STAR 开发板