util: restore dontTouch annotation; Chisel's is broken on 0 element Aggregates
This commit is contained in:
parent
d6e2c1a73f
commit
1b93b27da4
@ -4,7 +4,7 @@
|
|||||||
package freechips.rocketchip.util
|
package freechips.rocketchip.util
|
||||||
|
|
||||||
import Chisel._
|
import Chisel._
|
||||||
import chisel3.experimental.{dontTouch, RawModule}
|
import chisel3.experimental.{ChiselAnnotation, RawModule}
|
||||||
import freechips.rocketchip.config.Parameters
|
import freechips.rocketchip.config.Parameters
|
||||||
import scala.math._
|
import scala.math._
|
||||||
|
|
||||||
@ -14,6 +14,13 @@ class ParameterizedBundle(implicit p: Parameters) extends Bundle
|
|||||||
trait DontTouch {
|
trait DontTouch {
|
||||||
self: RawModule =>
|
self: RawModule =>
|
||||||
|
|
||||||
|
def dontTouch(data: Data): Unit = data match {
|
||||||
|
case agg: Aggregate =>
|
||||||
|
agg.getElements.foreach(dontTouch)
|
||||||
|
case elt: Element =>
|
||||||
|
annotate(ChiselAnnotation(elt, classOf[firrtl.Transform], "DONTtouch!"))
|
||||||
|
}
|
||||||
|
|
||||||
/** Marks every port as don't touch
|
/** Marks every port as don't touch
|
||||||
*
|
*
|
||||||
* @note This method can only be called after the Module has been fully constructed
|
* @note This method can only be called after the Module has been fully constructed
|
||||||
|
Loading…
Reference in New Issue
Block a user