1
0

JTAG: make TRSTn optional for all helpers as well to match the IO.

This commit is contained in:
Megan Wachs 2017-03-24 17:27:55 -07:00
parent 2c47cc4abd
commit faeb14dc5a

View File

@ -13,28 +13,28 @@ import Chisel._
import config._ import config._
import jtag.{JTAGIO} import jtag.{JTAGIO}
class JTAGPinsIO extends Bundle { class JTAGPinsIO(hasTRSTn: Boolean = true) extends Bundle {
val TCK = new GPIOPin() val TCK = new GPIOPin()
val TMS = new GPIOPin() val TMS = new GPIOPin()
val TDI = new GPIOPin() val TDI = new GPIOPin()
val TDO = new GPIOPin() val TDO = new GPIOPin()
val TRSTn = new GPIOPin() val TRSTn = if (hasTRSTn) Option(new GPIOPin()) else None
} }
class JTAGGPIOPort()(implicit p: Parameters) extends Module { class JTAGGPIOPort(hasTRSTn: Boolean = true)(implicit p: Parameters) extends Module {
val io = new Bundle { val io = new Bundle {
// TODO: make this not hard-coded true. // TODO: make this not hard-coded true.
val jtag = new JTAGIO(hasTRSTn = true) val jtag = new JTAGIO(hasTRSTn)
val pins = new JTAGPinsIO() val pins = new JTAGPinsIO(hasTRSTn)
} }
io.jtag.TCK := GPIOInputPinCtrl(io.pins.TCK, pue = Bool(true)).asClock io.jtag.TCK := GPIOInputPinCtrl(io.pins.TCK, pue = Bool(true)).asClock
io.jtag.TMS := GPIOInputPinCtrl(io.pins.TMS, pue = Bool(true)) io.jtag.TMS := GPIOInputPinCtrl(io.pins.TMS, pue = Bool(true))
io.jtag.TDI := GPIOInputPinCtrl(io.pins.TDI, pue = Bool(true)) io.jtag.TDI := GPIOInputPinCtrl(io.pins.TDI, pue = Bool(true))
io.jtag.TRSTn.get := GPIOInputPinCtrl(io.pins.TRSTn, pue = Bool(true)) io.jtag.TRSTn.foreach{t => t := GPIOInputPinCtrl(io.pins.TRSTn.get, pue = Bool(true))}
GPIOOutputPinCtrl(io.pins.TDO, io.jtag.TDO.data) GPIOOutputPinCtrl(io.pins.TDO, io.jtag.TDO.data)
io.pins.TDO.o.oe := io.jtag.TDO.driven io.pins.TDO.o.oe := io.jtag.TDO.driven