tilelink: TestSRAM reports errors on illegal access
This commit is contained in:
		| @@ -49,12 +49,13 @@ class TLTestRAM(address: AddressSet, executable: Boolean = true, beatBytes: Int | ||||
|     in.d.valid := in.a.valid | ||||
|  | ||||
|     val hasData = edge.hasData(in.a.bits) | ||||
|     val legal = address.contains(in.a.bits.address) | ||||
|     val wdata = Vec.tabulate(beatBytes) { i => in.a.bits.data(8*(i+1)-1, 8*i) } | ||||
|  | ||||
|     in.d.bits := edge.AccessAck(in.a.bits, UInt(0)) | ||||
|     in.d.bits := edge.AccessAck(in.a.bits, UInt(0), !legal) | ||||
|     in.d.bits.data := Cat(mem(memAddress).reverse) | ||||
|     in.d.bits.opcode := Mux(hasData, TLMessages.AccessAck, TLMessages.AccessAckData) | ||||
|     when (in.a.fire() && hasData) { mem.write(memAddress, wdata, in.a.bits.mask.toBools) } | ||||
|     when (in.a.fire() && hasData && legal) { mem.write(memAddress, wdata, in.a.bits.mask.toBools) } | ||||
|  | ||||
|     // Tie off unused channels | ||||
|     in.b.valid := Bool(false) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user