Add option to disable ChipTop port dontTouch
This commit is contained in:
@@ -51,6 +51,12 @@ case object IOBinders extends Field[Map[String, Seq[IOBinderFunction]]](
|
|||||||
Map[String, Seq[IOBinderFunction]]().withDefaultValue(Nil)
|
Map[String, Seq[IOBinderFunction]]().withDefaultValue(Nil)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
case object DontTouchIOBindersPorts extends Field[Boolean](true)
|
||||||
|
|
||||||
|
class WithDontTouchIOBinders(b: Boolean = true) extends Config((site, here, up) => {
|
||||||
|
case DontTouchIOBindersPorts => b
|
||||||
|
})
|
||||||
|
|
||||||
abstract trait HasIOBinders { this: LazyModule =>
|
abstract trait HasIOBinders { this: LazyModule =>
|
||||||
val lazySystem: LazyModule
|
val lazySystem: LazyModule
|
||||||
private val iobinders = p(IOBinders)
|
private val iobinders = p(IOBinders)
|
||||||
@@ -76,8 +82,10 @@ abstract trait HasIOBinders { this: LazyModule =>
|
|||||||
val iocellMap = InModuleBody { iobinders.keys.map(k => k -> (lzyFlattened(k)._2 ++ impFlattened(k)._2)).toMap }
|
val iocellMap = InModuleBody { iobinders.keys.map(k => k -> (lzyFlattened(k)._2 ++ impFlattened(k)._2)).toMap }
|
||||||
|
|
||||||
InModuleBody {
|
InModuleBody {
|
||||||
portMap.values.foreach(_.foreach(dontTouch(_)))
|
if (p(DontTouchIOBindersPorts)) {
|
||||||
|
portMap.values.foreach(_.foreach(dontTouch(_)))
|
||||||
|
}
|
||||||
|
|
||||||
println("IOCells generated by IOBinders:")
|
println("IOCells generated by IOBinders:")
|
||||||
for ((k, v) <- iocellMap) {
|
for ((k, v) <- iocellMap) {
|
||||||
if (!v.isEmpty) {
|
if (!v.isEmpty) {
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ import freechips.rocketchip.diplomacy.{AsynchronousCrossing}
|
|||||||
|
|
||||||
// DOC include start: FFTRocketConfig
|
// DOC include start: FFTRocketConfig
|
||||||
class FFTRocketConfig extends Config(
|
class FFTRocketConfig extends Config(
|
||||||
|
new chipyard.iobinders.WithDontTouchIOBinders(false) ++ // TODO: hack around dontTouch not working in SFC
|
||||||
new fftgenerator.WithFFTGenerator(numPoints=8, width=16, decPt=8) ++ // add 8-point mmio fft at the default addr (0x2400) with 16bit fixed-point numbers.
|
new fftgenerator.WithFFTGenerator(numPoints=8, width=16, decPt=8) ++ // add 8-point mmio fft at the default addr (0x2400) with 16bit fixed-point numbers.
|
||||||
new freechips.rocketchip.subsystem.WithNBigCores(1) ++
|
new freechips.rocketchip.subsystem.WithNBigCores(1) ++
|
||||||
new chipyard.config.AbstractConfig)
|
new chipyard.config.AbstractConfig)
|
||||||
@@ -58,6 +59,7 @@ class LargeNVDLARocketConfig extends Config(
|
|||||||
new chipyard.config.AbstractConfig)
|
new chipyard.config.AbstractConfig)
|
||||||
|
|
||||||
class ManyMMIOAcceleratorRocketConfig extends Config(
|
class ManyMMIOAcceleratorRocketConfig extends Config(
|
||||||
|
new chipyard.iobinders.WithDontTouchIOBinders(false) ++ // TODO: hack around dontTouch not working in SFC
|
||||||
new fftgenerator.WithFFTGenerator(numPoints=8, width=16, decPt=8) ++ // add 8-point mmio fft at the default addr (0x2400) with 16bit fixed-point numbers.
|
new fftgenerator.WithFFTGenerator(numPoints=8, width=16, decPt=8) ++ // add 8-point mmio fft at the default addr (0x2400) with 16bit fixed-point numbers.
|
||||||
new nvidia.blocks.dla.WithNVDLA("small") ++ // add a small NVDLA
|
new nvidia.blocks.dla.WithNVDLA("small") ++ // add a small NVDLA
|
||||||
new chipyard.example.WithStreamingPassthrough ++ // use top with tilelink-controlled streaming passthrough
|
new chipyard.example.WithStreamingPassthrough ++ // use top with tilelink-controlled streaming passthrough
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ class RocketConfig extends Config(
|
|||||||
new chipyard.config.AbstractConfig)
|
new chipyard.config.AbstractConfig)
|
||||||
|
|
||||||
class TinyRocketConfig extends Config(
|
class TinyRocketConfig extends Config(
|
||||||
|
new chipyard.iobinders.WithDontTouchIOBinders(false) ++ // TODO FIX: Don't dontTouch the ports
|
||||||
new chipyard.config.WithTLSerialLocation(
|
new chipyard.config.WithTLSerialLocation(
|
||||||
freechips.rocketchip.subsystem.FBUS,
|
freechips.rocketchip.subsystem.FBUS,
|
||||||
freechips.rocketchip.subsystem.PBUS) ++ // attach TL serial adapter to f/p busses
|
freechips.rocketchip.subsystem.PBUS) ++ // attach TL serial adapter to f/p busses
|
||||||
|
|||||||
@@ -77,6 +77,7 @@ class TutorialSha3BlackBoxConfig extends Config(
|
|||||||
|
|
||||||
// Tutorial Phase 5: Map a multicore heterogeneous SoC with multiple cores and memory-mapped accelerators
|
// Tutorial Phase 5: Map a multicore heterogeneous SoC with multiple cores and memory-mapped accelerators
|
||||||
class TutorialNoCConfig extends Config(
|
class TutorialNoCConfig extends Config(
|
||||||
|
new chipyard.iobinders.WithDontTouchIOBinders(false) ++
|
||||||
// Try changing the dimensions of the Mesh topology
|
// Try changing the dimensions of the Mesh topology
|
||||||
new constellation.soc.WithGlobalNoC(constellation.soc.GlobalNoCParams(
|
new constellation.soc.WithGlobalNoC(constellation.soc.GlobalNoCParams(
|
||||||
NoCParams(
|
NoCParams(
|
||||||
|
|||||||
Reference in New Issue
Block a user