diff options
| author | Jack Koenig | 2020-03-25 19:51:46 -0700 |
|---|---|---|
| committer | GitHub | 2020-03-25 19:51:46 -0700 |
| commit | dbb024a9adee6d82f37e357cf8b55456674ff65c (patch) | |
| tree | 578858ab6d219ca6daf44cf87b73f75054989097 /chiselFrontend/src/main/scala/chisel3/dontTouch.scala | |
| parent | 6263fcc56b630b7181eb30680cadcdbb2bdf91dc (diff) | |
| parent | fbf5e6f1a0e8bf535d465b748ad554575fe62156 (diff) | |
Merge pull request #1384 from freechipsproject/no-more-compile-internal
No more compile internal
Diffstat (limited to 'chiselFrontend/src/main/scala/chisel3/dontTouch.scala')
| -rw-r--r-- | chiselFrontend/src/main/scala/chisel3/dontTouch.scala | 37 |
1 files changed, 0 insertions, 37 deletions
diff --git a/chiselFrontend/src/main/scala/chisel3/dontTouch.scala b/chiselFrontend/src/main/scala/chisel3/dontTouch.scala deleted file mode 100644 index 5dfd9f19..00000000 --- a/chiselFrontend/src/main/scala/chisel3/dontTouch.scala +++ /dev/null @@ -1,37 +0,0 @@ -package chisel3 - -import chisel3.experimental.{ChiselAnnotation, annotate, requireIsHardware} -import firrtl.transforms.DontTouchAnnotation - -/** Marks that a signal should not be removed by Chisel and Firrtl optimization passes - * - * @example {{{ - * class MyModule extends Module { - * val io = IO(new Bundle { - * val a = Input(UInt(32.W)) - * val b = Output(UInt(32.W)) - * }) - * io.b := io.a - * val dead = io.a +% 1.U // normally dead would be pruned by DCE - * dontTouch(dead) // Marking it as such will preserve it - * } - * }}} - * @note Calling this on [[Data]] creates an annotation that Chisel emits to a separate annotations - * file. This file must be passed to FIRRTL independently of the `.fir` file. The execute methods - * in [[chisel3.Driver]] will pass the annotations to FIRRTL automatically. - */ -object dontTouch { // scalastyle:ignore object.name - /** Marks a signal to be preserved in Chisel and Firrtl - * - * @note Requires the argument to be bound to hardware - * @param data The signal to be marked - * @return Unmodified signal `data` - */ - def apply[T <: Data](data: T)(implicit compileOptions: CompileOptions): T = { - if (compileOptions.checkSynthesizable) { - requireIsHardware(data, "Data marked dontTouch") - } - annotate(new ChiselAnnotation { def toFirrtl = DontTouchAnnotation(data.toNamed) }) - data - } -} |
