https://mp.weixin.qq.com/s/KJ8pVH76rdxPOZ1vE3QlKA 简单介绍tilelink对Diplomacy Nodes的实现. 1. TLImp TLImp继承自NodeImp: 其中: a. D: TLClientPortParameters b. U: TLManagerPortParameters c. EO: TLEdgeOut d. EI: TLEdgeIn e. B: TLBundle f. mixI/mixO把当前节…
https://mp.weixin.qq.com/s/1I6DcONr0Mg7xiX8F1C7SQ 简单介绍TileLink相关的参数实现(具体问题暂时不展开,后续用到时再做分析). 1. TLManagerParameters 定义TileLink Manager节点的参数,Manager节点为Sink节点. 1) 参数列表 a. address:支持的地址集合: b. resources:包含的资源: c. regionType:区域类型: d. exec…
https://mp.weixin.qq.com/s/jSnhBzU5_ayQCg5fWAcx-g 简单介绍TLBusWrapper.to()的实现.主要介绍确定this{...}对应代码的过程. 1. CanHavePeripheryPLIC 在CanHavePeripheryPLIC中,调用了cubs.coupleTo方法,把plic.node作为下游节点连接到cbus上: 这里cbus.coupleTo()()的两个参数列表: a. 第一个为名称:name: b. 第二个是代码块gen:…
https://mp.weixin.qq.com/s/03BvgTNQtD75Guco6gUGQg 简单介绍BusWrapper的实现. 1. HasTLBusParams 定义SoC的挂载点相关的宽度信息: a. beatBytes:一个时钟周期最大能请求的字节数: b. blockBytes:(推测)一次请求(可以包含多个beat)最大能请求的字节数: 其他的通过这两个参数生成: a. beatBits:把beatBytes换算成位数: b. blockBits:把bl…
https://mp.weixin.qq.com/s/-z9n6SHyAiK2OE7mOSvC2Q 简单介绍SRAM的实现. 1. 基本介绍 实现一个支持读写的静态存储器.存取的内容可以使用ECC进行编解码和验证. 2. TLRAM TLRAM是DiplomaticSRAM的子类: 1) 类参数 a. address:支持的地址集合: b. cacheable:是否可被缓存: c. executable:是否可执行: d. beatBytes:数据总线…
https://mp.weixin.qq.com/s/kNQrhlf33AErK7IzalnUDw 简单介绍Fragmenter的实现. 1. 基本介绍 用于把上游节点地址空间范围比较大的访问请求,拆分成下游支持的多个地址空间范围较小的访问请求. 1) 类参数 a. minSize:向下游节点发起的最小的访问大小: b. maxSize:上游节点可以下发的最大的访问大小: c. alwaysMin:是否把所有上游节点的请求,都拆分成minSize大小的访问请求…
https://mp.weixin.qq.com/s/oZCYBdy5glxJQmYKVWvpvA 简单介绍BankBinder的实现. 1. 基本介绍 A BankBinder is used to divide contiguous memory regions into banks, suitable for a cache: a. BankBinder把连续的内存区域分成多个bank: b. 每个Bank的大小与cache相匹配: 2. 使用 在Exampl…