Flip serial_tl_clock to be generated off-chip
This commit is contained in:
@@ -25,7 +25,8 @@ class WithArty100TUARTTSI(uartBaudRate: BigInt = 115200) extends OverrideHarness
|
|||||||
ports.map({ port =>
|
ports.map({ port =>
|
||||||
val ath = th.asInstanceOf[Arty100THarness]
|
val ath = th.asInstanceOf[Arty100THarness]
|
||||||
val freq = p(PeripheryBusKey).dtsFrequency.get
|
val freq = p(PeripheryBusKey).dtsFrequency.get
|
||||||
val bits = SerialAdapter.asyncQueue(port, th.buildtopClock, th.buildtopReset)
|
val bits = port.bits
|
||||||
|
port.clock := th.buildtopClock
|
||||||
withClockAndReset(th.buildtopClock, th.buildtopReset) {
|
withClockAndReset(th.buildtopClock, th.buildtopReset) {
|
||||||
val ram = SerialAdapter.connectHarnessRAM(system.serdesser.get, bits, th.buildtopReset)
|
val ram = SerialAdapter.connectHarnessRAM(system.serdesser.get, bits, th.buildtopReset)
|
||||||
val uart_to_serial = Module(new UARTToSerial(
|
val uart_to_serial = Module(new UARTToSerial(
|
||||||
|
|||||||
@@ -155,7 +155,8 @@ class WithSimAXIMemOverSerialTL extends OverrideHarnessBinder({
|
|||||||
// DOC include start: HarnessClockInstantiatorEx
|
// DOC include start: HarnessClockInstantiatorEx
|
||||||
withClockAndReset(th.buildtopClock, th.buildtopReset) {
|
withClockAndReset(th.buildtopClock, th.buildtopReset) {
|
||||||
val memOverSerialTLClockBundle = th.harnessClockInstantiator.requestClockBundle("mem_over_serial_tl_clock", memFreq)
|
val memOverSerialTLClockBundle = th.harnessClockInstantiator.requestClockBundle("mem_over_serial_tl_clock", memFreq)
|
||||||
val serial_bits = SerialAdapter.asyncQueue(port, th.buildtopClock, th.buildtopReset)
|
val serial_bits = port.bits
|
||||||
|
port.clock := th.buildtopClock
|
||||||
val harnessMultiClockAXIRAM = SerialAdapter.connectHarnessMultiClockAXIRAM(
|
val harnessMultiClockAXIRAM = SerialAdapter.connectHarnessMultiClockAXIRAM(
|
||||||
system.serdesser.get,
|
system.serdesser.get,
|
||||||
serial_bits,
|
serial_bits,
|
||||||
@@ -302,11 +303,11 @@ class WithSerialAdapterTiedOff extends OverrideHarnessBinder({
|
|||||||
(system: CanHavePeripheryTLSerial, th: HasHarnessSignalReferences, ports: Seq[ClockedIO[SerialIO]]) => {
|
(system: CanHavePeripheryTLSerial, th: HasHarnessSignalReferences, ports: Seq[ClockedIO[SerialIO]]) => {
|
||||||
implicit val p = chipyard.iobinders.GetSystemParameters(system)
|
implicit val p = chipyard.iobinders.GetSystemParameters(system)
|
||||||
ports.map({ port =>
|
ports.map({ port =>
|
||||||
val bits = SerialAdapter.asyncQueue(port, th.buildtopClock, th.buildtopReset)
|
val bits = port.bits
|
||||||
withClockAndReset(th.buildtopClock, th.buildtopReset) {
|
port.clock := false.B.asClock
|
||||||
val ram = SerialAdapter.connectHarnessRAM(system.serdesser.get, bits, th.buildtopReset)
|
port.bits.out.ready := false.B
|
||||||
SerialAdapter.tieoff(ram.module.io.tsi_ser)
|
port.bits.in.valid := false.B
|
||||||
}
|
port.bits.in.bits := DontCare
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@@ -315,7 +316,8 @@ class WithSimSerial extends OverrideHarnessBinder({
|
|||||||
(system: CanHavePeripheryTLSerial, th: HasHarnessSignalReferences, ports: Seq[ClockedIO[SerialIO]]) => {
|
(system: CanHavePeripheryTLSerial, th: HasHarnessSignalReferences, ports: Seq[ClockedIO[SerialIO]]) => {
|
||||||
implicit val p = chipyard.iobinders.GetSystemParameters(system)
|
implicit val p = chipyard.iobinders.GetSystemParameters(system)
|
||||||
ports.map({ port =>
|
ports.map({ port =>
|
||||||
val bits = SerialAdapter.asyncQueue(port, th.buildtopClock, th.buildtopReset)
|
val bits = port.bits
|
||||||
|
port.clock := th.buildtopClock
|
||||||
withClockAndReset(th.buildtopClock, th.buildtopReset) {
|
withClockAndReset(th.buildtopClock, th.buildtopReset) {
|
||||||
val ram = SerialAdapter.connectHarnessRAM(system.serdesser.get, bits, th.buildtopReset)
|
val ram = SerialAdapter.connectHarnessRAM(system.serdesser.get, bits, th.buildtopReset)
|
||||||
val success = SerialAdapter.connectSimSerial(ram.module.io.tsi_ser, th.buildtopClock, th.buildtopReset.asBool)
|
val success = SerialAdapter.connectSimSerial(ram.module.io.tsi_ser, th.buildtopClock, th.buildtopReset.asBool)
|
||||||
@@ -330,7 +332,8 @@ class WithUARTSerial extends OverrideHarnessBinder({
|
|||||||
implicit val p = chipyard.iobinders.GetSystemParameters(system)
|
implicit val p = chipyard.iobinders.GetSystemParameters(system)
|
||||||
ports.map({ port =>
|
ports.map({ port =>
|
||||||
val freq = p(PeripheryBusKey).dtsFrequency.get
|
val freq = p(PeripheryBusKey).dtsFrequency.get
|
||||||
val bits = SerialAdapter.asyncQueue(port, th.buildtopClock, th.buildtopReset)
|
val bits = port.bits
|
||||||
|
port.clock := th.buildtopClock
|
||||||
withClockAndReset(th.buildtopClock, th.buildtopReset) {
|
withClockAndReset(th.buildtopClock, th.buildtopReset) {
|
||||||
val ram = SerialAdapter.connectHarnessRAM(system.serdesser.get, bits, th.buildtopReset)
|
val ram = SerialAdapter.connectHarnessRAM(system.serdesser.get, bits, th.buildtopReset)
|
||||||
val uart_to_serial = Module(new UARTToSerial(freq, UARTParams(0)))
|
val uart_to_serial = Module(new UARTToSerial(freq, UARTParams(0)))
|
||||||
|
|||||||
@@ -31,9 +31,8 @@ class ChipLikeQuadRocketConfig extends Config(
|
|||||||
//==================================
|
//==================================
|
||||||
new chipyard.clocking.WithPLLSelectorDividerClockGenerator ++ // Use a PLL-based clock selector/divider generator structure
|
new chipyard.clocking.WithPLLSelectorDividerClockGenerator ++ // Use a PLL-based clock selector/divider generator structure
|
||||||
|
|
||||||
// Create two clock groups, uncore and fbus, in addition to the tile clock groups
|
// Create the uncore clock group
|
||||||
new chipyard.clocking.WithClockGroupsCombinedByName("uncore", "implicit", "sbus", "mbus", "cbus", "system_bus") ++
|
new chipyard.clocking.WithClockGroupsCombinedByName("uncore", "implicit", "sbus", "mbus", "cbus", "system_bus", "fbus", "pbus") ++
|
||||||
new chipyard.clocking.WithClockGroupsCombinedByName("fbus", "fbus", "pbus") ++
|
|
||||||
|
|
||||||
// Set up the crossings
|
// Set up the crossings
|
||||||
new chipyard.config.WithFbusToSbusCrossingType(AsynchronousCrossing()) ++ // Add Async crossing between SBUS and FBUS
|
new chipyard.config.WithFbusToSbusCrossingType(AsynchronousCrossing()) ++ // Add Async crossing between SBUS and FBUS
|
||||||
|
|||||||
@@ -49,7 +49,8 @@ class FlatTestHarness(implicit val p: Parameters) extends Module {
|
|||||||
val memOverSerialTLClockBundle = Wire(new ClockBundle(ClockBundleParameters()))
|
val memOverSerialTLClockBundle = Wire(new ClockBundle(ClockBundleParameters()))
|
||||||
memOverSerialTLClockBundle.clock := clock
|
memOverSerialTLClockBundle.clock := clock
|
||||||
memOverSerialTLClockBundle.reset := reset
|
memOverSerialTLClockBundle.reset := reset
|
||||||
val serial_bits = SerialAdapter.asyncQueue(dut.serial_tl_pad, clock, reset)
|
val serial_bits = dut.serial_tl_pad.bits
|
||||||
|
dut.serial_tl_pad.clock := clock
|
||||||
val harnessMultiClockAXIRAM = SerialAdapter.connectHarnessMultiClockAXIRAM(
|
val harnessMultiClockAXIRAM = SerialAdapter.connectHarnessMultiClockAXIRAM(
|
||||||
lazyDut.system.serdesser.get,
|
lazyDut.system.serdesser.get,
|
||||||
serial_bits,
|
serial_bits,
|
||||||
|
|||||||
Submodule generators/testchipip updated: b6676e5122...2bbf3a2fe4
Reference in New Issue
Block a user