【发布时间】:2022-09-26 16:29:41
【问题描述】:
我之前已经成功添加并模拟了我的 MMIO 外围设备与正常大小的火箭核心耦合。 但是现在我想尝试将它添加到一个小核心(所谓的 TinyCore)中,这就是我遇到问题的部分。此外,以防万一,与我的外围设备的连接都是通过 FIFO。
首先,我在尝试生成设计时遇到的错误:
[错误] java.lang.IllegalArgumentException:要求失败:端口不能重叠:地址集(0x80000000,0x3fff)地址集(0x80000000,0xfffffff)
我想这是因为小型火箭配置具有不同的内存映射,我不知道,并且我正在尝试将外围设备添加到此配置中不存在的地址。
这是我正在使用的配置:
class myTinyRocketConfig2 extends Config( new freechips.rocketchip.subsystem.WithInclusiveCache(nBanks=1, nWays=4, capacityKB=128) ++ new freechips.rocketchip.subsystem.With1TinyCore ++ // single tiny rocket-core new chipyard.config.AbstractConfig)这就是我添加外围设备的方式,它显示了地址和其他一些参数:
class TLTxWriteQueue ( depth: Int = 4, csrAddress: AddressSet = AddressSet(0x2000, 0xff), beatBytes: Int = 4, )(implicit p: Parameters) extends TxWriteQueue(depth) with TLHasCSR { val devname = \"tlQueueIn\" val devcompat = Seq(\"ucb-art\", \"dsptools\") val device = new SimpleDevice(devname, devcompat) { override def describe(resources: ResourceBindings): Description = { val Description(name, mapping) = super.describe(resources) Description(name, mapping) } } // make diplomatic TL node for regmap override val mem = Some(TLRegisterNode(address = Seq(csrAddress), device = device, beatBytes = beatBytes)) }对于任何愚蠢的错误,我提前道歉,因为我是一个试图完成他的第一个项目的初学者。谢谢
标签: rocket-chip