signal_bundles: add missing file
This commit is contained in:
parent
81e301f9f7
commit
5d1e9b793a
27
src/main/scala/devices/pwm/PWMPins.scala
Normal file
27
src/main/scala/devices/pwm/PWMPins.scala
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
// See LICENSE for license details.
|
||||||
|
package sifive.blocks.devices.pwm
|
||||||
|
|
||||||
|
import Chisel._
|
||||||
|
import freechips.rocketchip.config.Field
|
||||||
|
import freechips.rocketchip.coreplex.{HasPeripheryBus, HasInterruptBus}
|
||||||
|
import freechips.rocketchip.diplomacy.{LazyModule, LazyMultiIOModuleImp}
|
||||||
|
import freechips.rocketchip.util.HeterogeneousBag
|
||||||
|
import sifive.blocks.devices.pinctrl.{Pin}
|
||||||
|
|
||||||
|
class PWMSignals[T <: Data] (pingen: ()=> T, val c: PWMParams) extends Bundle {
|
||||||
|
|
||||||
|
val pwm: Vec[T] = Vec(c.ncmp, pingen())
|
||||||
|
|
||||||
|
override def cloneType: this.type =
|
||||||
|
this.getClass.getConstructors.head.newInstance(pingen, c).asInstanceOf[this.type]
|
||||||
|
}
|
||||||
|
|
||||||
|
class PWMPins[T <: Pin] (pingen: ()=> T, c: PWMParams) extends PWMSignals[T](pingen, c)
|
||||||
|
|
||||||
|
object PWMPinsFromPort {
|
||||||
|
def apply[T <: Pin] (pins: PWMSignals[T], port: PWMPortIO): Unit = {
|
||||||
|
(pins.pwm zip port.port) foreach {case (pin, port) =>
|
||||||
|
pin.outputPin(port)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user