RISC-V MCU中文社区

【分享】 利用蜂鸟E203搭建SoC【3】——NICE接口配置

发表于 全国大学生集成电路创新创业大赛 2021-06-10 19:38:21
0
4665
5

队伍编号:CICC1842 


针对RV所特有的扩展指令,e203使用NICE接口进行通信,以下对自定义指令情况下的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信号如下:

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




喜欢5
用户评论
Z

Z 实名认证

懒的都不写签名

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