Rocket - diplomacy - enumerateBits】的更多相关文章

https://mp.weixin.qq.com/s/KsZqe9W_DM6W6JecK_irvA   介绍AddressSet.enumerateBits方法的实现,主要是x & (-x)的意义.   ​​   1. 基本定义   enumerateBits的意思就是用于枚举比特,或者说罗列比特,即把mask中为1的比特罗列出来.   2. 验证   enumerateBits方法功能比较简单独立,可以直接拿出来执行进行验证.   ​​   执行结果如下: ​​   3. x == 0   没…
https://mp.weixin.qq.com/s/vaDUekxkFkOJLmzg5jCngw 简单介绍LazyModule/LazyModuleImp的组织方式. 1. LazyModule LazyModule是一个泛化的模块概念,其中包含了代表模块与其他模块相连的节点(diplomacy node),也包含了模块的内部逻辑实现(lazy val module). 其定义为: --------------------------------------------------------…
https://mp.weixin.qq.com/s/ZsEVt1GslL7ufJdJlgpfNQ   介绍AddressSet的实现.   ​​   1. 基本定义   ​​ 使用base/mask定义的一个地址集合,之所以用集合(Set)而不是范围(Range),因为范围一般情况下是指一个连续的范围,而base/mask定义的可以是多个连续的范围,比如上面例子中的e.g: base=0x1000, mask=0xf0f decribes a device managing 0x1000-0x…
https://mp.weixin.qq.com/s/rgCRorjPYyyD6i7moIzbZg   介绍LazyModule和Node构造方法的执行过程,即实例化过程.     1. NullIntSource   以NullIntSource为例,将其作为顶层的LazyModule考虑: ​​     2. LazyModule实例化过程   1) 执行NullIntSource的构造方法,首先要逐层向上找到各个父类,然后逐层向下执行各个父类的构造方法:   a. 最开始执行LazyMod…
https://mp.weixin.qq.com/s/9PsBt4_4qHx4i6C5XtuiUw   介绍LazyModule和Node构造方法的执行过程,即实例化过程.     1. NullIntSource   以NullIntSource为例,将其作为顶层的LazyModule考虑: ​​     2. 实例化过程   1) 执行NullIntSource的构造方法,首先要逐层向上执行各个父类的构造方法:   a. 最开始执行LazyModule类的构造方法:用于构造LazyModul…
https://mp.weixin.qq.com/s/FBU8fE4u9-UK6mRGQOlvbQ   介绍LazyModule的实现.     ​​   1. children   LazyModule内部的LazyModule,说明LazyModule是可以嵌套的.   在如下位置添加: ​​     2. nodes   LazyModule内部的Node.   相较之下,Node不能嵌套,内部没有其他Node.   在BaseNode中添加: ​​     3. parent   记录父…
https://mp.weixin.qq.com/s/so-2x5KLfYF0IMCCqNThwQ   简单调试ValName实现:   1. 使用     ​​   Desugar之后如下: ​​   这里补上了省略掉的implicit parameter,如下: ​​     2. 实现   ValName的实现如下: ​​   ValNameImpl的实现如下: ​​     3. 提取   ValName和ValNameImpl实现相对独立,可以提取出来单独调试.   新建一个项目.因为…
https://mp.weixin.qq.com/s/GWL41P1G1BXm2sTeLmckdA   介绍NodeHandle相关的类.     ​​   1. NoHandle   顶层类(trait),作为所有NodeHandle的父类型,没有定义特别操作.     2. InwardNodeHandle   ​​   主要用于实现节点绑定逻辑.   1) bind方法   委托给InwardNode.bind()实现:   2) 与NodeHandle连接   ​​   a. 连接  …
https://mp.weixin.qq.com/s/9PEEpe1pkQDN9RWpOGSUCQ   介绍DUEB参数模型的设计,不包含实现(实现对设计做了简化).     1. DUEB   diplomacy的DUEB参数模型包含了4组参数,分别是: a. DI/DO b. UI/UO c. EI/EO d. BI/BO   每一个参数类型的定义如下: ​​   参数模型图如下: ​​     下面主要以DI/DO为例,来做解释.   2. the node   DI = Downward…
https://mp.weixin.qq.com/s/cTRxXwWNEeb4-XX_t4bRcg   讨论模块结构信息的来源及使用方式.     ​​   1. diplomacy   diplomacy:外交,谈判的意思.主要用于模块之间的协商参数.   基本思想是首先把模块结构(module hierarchy)抽象为DAG: a. 把模块抽象为点(Node),把模块之间的连接抽象为边(Edge); b. 边是有方向的,上游节点为SourceNode,下游节点为SinkNode: c. N…