跳转至

香山源代码剖析-笔记

超大规模集成电路 VLSI

参数协调与 Diplomacy

  • 参数协调中的上下游, 取决于谁的参数更具有决定性, 谁的参数更不同于协商
    • 例子: 在一个系统中, 二级缓存使用了 IP 核, 具有较小的可定制性, 只能让一级缓存迁就二级缓存, 此时即使从系统架构的角度来看, 二级缓存是一级缓存的下游, 而从参数协调来看, 一级缓存是二级缓存的下游
  • 在 Diplomacy 中, 有三种节点 (模块), 这也是从参数协调的角度确定的, 而非通过传统意义上的输入输出端:
    • 输入端与输出端数量相等的模块 -> MixedAdapterNode
    • 仅有输入端 -> SinkNode
    • 仅有输出端 -> SourceNode
  • LazyModule
    • 对于有参数需要协调的模块, 需要先经过参数的协调才能够创建 Module, 因此, LazyModule 通过延迟模块的创建, 先进行参数的协调, 在参数协调后才进行模块的创建, 这也是被称为 Lazy 的原因 (延迟创建模块)
    • LazyModule 的两个部分:
      • Module 部分: 所需要创建的 Module 对象, 也就是电路描述部分
      • Diplomacy 部分:
        • 描述本模块中有什么参数需要进行协调? 主方或从方? 协调规则?
        • 创建本模块内部LazyModule
          • ! 注意, LazyModule 只能在另一个 LazyModule 中创建, 这样才能够构成一个以顶层 LazyModule 为根的模块树
        • 说明子模块之间需要有参数协调的互相连接
  • 创建的过程:
    • 创建 Diplomacy: 构建整个系统的结构图和参数协调拓扑图
    • 实施 Diplomacy: 自顶向下, 使用深度优先遍历的方法实施参数协调
      • 向上游方向进行参数一致化
      • 向下游方向进行参数一致化
      • 创建双边的物理连接
    • 生成 Module: 生成模块

外设与 AXI4