从零增加 AsIDBits tile/BaseTile.Scala子系统/Config.Scala

问题描述

我想将 Rocket-Chip 中 AsIDBits 的数量从 0 增加到 8,并且想知道如何实现。

tile/BaseTile.Scala

trait HasNonDiplomaticTileParameters {
    implicit val p: Parameters
    //...
    def asIdBits: Int = p(ASIdBits)
    //...
}

https://github.com/chipsalliance/rocket-chip/blob/master/src/main/scala/tile/BaseTile.scala

我想实现一个类似于这里定义的类

子系统/Config.Scala

//...
class WithFPUWithoutDivSqrt extends Config((site,here,up) => {
    case RocketTilesKey => up(RocketTilesKey,site) map { r =>
        r.copy(core = r.core.copy(fpu = r.core.fpu.map(_.copy(divSqrt = false))))
    }
})

class WithBootROMFile(bootROMFile: String) extends Config((site,up) => {
    case BootROMLocated(x) => up(BootROMLocated(x),site).map(_.copy(contentFileName = bootROMFile))
})

class WithSynchronousRocketTiles extends Config((site,up) => {
    case RocketCrossingKey => up(RocketCrossingKey,site) map { r =>
        r.copy(crossingType = SynchronousCrossing())
    }
})
//...

https://github.com/chipsalliance/rocket-chip/blob/master/src/main/scala/subsystem/Configs.scala

我试过这样做

class SetAsIDBits(n: Int) extends Config(
    (site,up) => {
        case ASIdBits => n
    }
)

但出现下面列出的错误

Configs.scala:272:10: not found: value ASIdBits    
[error]     case ASIdBits => n        
[error]          ^             
[error] one error found   
[error] (Compile / compileIncremental) Compilation Failed  

解决方法

我认为这只是表明 ASIdBits 未定义。您可以尝试导入它:

import freechips.rocketchip.rocket.ASIdBits

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...