don't make HTIF clock divider tied to backup memory
This commit is contained in:
		| @@ -228,7 +228,8 @@ class DefaultConfig extends Config ( | |||||||
|       case BankIdLSB => 0 |       case BankIdLSB => 0 | ||||||
|       case CacheBlockBytes => Dump("CACHE_BLOCK_BYTES", 64) |       case CacheBlockBytes => Dump("CACHE_BLOCK_BYTES", 64) | ||||||
|       case CacheBlockOffsetBits => log2Up(here(CacheBlockBytes)) |       case CacheBlockOffsetBits => log2Up(here(CacheBlockBytes)) | ||||||
|       case UseBackupMemoryPort => true |       case UseBackupMemoryPort => false | ||||||
|  |       case UseHtifClockDiv => true | ||||||
|       case MMIOBase => Dump("MEM_SIZE", BigInt(1L << 30)) // 1 GB |       case MMIOBase => Dump("MEM_SIZE", BigInt(1L << 30)) // 1 GB | ||||||
|       case DeviceTree => makeDeviceTree() |       case DeviceTree => makeDeviceTree() | ||||||
|       case GlobalAddrMap => { |       case GlobalAddrMap => { | ||||||
| @@ -356,7 +357,7 @@ class ZscaleConfig extends Config(new WithZscale ++ new DefaultConfig) | |||||||
| class FPGAConfig extends Config ( | class FPGAConfig extends Config ( | ||||||
|   (pname,site,here) => pname match { |   (pname,site,here) => pname match { | ||||||
|     case NAcquireTransactors => 4 |     case NAcquireTransactors => 4 | ||||||
|     case UseBackupMemoryPort => false |     case UseHtifClockDiv => false | ||||||
|   } |   } | ||||||
| ) | ) | ||||||
|  |  | ||||||
|   | |||||||
| @@ -27,6 +27,8 @@ case object BankIdLSB extends Field[Int] | |||||||
| case object NOutstandingMemReqsPerChannel extends Field[Int] | case object NOutstandingMemReqsPerChannel extends Field[Int] | ||||||
| /** Whether to use the slow backup memory port [VLSI] */ | /** Whether to use the slow backup memory port [VLSI] */ | ||||||
| case object UseBackupMemoryPort extends Field[Boolean] | case object UseBackupMemoryPort extends Field[Boolean] | ||||||
|  | /** Whether to divide HTIF clock */ | ||||||
|  | case object UseHtifClockDiv extends Field[Boolean] | ||||||
| /** Function for building some kind of coherence manager agent */ | /** Function for building some kind of coherence manager agent */ | ||||||
| case object BuildL2CoherenceManager extends Field[(Int, Parameters) => CoherenceAgent] | case object BuildL2CoherenceManager extends Field[(Int, Parameters) => CoherenceAgent] | ||||||
| /** Function for building some kind of tile connected to a reset signal */ | /** Function for building some kind of tile connected to a reset signal */ | ||||||
| @@ -120,6 +122,7 @@ class Top(topParams: Parameters) extends Module with HasTopLevelParameters { | |||||||
|   uncore.io.tiles_uncached <> tileList.map(_.io.uncached).flatten |   uncore.io.tiles_uncached <> tileList.map(_.io.uncached).flatten | ||||||
|   io.host <> uncore.io.host |   io.host <> uncore.io.host | ||||||
|   if (p(UseBackupMemoryPort)) { io.mem_backup_ctrl <> uncore.io.mem_backup_ctrl } |   if (p(UseBackupMemoryPort)) { io.mem_backup_ctrl <> uncore.io.mem_backup_ctrl } | ||||||
|  |   else { uncore.io.mem_backup_ctrl.en := Bool(false) } | ||||||
|  |  | ||||||
|   io.mem.zip(uncore.io.mem).foreach { case (outer, inner) => |   io.mem.zip(uncore.io.mem).foreach { case (outer, inner) => | ||||||
|     TopUtils.connectNasti(outer, inner) |     TopUtils.connectNasti(outer, inner) | ||||||
| @@ -189,7 +192,7 @@ class Uncore(implicit val p: Parameters) extends Module | |||||||
|   // Wire the htif to the memory port(s) and host interface |   // Wire the htif to the memory port(s) and host interface | ||||||
|   io.host.debug_stats_csr := htif.io.host.debug_stats_csr |   io.host.debug_stats_csr := htif.io.host.debug_stats_csr | ||||||
|   io.mem <> outmemsys.io.mem |   io.mem <> outmemsys.io.mem | ||||||
|   if(p(UseBackupMemoryPort)) { |   if(p(UseHtifClockDiv)) { | ||||||
|     outmemsys.io.mem_backup_en := io.mem_backup_ctrl.en |     outmemsys.io.mem_backup_en := io.mem_backup_ctrl.en | ||||||
|     VLSIUtils.padOutHTIFWithDividedClock(htif.io.host, scrFile.io.scr, |     VLSIUtils.padOutHTIFWithDividedClock(htif.io.host, scrFile.io.scr, | ||||||
|       outmemsys.io.mem_backup, io.mem_backup_ctrl, io.host, htifW) |       outmemsys.io.mem_backup, io.mem_backup_ctrl, io.host, htifW) | ||||||
| @@ -344,5 +347,8 @@ class OuterMemorySystem(implicit val p: Parameters) extends Module with HasTopLe | |||||||
|            "Backup memory port only works when 1 memory channel is enabled") |            "Backup memory port only works when 1 memory channel is enabled") | ||||||
|     require(channelConfigs.sortWith(_ < _)(0) == 1, |     require(channelConfigs.sortWith(_ < _)(0) == 1, | ||||||
|                   "Backup memory port requires a single memory port mux config") |                   "Backup memory port requires a single memory port mux config") | ||||||
|   } else { io.mem <> mem_channels } |   } else { | ||||||
|  |     io.mem <> mem_channels | ||||||
|  |     io.mem_backup.req.valid := Bool(false) | ||||||
|  |   } | ||||||
| } | } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user