Add forgotten file
This commit is contained in:
40
fpga/src/main/scala/vcu118/Platform.scala
Normal file
40
fpga/src/main/scala/vcu118/Platform.scala
Normal file
@@ -0,0 +1,40 @@
|
||||
package chipyard.fpga.vcu118
|
||||
|
||||
import chisel3._
|
||||
import chisel3.experimental.{Analog, IO}
|
||||
|
||||
import freechips.rocketchip.diplomacy.{LazyModule, LazyModuleImp}
|
||||
import freechips.rocketchip.diplomacy.{InModuleBody, BundleBridgeSource}
|
||||
import freechips.rocketchip.config.{Parameters}
|
||||
|
||||
import chipyard.{BuildSystem}
|
||||
|
||||
import sifive.blocks.devices.uart._
|
||||
|
||||
trait HasPlatformIO {
|
||||
val io_uart_bb: BundleBridgeSource[UARTPortIO]
|
||||
}
|
||||
|
||||
class VCU118Platform(override implicit val p: Parameters) extends LazyModule
|
||||
with HasPlatformIO {
|
||||
|
||||
val lazySystem = LazyModule(p(BuildSystem)(p)).suggestName("system")
|
||||
|
||||
// BundleBridgeSource is a was for Diplomacy to connect something from very deep in the design
|
||||
// to somewhere much, much higher. For ex. tunneling trace from the tile to the very top level.
|
||||
val io_uart_bb = BundleBridgeSource(() => (new UARTPortIO(p(PeripheryUARTKey)(0))))
|
||||
|
||||
override lazy val module = new VCU118PlatformModule(this)
|
||||
}
|
||||
|
||||
class VCU118PlatformModule[+L <: VCU118Platform](_outer: L) extends LazyModuleImp(_outer) {
|
||||
|
||||
_outer.lazySystem.module match { case sys: HasPeripheryUARTModuleImp =>
|
||||
// create UART pins in Platform
|
||||
//val io_uart_pins_temp = p(PeripheryUARTKey).zipWithIndex map { case (c, i) => IO(new UARTPortIO(c)).suggestName(s"uart_$i") }
|
||||
|
||||
//(io_uart_pins_temp zip sys.uart) map { case (p, r) => p <> r }
|
||||
_outer.io_uart_bb.bundle <> sys.uart(0)
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user