1
0

Added BuildZscale param for use in Top and makefrag generation

This commit is contained in:
Henry Cook 2015-07-13 15:46:42 -07:00
parent 407d8e473e
commit 302cd3e638
3 changed files with 31 additions and 7 deletions

View File

@ -6,6 +6,7 @@ import Chisel._
import uncore._ import uncore._
import rocket._ import rocket._
import rocket.Util._ import rocket.Util._
import zscale._
import scala.math.max import scala.math.max
import DefaultTestSuites._ import DefaultTestSuites._
@ -14,6 +15,8 @@ class DefaultConfig extends ChiselConfig (
type PF = PartialFunction[Any,Any] type PF = PartialFunction[Any,Any]
def findBy(sname:Any):Any = here[PF](site[Any](sname))(pname) def findBy(sname:Any):Any = here[PF](site[Any](sname))(pname)
pname match { pname match {
//
case UseZscale => false
//HTIF Parameters //HTIF Parameters
case HTIFWidth => Dump("HTIF_WIDTH", 16) case HTIFWidth => Dump("HTIF_WIDTH", 16)
case HTIFNSCR => 64 case HTIFNSCR => 64
@ -204,6 +207,18 @@ class DefaultL2VLSIConfig extends ChiselConfig(new WithL2Cache ++ new DefaultVLS
class DefaultL2CPPConfig extends ChiselConfig(new WithL2Cache ++ new DefaultCPPConfig) class DefaultL2CPPConfig extends ChiselConfig(new WithL2Cache ++ new DefaultCPPConfig)
class DefaultL2FPGAConfig extends ChiselConfig(new WithL2Capacity64 ++ new WithL2Cache ++ new DefaultFPGAConfig) 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 ( class FPGAConfig extends ChiselConfig (
(pname,site,here) => pname match { (pname,site,here) => pname match {
case UseBackupMemoryPort => false case UseBackupMemoryPort => false

View File

@ -67,12 +67,18 @@ class MultiChannelTopIO extends BasicTopIO with TopLevelParameters {
//TODO: Remove this wrapper once multichannel DRAM controller is provided //TODO: Remove this wrapper once multichannel DRAM controller is provided
class Top extends Module with TopLevelParameters { class Top extends Module with TopLevelParameters {
val io = new TopIO val io = new TopIO
if(!params(UseZscale)) {
val temp = Module(new MultiChannelTop) val temp = Module(new MultiChannelTop)
val arb = Module(new MemIOArbiter(nMemChannels)) val arb = Module(new MemIOArbiter(nMemChannels))
arb.io.inner <> temp.io.mem arb.io.inner <> temp.io.mem
io.mem <> arb.io.outer io.mem <> arb.io.outer
io.mem_backup_ctrl <> temp.io.mem_backup_ctrl io.mem_backup_ctrl <> temp.io.mem_backup_ctrl
io.host <> temp.io.host io.host <> temp.io.host
} else {
val temp = Module(new ZscaleTop)
io.host <> temp.io.host
}
TestGeneration.generateMakefrag TestGeneration.generateMakefrag
} }

View File

@ -7,6 +7,9 @@ import uncore._
import rocket._ import rocket._
import zscale._ import zscale._
case object UseZscale extends Field[Boolean]
case object BuildZscale extends Field[(Bool) => Zscale]
class ZscaleSystem extends Module { class ZscaleSystem extends Module {
val io = new Bundle { val io = new Bundle {
val host = new HTIFIO val host = new HTIFIO
@ -18,7 +21,7 @@ class ZscaleSystem extends Module {
val corereset = new POCIIO 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) val bootmem_afn = (addr: UInt) => addr(31, 14) === UInt(0)