zoukankan      html  css  js  c++  java
  • Rocket

    https://mp.weixin.qq.com/s/FBU8fE4u9-UK6mRGQOlvbQ

     
    介绍LazyModule的实现。
     
     
     
    1. children
     
    LazyModule内部的LazyModule,说明LazyModule是可以嵌套的。
     
    在如下位置添加:
     
     
    2. nodes
     
    LazyModule内部的Node。
     
    相较之下,Node不能嵌套,内部没有其他Node。
     
    在BaseNode中添加:
     
     
    3. parent
     
    记录父LazyModule的信息。
     
     
    4. inModuleBody
     
    一些在Module Body中执行的函数。
     
     
    5. GraphML
     
    用于把LazyModule的结构信息,转化为GraphML的结构信息:
    GraphML是yworks公司(http://www.yworks.com/xml/graphml)定义的一种图标记语言(Graph Markable Language),类似于HTML/XML等。
     
    所以生成的GraphML文本,可以使用yworks公司的GraphML工具来可视化。如果所猜测不错的话,应该是如下图所示:
     
     
    6. index
     
    当前LazyModule实例的编号,代表该实例是被第几个创建的。
     
     
    7. module
     
    LazyModule的实现,多以lazy val的形式出现。这个lazy也是LazyModule中的Lazy的由来。
     
     
    PS. 这种命名法不推荐。名称应当取决于其意义(见名知义),而不是来自于其实现。如果要改的话,不妨改成TileModule,体现其空心框架的意义,同时也与TileLink对应。或者叫DiplomaticModule,体现其协商参数的意义,同时与diplomacy的包名对应。
     
     
    8. 总结
     
    a. LazyModule是Module吗?
     
    如果Module是指Chisel3和Verilog中的硬件模块,那么LazyModule不是。LazyModule的实现LazyModuleImpLike对应着硬件模块。
     
    如果把LazyModule和LazyModuleImp作为一个整体看的话,又可以把他们理解为一个硬件模块:包含了输入输出,包含了内部的子模块(LazyModule)和子节点(Node)。
     
    b. LazyModule的作用
     
    如同一块空心砖(tile),撑起一个框架结构,以供填充内部具体实现。
     
  • 相关阅读:
    JavaScript DOM 编程艺术(第2版)读书笔记(3)
    JavaScript DOM 编程艺术(第2版)读书笔记(1)
    css杂记
    2020年11月15日
    2020年11月14日
    2020年11月13日
    2020年11月12日
    《代码大全》阅读笔记04
    2020年11月11日
    2020年11月10日
  • 原文地址:https://www.cnblogs.com/wjcdx/p/10501710.html
Copyright © 2011-2022 走看看