Rocket - debug - DMI

Posted wjcdx

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Rocket - debug - DMI相关的知识,希望对你有一定的参考价值。

https://mp.weixin.qq.com/s/70BoeS7z4aBZK24zxdZzXA

 

简单介绍DMI的实现。

 

技术图片

 

1. DMIConsts

 

定义DMI使用的常量:

技术图片

其中:

a. dmiDataSize为数据宽度;

b. dmiOpSize为操作宽度;

技术图片

 

2. DMIReq

 

定义DMI请求的结构:

技术图片

其中:

a. addr为请求地址,其宽度由参数传入;

b. data为请求时使用的数据;

c. op为请求的操作类型;

 

3. DMIResp

 

定义DMI响应的结构:

技术图片

其中:

a. data为响应的数据;

b. resp为响应的状态:

技术图片

 

4. DMIIO

 

定义顶层DMI接口:

技术图片

其中:请求接口中的地址宽度,从全局配置中获取;

 

5. ClockedDMIIO

 

增加了时钟和复位信号输出的DMI接口:

技术图片

 

6. DMIToTL

 

定义DMI接口向TileLink接口转换的逻辑:

技术图片

 

1) diplomacy node

 

这是一个只有输出边没有输入边的节点(TLClientNode):

技术图片

 

2) lazy module

 

lazy module实现具体的转换逻辑:

技术图片

 

A. diplomacy node只有输出边,没有输入边:

技术图片

 

B. 定义模块IO:

技术图片

 

C. 生成通过channel a发起请求所需的fromSource/toAddr/size:

技术图片

 

D. 生成读写请求逻辑:

技术图片

 

E. 生成NOP逻辑:

技术图片

其中:mask=0代表不写入:

技术图片

 

F. 根据操作类型,选择通过channel a发出的请求:

技术图片

 

G. 适配请求的ready/valid:

技术图片

 

H. 适配响应的ready/valid:

技术图片

 

I. 返回响应状态和数据:

技术图片

 

J. 不支持缓存:

技术图片

 

以上是关于Rocket - debug - DMI的主要内容,如果未能解决你的问题,请参考以下文章

Rocket - debug - DebugTransport

Rocket - debug - Custom

Rocket - debug - DebugCustomXbar

Rocket - debug - TLDebugModule

Rocket - debug - SBA

Rocket - debug - DMI