Added BuildZscale param for use in Top and makefrag generation
This commit is contained in:
parent
407d8e473e
commit
302cd3e638
@ -6,6 +6,7 @@ import Chisel._
|
||||
import uncore._
|
||||
import rocket._
|
||||
import rocket.Util._
|
||||
import zscale._
|
||||
import scala.math.max
|
||||
import DefaultTestSuites._
|
||||
|
||||
@ -14,6 +15,8 @@ class DefaultConfig extends ChiselConfig (
|
||||
type PF = PartialFunction[Any,Any]
|
||||
def findBy(sname:Any):Any = here[PF](site[Any](sname))(pname)
|
||||
pname match {
|
||||
//
|
||||
case UseZscale => false
|
||||
//HTIF Parameters
|
||||
case HTIFWidth => Dump("HTIF_WIDTH", 16)
|
||||
case HTIFNSCR => 64
|
||||
@ -204,6 +207,18 @@ class DefaultL2VLSIConfig extends ChiselConfig(new WithL2Cache ++ new DefaultVLS
|
||||
class DefaultL2CPPConfig extends ChiselConfig(new WithL2Cache ++ new DefaultCPPConfig)
|
||||
class DefaultL2FPGAConfig extends ChiselConfig(new WithL2Capacity64 ++ new WithL2Cache ++ new DefaultFPGAConfig)
|
||||
|
||||
class WithZscale extends ChiselConfig(
|
||||
(pname,site,here) => pname match {
|
||||
case BuildZscale => {
|
||||
TestGeneration.addSuites(List(rv32ui("p"), rv32um("p")))
|
||||
(r: Bool) => Module(new Zscale(r), {case TLId => "L1ToL2"})
|
||||
}
|
||||
case UseZscale => true
|
||||
}
|
||||
)
|
||||
|
||||
class ZscaleConfig extends ChiselConfig(new WithZscale ++ new DefaultConfig)
|
||||
|
||||
class FPGAConfig extends ChiselConfig (
|
||||
(pname,site,here) => pname match {
|
||||
case UseBackupMemoryPort => false
|
||||
|
@ -67,12 +67,18 @@ class MultiChannelTopIO extends BasicTopIO with TopLevelParameters {
|
||||
//TODO: Remove this wrapper once multichannel DRAM controller is provided
|
||||
class Top extends Module with TopLevelParameters {
|
||||
val io = new TopIO
|
||||
if(!params(UseZscale)) {
|
||||
val temp = Module(new MultiChannelTop)
|
||||
val arb = Module(new MemIOArbiter(nMemChannels))
|
||||
arb.io.inner <> temp.io.mem
|
||||
io.mem <> arb.io.outer
|
||||
io.mem_backup_ctrl <> temp.io.mem_backup_ctrl
|
||||
io.host <> temp.io.host
|
||||
} else {
|
||||
val temp = Module(new ZscaleTop)
|
||||
io.host <> temp.io.host
|
||||
}
|
||||
|
||||
TestGeneration.generateMakefrag
|
||||
}
|
||||
|
||||
|
@ -7,6 +7,9 @@ import uncore._
|
||||
import rocket._
|
||||
import zscale._
|
||||
|
||||
case object UseZscale extends Field[Boolean]
|
||||
case object BuildZscale extends Field[(Bool) => Zscale]
|
||||
|
||||
class ZscaleSystem extends Module {
|
||||
val io = new Bundle {
|
||||
val host = new HTIFIO
|
||||
@ -18,7 +21,7 @@ class ZscaleSystem extends Module {
|
||||
val corereset = new POCIIO
|
||||
}
|
||||
|
||||
val core = Module(new Zscale(io.host.reset), {case TLId => "L1ToL2"})
|
||||
val core = params(BuildZscale)(io.host.reset)
|
||||
|
||||
val bootmem_afn = (addr: UInt) => addr(31, 14) === UInt(0)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user