Rocket - tilelink - Bits vs. UInt】的更多相关文章

https://mp.weixin.qq.com/s/lzDmIHkUph3b1Fxgx66ySg   分析移位/取反操作在Intellij中提示错误的问题.   1. 问题   用到移位/取反的地方都会有错误提示: ​​   提示信息为: ​​   2. 分析   问题发生在对UInt变量,调用在Bits中定义的方法,然后把返回值依然作为UInt使用.但是Bits中定义的方法,返回的是Bits,这就产生了类型不匹配的问题.   以“>>”方法为例.   在Bits中的定义为: ​​ 其实现依…
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/DaJhf7hEoWsEi_AjwSrOfA   简单介绍RegisterRouter的实现.   ​​   1. 基本介绍   实现挂在TileLink总线上的寄存器节点.   2. TLRegisterNode   实现diplomacy概念下的寄存器节点,是一个下游节点,即末端节点: ​​   1) 参数   ​​ a. address:支持的地址集合: b. device:寄存器所属设备: c. deviceKey:设备键值:控制寄存…
https://mp.weixin.qq.com/s/UXFHYEQaYotWNEhshro68Q   简单介绍Xbar的实现.   ​​   1. 基本介绍   用于为Xbar的输入和输出连接生成内部的连接逻辑.   2. object TLXbar   定义了一些辅助方法.   1) assignRanges   ​​   把size放大到与之临近的2的幂,然后进行排序累加,确定新的范围. ​​   运行结果如下: ​​   2) mapInputIds   重新划定sourceId的范围:…
https://mp.weixin.qq.com/s/pmJcsRMviJZjMwlwYw6OgA   简单介绍WidthWidget的实现.   ​​   1. 基本介绍   用于设定与上游节点连接的数据总线的宽度.根据上下游数据总线宽度的大小关系,在转发消息时进行组合和拆分处理.   类参数innerBeatBytes是指与上游节点连接的数据总线所占的字节数: ​​   2. diplomacy node   diplomacy node用于与上下游节点连接,并协商参数.   TLWidth…
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/1vyfhZuF4RyRE5Qjj6AGWA   简单介绍SourceShrinker的实现.   ​​   1. 基本介绍   用于把上游节点的source数量压缩到指定的值(maxInFlight). ​​   2. diplomacy node   diplomacy node用于与上下游节点相连接,并分别向上下游传递参数信息.   1) client   压缩之后的client参数,即要展示给下游节点看的client参数: ​​ 其中…
https://mp.weixin.qq.com/s/XZVCdt50tM6lavchGm9GRg   简单介绍RegionReplicator的实现.   ​​   1. 基本介绍   根据mask把某一个区域复制成多个区域.复制的数目是mask中比特1的数目的2次幂.   2. RegionReplicator   1) 类参数   ​​ mask是掩码,其中的比特1对应的位: a. 在待复制的区域地址的基址中应当为0: b. 在待复制的区域地址的掩码中应当为0: 如此,根据这些位值的变化,…
  简单介绍ProbePicker的实现.   ​​   1. 基本介绍   用于把多个Cache client合并成一个: ​​   2. diplomacy node   ProbePicker的diplomacy node是一个适配器节点,用于与上下游节点连接,并进行参数传递. ​​   这里下游节点的参数向上游节点传递时不做改变:上游节点的参数向下游节点传递时进行了适配,把可以合并处理的cache client的参数进行了合并,这样下游节点看到的ProbePicker的client参数中…