自作CPUをChipyardの環境で動かすための確認。前回は色々と試行錯誤したがVerilatorのシミュレーションがうまく行かなかったのだった。
そこで、Chipyardのバージョンを1.6.2にアップデートして再度試行してみる。 現在のChipyardの最新バージョンが1.6.2なので、そこまでバージョンを上げて再試行した。 そうすると一応上手く行ったようだが、まだ上手くシミュレーションが動かない。
まず、フロントエンドのポートサイズを調整するために、SystemBusKey
を調整しなければならない。
/** * Create multiple copies of a MSRH tile (and thus a core). * Override with the default mixins to control all params of the tiles. * * @param n amount of tiles to duplicate */ class WithNMSRHCores(n: Int = 1, overrideIdOffset: Option[Int] = None) extends Config((site, here, up) => { case TilesLocated(InSubsystem) => { val prev = up(TilesLocated(InSubsystem), site) val idOffset = overrideIdOffset.getOrElse(prev.size) (0 until n).map { i => MSRHTileAttachParams( tileParams = MSRHTileParams(hartId = i + idOffset), crossingParams = RocketCrossingParams() ) } ++ prev } case SystemBusKey => up(SystemBusKey, site).copy(beatBytes = 16) case XLen => 64 })
一応シミュレーションは動き出したようだ。しかし、最初のフェッチに対してレスポンスがまだ来ない...引き続き解析する必要ありだな。