SPI: Make it easier to build arbitrary bundles
This commit is contained in:
		| @@ -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)) { | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user