SPI: Make it easier to build arbitrary bundles
This commit is contained in:
parent
f8dcfbacfa
commit
6a13639cf3
@ -5,7 +5,7 @@ import Chisel._
|
||||
import chisel3.experimental.{withClockAndReset}
|
||||
import sifive.blocks.devices.pinctrl.{PinCtrl, Pin}
|
||||
|
||||
class SPIPins[T <: Pin] (pingen: ()=> T, c: SPIParamsBase) extends SPIBundle(c) {
|
||||
class SPISignals[T <: Data] (pingen: ()=> T, c: SPIParamsBase) extends SPIBundle(c) {
|
||||
|
||||
val sck = pingen()
|
||||
val dq = Vec(4, pingen())
|
||||
@ -14,6 +14,13 @@ class SPIPins[T <: Pin] (pingen: ()=> T, c: SPIParamsBase) extends SPIBundle(c)
|
||||
override def cloneType: this.type =
|
||||
this.getClass.getConstructors.head.newInstance(pingen, c).asInstanceOf[this.type]
|
||||
|
||||
}
|
||||
|
||||
class SPIPins[T <: Pin] (pingen: ()=> T, c: SPIParamsBase) extends SPISignals(pingen, c) {
|
||||
|
||||
override def cloneType: this.type =
|
||||
this.getClass.getConstructors.head.newInstance(pingen, c).asInstanceOf[this.type]
|
||||
|
||||
def fromPort(spi: SPIPortIO, clock: Clock, reset: Bool,
|
||||
syncStages: Int = 0, driveStrength: Bool = Bool(false)) {
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user