util: add DontTouch trait with dontTouchPorts method
This commit is contained in:
@ -4,6 +4,7 @@
|
||||
package freechips.rocketchip.util
|
||||
|
||||
import Chisel._
|
||||
import chisel3.experimental.{dontTouch, RawModule}
|
||||
import freechips.rocketchip.config.Parameters
|
||||
import scala.math._
|
||||
|
||||
@ -21,6 +22,21 @@ class ParameterizedBundle(implicit p: Parameters) extends Bundle {
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: replace this with an implicit class when @chisel unprotects dontTouchPorts
|
||||
trait DontTouch {
|
||||
self: RawModule =>
|
||||
|
||||
/** Marks every port as don't touch
|
||||
*
|
||||
* @note This method can only be called after the Module has been fully constructed
|
||||
* (after Module(...))
|
||||
*/
|
||||
def dontTouchPorts(): this.type = {
|
||||
self.getModulePorts.foreach(dontTouch(_))
|
||||
self
|
||||
}
|
||||
}
|
||||
|
||||
trait Clocked extends Bundle {
|
||||
val clock = Clock()
|
||||
val reset = Bool()
|
||||
|
Reference in New Issue
Block a user