RISC-V MCU中文社区

【分享】 NICE端口相关信号简单介绍与配置

发表于 开源蜂鸟E203 2021-06-10 19:10:32
0
2268
0

队伍编号CICC1842 队伍名称为数据流不队

以下对自定义指令情况下的NICE各个端口配置进行详细介绍。


由于NICE模块的输入端口由CPU发送相关信号,因此仅对NICE返回给CPU的端口进行介绍。

 NICE返回给CPU的端口分为返回给DTCM和返回给CPU CORE两种,首先对返回CPU CORE的端口进行介绍。

nice_rsp_err nice_icb_rsp_errnice_icb_rsp_valid决定,本设计中该端口与demo中保持一致,未进行改变。

nice_active   该值为NICE是否处于活跃状态(非睡眠)。当NICE为空闲状态时,该值取决于CPU的输入nice_req_valid,指令状态时为1.

nice_req_ready NICE为空闲状态时输出1,需要访问DTCM时要求DTCM的传输给NICE端口的信号nice_icb_cmd_ready1

对于返回给DTCM的端口信号:

nice_icb_rsp_ready  demo设计为恒1,故不变

nice_mem_holdup 1时表明需要访问dtcm,占用dtcm,后一周期 nice_icb_cmd_valid1

nice_icb_cmd_valid 1时访问dtcm,当前周期开始向输入地址写数据

nice_icb_cmd_addr 地址

nice_icb_cmd_read 0时表示向dtcm写数据

nice_icb_cmd_wdata 写入的数据

nice_icb_cmd_size 每次写的规格,规定为2’b10为字

由于本队伍设计没有DTCM进行访问的需求,因此未对其进行深入的研究,仅仅是将nice_icb_cmd_valid横置为低电平。


基于原有的NICE端口信号,同样将NICE接口设计为状态机,其分为空闲状态和工作状态。当其为空闲状态时,接收收到的指令编码,判断其为哪一条指令,跳转至工作状态并将对应模块启动使能信号置为1

值得注意的是,demo上板获得的信号时序可能和一版e203的参考书的时序略有不同。


对于demo上板时ila捕捉的nice信号如下:


本队设计上板后捕捉信号波形如下

最后通过SDK 成功执行指令。



喜欢0
用户评论

未通过实名认证

懒的都不写签名

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