Debug: don't need to fully populate flags array
This commit is contained in:
		| @@ -785,7 +785,7 @@ class TLDebugModuleInner(device: Device, getNComponents: () => Int)(implicit p: | ||||
|       val go = Bool() | ||||
|     } | ||||
|  | ||||
|     val flags = Wire(init = Vec.fill(1024){new flagBundle().fromBits(0.U)}) | ||||
|     val flags = Wire(init = Vec.fill(nComponents){new flagBundle().fromBits(0.U)}) | ||||
|     assert ((cfg.hartSelToHartId(selectedHartReg) < 1024.U), | ||||
|       "HartSel to HartId Mapping is illegal for this Debug Implementation, because HartID must be < 1024 for it to work."); | ||||
|     flags(cfg.hartSelToHartId(selectedHartReg)).go := goReg | ||||
| @@ -904,9 +904,10 @@ class TLDebugModuleInner(device: Device, getNComponents: () => Int)(implicit p: | ||||
|       ABSTRACT(cfg) -> RegFieldGroup("debug_abstract", Some("Instructions generated by Debug Module"), | ||||
|         abstractGeneratedMem.zipWithIndex.map{ case (x,i) => RegField.r(32, x, RegFieldDesc(s"debug_abstract_$i", ""))}), | ||||
|       FLAGS         -> RegFieldGroup("debug_flags", Some("Memory region used to control hart going/resuming in Debug Mode"), | ||||
|         flags.zipWithIndex.map{case(x, i) => RegField.r(8, x.asUInt(), RegFieldDesc(s"debug_flags_$i", ""))}), | ||||
|         flags.zipWithIndex.map{case(x, i) => RegField.r(8, x.asUInt(), RegFieldDesc(s"debug_flags_${i/4}_${i%4}", ""))}), | ||||
|       ROMBASE       -> RegFieldGroup("debug_rom", Some("Debug ROM"), | ||||
|         DebugRomContents().zipWithIndex.map{case (x, i) => RegField.r(8, (x & 0xFF).U(8.W), RegFieldDesc(s"debug_rom_$i", "", reset=Some(x)))}) | ||||
|         DebugRomContents().zipWithIndex.map{case (x, i) => RegField.r(8, (x & 0xFF).U(8.W), | ||||
|           RegFieldDesc(s"debug_rom_$i", "", reset=Some(x)))}) | ||||
|     ) | ||||
|  | ||||
|     // Override System Bus accesses with dmactive reset. | ||||
|   | ||||
		Reference in New Issue
	
	Block a user