首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
Rocket - diplomacy - LazyModule的实例化
】的更多相关文章
Rocket - diplomacy - LazyModule的实例化(补)
https://mp.weixin.qq.com/s/rgCRorjPYyyD6i7moIzbZg 介绍LazyModule和Node构造方法的执行过程,即实例化过程. 1. NullIntSource 以NullIntSource为例,将其作为顶层的LazyModule考虑: 2. LazyModule实例化过程 1) 执行NullIntSource的构造方法,首先要逐层向上找到各个父类,然后逐层向下执行各个父类的构造方法: a. 最开始执行LazyMod…
Rocket - diplomacy - LazyModule的实例化
https://mp.weixin.qq.com/s/9PsBt4_4qHx4i6C5XtuiUw 介绍LazyModule和Node构造方法的执行过程,即实例化过程. 1. NullIntSource 以NullIntSource为例,将其作为顶层的LazyModule考虑: 2. 实例化过程 1) 执行NullIntSource的构造方法,首先要逐层向上执行各个父类的构造方法: a. 最开始执行LazyModule类的构造方法:用于构造LazyModul…
Rocket - diplomacy - LazyModule的组织方式
https://mp.weixin.qq.com/s/vaDUekxkFkOJLmzg5jCngw 简单介绍LazyModule/LazyModuleImp的组织方式. 1. LazyModule LazyModule是一个泛化的模块概念,其中包含了代表模块与其他模块相连的节点(diplomacy node),也包含了模块的内部逻辑实现(lazy val module). 其定义为: --------------------------------------------------------…
Rocket - diplomacy - LazyModule
https://mp.weixin.qq.com/s/FBU8fE4u9-UK6mRGQOlvbQ 介绍LazyModule的实现. 1. children LazyModule内部的LazyModule,说明LazyModule是可以嵌套的. 在如下位置添加: 2. nodes LazyModule内部的Node. 相较之下,Node不能嵌套,内部没有其他Node. 在BaseNode中添加: 3. parent 记录父…
Rocket - diplomacy - LazyModule实例:Buffer
https://mp.weixin.qq.com/s/j1M9ZOTtqvc1Fv9T6dy9kg 以tilelink下的Buffer为例,介绍LazyModule如何组织内部的节点和模块. 1. TileLink Channels 参考TileLink总线的规范文档. 2. BufferParams BufferParams包含了定义一个Buffer需要用到的3个参数: a. depth; b. flow; c. pipe; 3. TLBufferN…
Rocket - diplomacy - LazyModuleImpLike
https://mp.weixin.qq.com/s/gDbUto1qd7uWbpnxovr5pg 介绍LazyModuleImpLike类的实现. 1. wrapper LazyModuleImpLike是LazyModule的内部实现,LazyModule则是LazyModuleImpLike的外部包裹(wrapper). 2. 悬边 既未与上游节点.亦未与下游节点相连的边: 边包含Bundle的信息,实际相连时,是使用Bundle相连接. …
Rocket - diplomacy - BaseNode
https://mp.weixin.qq.com/s/eOgNLi_MJ8HJOpepGaaW8Q 简单介绍BaseNode的实现. 1. You cannot create a node outside a LazyModule LazyModule.scope在LazyModule对象中定义: 在LazyModule类中赋值: 那么这里的“outside a LazyModule”中的LazyModule指的应该是LazyModule类,而…
Rocket - diplomacy - AddressAdjuster
https://mp.weixin.qq.com/s/X0s5CWN84GEiwpNR7tiRgA 基于AddressAdjuster介绍LazyModule的实现. 参考链接:https://github.com/freechipsproject/rocket-chip/blob/master/src/main/scala/tilelink/AddressAdjuster.scala 1. AddressAdjuster 地址适配器,根据chip_id & mask对地址…
Rocket - diplomacy - MixedNode
https://mp.weixin.qq.com/s/zgeAI2n-2cHJi7-Ra5rYZA 介绍MixedNode的实现. 1. 类定义 2. inner/outer inner side/outer side of the node. 3. inward/outward Inward/Outward node: 4. resolveStar 抽象方法,实现如下逻辑:确定绑定中的星号(*)所代表的连接的个数. 根据Star所…
Rocket - diplomacy - ValName
https://mp.weixin.qq.com/s/so-2x5KLfYF0IMCCqNThwQ 简单调试ValName实现: 1. 使用 Desugar之后如下: 这里补上了省略掉的implicit parameter,如下: 2. 实现 ValName的实现如下: ValNameImpl的实现如下: 3. 提取 ValName和ValNameImpl实现相对独立,可以提取出来单独调试. 新建一个项目.因为…