first attempt at heter. port

This commit is contained in:
abejgonzalez
2019-05-20 17:44:47 -07:00
parent bc54b24b85
commit 8b3fef85ce
7 changed files with 444 additions and 2 deletions

View File

@@ -168,3 +168,69 @@ class WithGPIOBoomTop extends Config((site, here, up) => {
top
}
})
// --------------------------------------
// BOOM + Rocket Top Level System Parameter Mixins
// --------------------------------------
/**
* Class to specify a "plain" top level BOOM + Rocket system
*/
class WithNormalBoomAndRocketTop extends Config((site, here, up) => {
case BuildBoomAndRocketTop => (clock: Clock, reset: Bool, p: Parameters) => {
Module(LazyModule(new BoomAndRocketTop()(p)).module)
}
})
/**
* Class to specify a top level BOOM + Rocket system with PWM
*/
class WithPWMBoomAndRocketTop extends Config((site, here, up) => {
case BuildBoomAndRocketTop => (clock: Clock, reset: Bool, p: Parameters) =>
Module(LazyModule(new BoomAndRocketTopWithPWMTL()(p)).module)
})
/**
* Class to specify a top level BOOM + Rocket system with a PWM AXI4
*/
class WithPWMAXI4BoomAndRocketTop extends Config((site, here, up) => {
case BuildBoomAndRocketTop => (clock: Clock, reset: Bool, p: Parameters) =>
Module(LazyModule(new BoomAndRocketTopWithPWMAXI4()(p)).module)
})
/**
* Class to specify a top level BOOM + Rocket system with a block device
*/
class WithBlockDeviceModelBoomAndRocketTop extends Config((site, here, up) => {
case BuildBoomAndRocketTop => (clock: Clock, reset: Bool, p: Parameters) => {
val top = Module(LazyModule(new BoomAndRocketTopWithBlockDevice()(p)).module)
top.connectBlockDeviceModel()
top
}
})
/**
* Class to specify a top level BOOM + Rocket system with a simulator block device
*/
class WithSimBlockDeviceBoomAndRocketTop extends Config((site, here, up) => {
case BuildBoomAndRocketTop => (clock: Clock, reset: Bool, p: Parameters) => {
val top = Module(LazyModule(new BoomAndRocketTopWithBlockDevice()(p)).module)
top.connectSimBlockDevice(clock, reset)
top
}
})
/**
* Class to specify a top level BOOM + Rocket system with GPIO
*/
class WithGPIOBoomAndRocketTop extends Config((site, here, up) => {
case BuildBoomAndRocketTop => (clock: Clock, reset: Bool, p: Parameters) => {
val top = Module(LazyModule(new BoomAndRocketTopWithGPIO()(p)).module)
for (gpio <- top.gpio) {
for (pin <- gpio.pins) {
pin.i.ival := false.B
}
}
top
}
})