首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
Rocket - diplomacy - LazyModule实例:Buffer
】的更多相关文章
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 - 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的实例化(补)
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/vaDUekxkFkOJLmzg5jCngw 简单介绍LazyModule/LazyModuleImp的组织方式. 1. LazyModule LazyModule是一个泛化的模块概念,其中包含了代表模块与其他模块相连的节点(diplomacy node),也包含了模块的内部逻辑实现(lazy val module). 其定义为: --------------------------------------------------------…
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 - NodeHandle相关类
https://mp.weixin.qq.com/s/GWL41P1G1BXm2sTeLmckdA 介绍NodeHandle相关的类. 1. NoHandle 顶层类(trait),作为所有NodeHandle的父类型,没有定义特别操作. 2. InwardNodeHandle 主要用于实现节点绑定逻辑. 1) bind方法 委托给InwardNode.bind()实现: 2) 与NodeHandle连接 a. 连接 …
Rocket - debug - TLDebugModuleInner - Program Buffer Access
https://mp.weixin.qq.com/s/EJVqw7JPjjaib68tENl5AQ 简单介绍TLDebugModuleInner中的Program Buffer Access. 1. implementation-specific bits set by harts executing code 1) haltedBitRegs/resumeReqRegs haltedBitRegs和resumeReqRegs在dmactive为假的情况下,值为0.在dmactive为真的情况下…
Rocket - debug - TLDebugModuleInner - Program Buffer
https://mp.weixin.qq.com/s/kjhJJ3moRQzxHt6pJOXEgg 简单介绍TLDebugModuleInner中Program Buffer寄存器的实现. 1. programBufferMem 1) 定义 以字节为单位的Program Buffer寄存器: 2) 复位值 dmactive为假时,其值为0: 2. programBufferNxt 用于存放programBufferMem寄存器的将要使用的值. 3. 寄存器组 programBufferMem是一…
Rocket - diplomacy - AddressAdjuster分析
https://mp.weixin.qq.com/s/UYVSO3XFJmhe5bUD_XbMLg 先介绍如何使用AddressAdjuster,然后分析UI参数的生成及使用. 1. AddressAdjuster的使用 a. 创建AddressAdjuster实例 注意usage()方法有一个implicit Parameters参数,在方法范围内引入了一个隐式参数对象,在new AddressAdjuster的时候会使用. b. 关联node的上下游节点…
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对地址…