val o: PinCtrl
// Must be defined by the subclasses
+ def default(): Unit
def inputPin(pue: Bool = Bool(false)): Bool
def outputPin(signal: Bool,
pue: Bool = Bool(false),
ie: Bool = Bool(false)
): Unit
- def inputPin(pins: Vec[this.type], pue: Bool): Vec[Bool] = {
- val signals = Wire(Vec(pins.length, new Bool()))
- for ((signal, pin) <- (signals zip pins)) {
- signal := pin.inputPin(pue)
- }
- signals
- }
}
class BasePin extends Pin() {
val o = new PinCtrl().asOutput
+ def default(): Unit = {
+ this.o.oval := Bool(false)
+ this.o.oe := Bool(false)
+ this.o.ie := Bool(false)
+ }
+
def inputPin(pue: Bool = Bool(false) /*ignored*/): Bool = {
this.o.oval := Bool(false)
this.o.oe := Bool(false)
this.o.oe := Bool(true)
this.o.ie := ie
}
-
}
/////////////////////////////////////////////////////////////////////////
val o = new EnhancedPinCtrl().asOutput
+ def default(): Unit = {
+ this.o.oval := Bool(false)
+ this.o.oe := Bool(false)
+ this.o.ie := Bool(false)
+ this.o.ds := Bool(false)
+ this.o.pue := Bool(false)
+ }
+
def inputPin(pue: Bool = Bool(false)): Bool = {
this.o.oval := Bool(false)
this.o.oe := Bool(false)