From 4c3e8ec1b4dc105c87394e58b89bc0238d805244 Mon Sep 17 00:00:00 2001 From: Yunsup Lee Date: Wed, 28 Sep 2016 20:32:53 -0700 Subject: [PATCH] assign interrupt ranges deterministically --- src/main/scala/rocketchip/Utils.scala | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/scala/rocketchip/Utils.scala b/src/main/scala/rocketchip/Utils.scala index ac93ad9d..4b9d3128 100644 --- a/src/main/scala/rocketchip/Utils.scala +++ b/src/main/scala/rocketchip/Utils.scala @@ -15,19 +15,19 @@ import java.nio.{ByteBuffer, ByteOrder} class RangeManager { private var finalized = false - private val l = collection.mutable.HashMap[String, Int]() + private val l = collection.mutable.ListBuffer[(String, Int)]() def add(name: String, element: Int) = { require(!finalized); l += (name -> element) } def rangeMap = { finalized = true - l map { + (l map { var sum = 0 x => { sum += x._2; (x._1 -> (sum-x._2, sum)) } - } + }).toMap } def range(name: String) = rangeMap(name) def print = { - rangeMap map { case (name, (start, end)) => - println(s"${name} on port ${start}-${end-1}") + rangeMap.toSeq.sortBy(_._2).foreach { case (name, (start, end)) => + println(s"${name} on int ${start}-${end-1}") } } def sum = {