Connect DDR from harness
This commit is contained in:
@@ -6,6 +6,7 @@ import chisel3.experimental.{Analog, IO}
|
|||||||
import freechips.rocketchip.diplomacy._
|
import freechips.rocketchip.diplomacy._
|
||||||
import freechips.rocketchip.config.{Parameters, Field}
|
import freechips.rocketchip.config.{Parameters, Field}
|
||||||
import freechips.rocketchip.subsystem.{ExtMem, BaseSubsystem}
|
import freechips.rocketchip.subsystem.{ExtMem, BaseSubsystem}
|
||||||
|
import freechips.rocketchip.tilelink._
|
||||||
|
|
||||||
import sifive.fpgashells.shell.xilinx._
|
import sifive.fpgashells.shell.xilinx._
|
||||||
import sifive.fpgashells.ip.xilinx._
|
import sifive.fpgashells.ip.xilinx._
|
||||||
@@ -155,16 +156,24 @@ class VCU118FPGATestHarness(override implicit val p: Parameters) extends Chipyar
|
|||||||
|
|
||||||
/*** Experimental DDR ***/
|
/*** Experimental DDR ***/
|
||||||
|
|
||||||
//val ddrPlaced = dp(DDROverlayKey).head.place(DDRDesignInput(dp(ExtMem).get.master.base, dutWrangler.node, harnessSysPLL))
|
val ddrWrangler = LazyModule(new ResetWrangler)
|
||||||
|
val ddrPlaced = dp(DDROverlayKey).head.place(DDRDesignInput(dp(ExtMem).get.master.base, ddrWrangler.node, harnessSysPLL))
|
||||||
|
|
||||||
//topDesign match { case lazyDut: VCU118Platform =>
|
// connect 1 mem. channel to the FPGA DDR
|
||||||
// lazyDut.lazySystem match { case lazyDutWBus: BaseSubsystem =>
|
val inParams = topDesign match { case td: VCU118Platform =>
|
||||||
// lazyDutWBus {
|
td.lazySystem match { case lsys: chipyard.CanHaveMasterTLMemPort =>
|
||||||
// InModuleBody {
|
lsys.memTLNode.edges.in(0)
|
||||||
// ddrPlaced.overlayOutput.ddr := lazyDutWBus.mbus.toDRAMController(Some("xilinxvcu118mig"))()
|
}
|
||||||
// }
|
}
|
||||||
// }
|
val ddrClient = TLClientNode(Seq(inParams.master))
|
||||||
// }
|
InModuleBody {
|
||||||
//}
|
topDesign.module match { case dutMod: HasVCU118PlatformIO =>
|
||||||
|
val bundles = ddrClient.out.map(_._1)
|
||||||
|
val ddrClientBundle = Wire(new freechips.rocketchip.util.HeterogeneousBag(bundles.map(_.cloneType)))
|
||||||
|
bundles.zip(ddrClientBundle).foreach { case (bundle, io) => bundle <> io }
|
||||||
|
ddrClientBundle <> dutMod.io_tl_mem
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ddrPlaced.overlayOutput.ddr := ddrClient
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user