Rocket - interrupts - Parameters
https://mp.weixin.qq.com/s/eD1_hG0n8W2Wodk25N5KnA
简单介绍interrupts相关的Parameters。
1. IntRange
定义一个中断号区间:
a. [start, end):end不被包括在内;
b. size:区间包含的中断号数;
c. overlaps:判断两个中断号区间是否重叠;
d. offset:平移之后生成一个新的中断号区间;因为x可以为负值,所以移动是双向的;
2. IntSourceParameters
定义中断源的相关参数:
a. range:中断号区间;
b. resources:中断源相关的资源;
c. nodePath:节点路径;
d. name:节点路径最后一个节点的名称;
3. IntSinkParameters
定义中断下游节点相关的参数:
a. nodePath:节点路径;
b. name:名称;
4. IntSourcePortParameters
1) 定义中断源接口的相关参数:
a. sources:接口上连接的中断源;
b. num:中断源包含的所有中断数;
2) 两个限制条件:
a. 中断源之间的中断编号区间不能重叠;但是没有要求区间之间没有空洞;
b. 最后一个中断区间的end应该等于num;
3) object IntSourcePortSimple
用于创建IntSourcePortParameters的简便方法:
4) 关于Port的理解
IntSourceParameters和IntSourcePortParameters相比,多了一个Port。
这个接口,应该是指与总线连接的接口。IntSourceParameters是一个中断源,IntSourcePortParameters中包含多个中断源,这多个中断源共用一个总线接口,向总线上发送中断。
具体如何共用,则需要相关LazyModule来实现相关(仲裁)逻辑。
5. IntSinkPortParameters
定义中断下游接口的相关参数:
6. IntEdge
定义中断节点连接边相关的参数:
a. source:连接边的上游节点参数;
b. sink:连接边的下游节点参数;
c. params:连接边的参数;
7. SyncInterrupts
定义同步中断类,主要是根据IntEdge中的中断源包含的中断个数来生成中断信号向量: