Rocket - tilelink - SRAM】的更多相关文章

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/DaJhf7hEoWsEi_AjwSrOfA   简单介绍RegisterRouter的实现.   ​​   1. 基本介绍   实现挂在TileLink总线上的寄存器节点.   2. TLRegisterNode   实现diplomacy概念下的寄存器节点,是一个下游节点,即末端节点: ​​   1) 参数   ​​ a. address:支持的地址集合: b. device:寄存器所属设备: c. deviceKey:设备键值:控制寄存…
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/v8plWCBD8vZkxykjJe4TCg   介绍AsyncCrossing的实现,主要介绍如何实现diplomacy Node和LazyModule相关内容.   ​​   1. TLAsyncCrossingSource   异步上游节点(源节点): ​​   1) node:LazyModule的节点成员   node用于与其他diplomacy节点协商参数,在这里是一个异步上游节点: ​​   TLAsyncSourceNode是…
https://mp.weixin.qq.com/s/Gqv09RIgSSg5VKe-wb4aGg   讨论tilelink中使用MaskGen生成mask的用法.   1. tilelink中的mask   1) channel a/b包含一个mask信号: ​​   Byte lane select for messages with data: ​​ 这里并没有显示mask信号.可以看到传输数据使用的byte lane与地址是对应的.按照mask的定义,如果整理出来,应该如下表: ​​  …
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/jrqBg2AIpQogBrpwNXjmwg   简单介绍Bundles文件中对TileLink规范(1.7.1)的定义. 参考链接:https://docs.qq.com/sheet/DUVRzVGVqemZvVGFQ   1. TLMessages   1) 定义TileLink支持的各种消息:   ​​ 两点区别: a. Acquire分成了两个AcquireBlock和AcquirePerm: b. 使用Hint/HintAck消息实…
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/UXFHYEQaYotWNEhshro68Q   简单介绍Xbar的实现.   ​​   1. 基本介绍   用于为Xbar的输入和输出连接生成内部的连接逻辑.   2. object TLXbar   定义了一些辅助方法.   1) assignRanges   ​​   把size放大到与之临近的2的幂,然后进行排序累加,确定新的范围. ​​   运行结果如下: ​​   2) mapInputIds   重新划定sourceId的范围:…