summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSchuyler Eldridge2020-06-12 22:15:46 -0400
committerSchuyler Eldridge2020-06-22 20:00:10 -0400
commit36fae73b6c65d56b5b462c4c0eb8de2160223429 (patch)
tree0266695e76afb7b097001ee9836cba43eb68d85a /src
parentd7c4af2724b54480e2c587c10619f4f2be404ce2 (diff)
Remove Driver usage from Chisel._ package
Signed-off-by: Schuyler Eldridge <schuyler.eldridge@ibm.com>
Diffstat (limited to 'src')
-rw-r--r--src/main/scala/chisel3/compatibility.scala22
1 files changed, 17 insertions, 5 deletions
diff --git a/src/main/scala/chisel3/compatibility.scala b/src/main/scala/chisel3/compatibility.scala
index 0c4c18a9..476241b0 100644
--- a/src/main/scala/chisel3/compatibility.scala
+++ b/src/main/scala/chisel3/compatibility.scala
@@ -6,6 +6,7 @@
import chisel3._ // required for implicit conversions.
import chisel3.experimental.chiselName
import chisel3.util.random.FibonacciLFSR
+import chisel3.stage.{ChiselCircuitAnnotation, ChiselOutputFileAnnotation, ChiselStage, phases}
package object Chisel { // scalastyle:ignore package.object.name number.of.types number.of.methods
import chisel3.internal.firrtl.Width
@@ -395,21 +396,32 @@ package object Chisel { // scalastyle:ignore package.object.name number.of.t
implicit class fromIntToWidth(x: Int) extends chisel3.fromIntToWidth(x)
type BackendCompilationUtilities = firrtl.util.BackendCompilationUtilities
- val Driver = chisel3.Driver
val ImplicitConversions = chisel3.util.ImplicitConversions
// Deprecated as of Chisel3
object chiselMain {
import java.io.File
+ private var target_dir: Option[String] = None
+
+ private def parseArgs(args: Array[String]): Unit = {
+ for (i <- 0 until args.size) {
+ if (args(i) == "--targetDir") {
+ target_dir = Some(args(i + 1))
+ }
+ }
+ }
+
def apply[T <: Module](args: Array[String], gen: () => T): Unit =
Predef.assert(false, "No more chiselMain in Chisel3")
def run[T <: Module] (args: Array[String], gen: () => T): Unit = {
- val circuit = Driver.elaborate(gen)
- Driver.parseArgs(args)
- val output_file = new File(Driver.targetDir + "/" + circuit.name + ".fir")
- Driver.dumpFirrtl(circuit, Option(output_file))
+ val circuit = ChiselStage.elaborate(gen())
+ parseArgs(args)
+ val output_file = new File(target_dir.getOrElse(new File(".").getCanonicalPath) + "/" + circuit.name + ".fir")
+
+ (new phases.Emitter).transform(Seq(ChiselCircuitAnnotation(circuit),
+ ChiselOutputFileAnnotation(output_file.toString)))
}
}