【问题标题】:Building Tiles in chiesl (RocketChip)chiesl 中的建筑瓷砖 (RocketChip)
【发布时间】:2017-08-31 12:50:50
【问题描述】:

我正在研究 RocketChip (RISC-V),请问是否有人可以解释这段代码。

class WithNCores(n: Int) extends Config((pname,site,here) => pname match {
case NTiles => n
case BuildTiles => {
    List.tabulate(site(NTiles)){ i => (p: Parameters) =>
      LazyModule(new RocketTile()(p.alterPartial({
        case TileId => i
        case TLId => "L1toL2"
        case NUncachedTileLinkPorts => 1 + site(RoccNMemChannels)
      })))
    }
 }
case _ => throw new CDEMatchError})  
  1. 什么是 (pname,site,here) ?它的作用是什么?
  2. 这是什么意思 (pname,site,here) => pname match { ... }

谢谢

【问题讨论】:

    标签: scala riscv chisel


    【解决方案1】:

    RocketChip 使用这些配置对象将参数提供给生成器。 Config 的参数是一个函数。 (pname, site, here) 是函数的参数。第一个参数 pname 是参数名称,它是函数确定请求的设置的方式。匹配语句pname match { case Foo => Bar } 正是这样做的。

    顺便说一句,您使用的似乎是一个非常旧版本的火箭芯片。我建议升级到最新版本。有关于如何使用参数系统的文档。

    https://github.com/freechipsproject/rocket-chip

    【讨论】:

      猜你喜欢
      • 2012-04-08
      • 1970-01-01
      • 2018-05-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-20
      相关资源
      最近更新 更多