uclid-org / chiselucl

ChiselUCL: Utilities for generating UCLID5 models from Chisel and FIRRTL descriptions
Other
6 stars 1 forks source link

Unable to run translator #3

Open noloerino opened 3 years ago

noloerino commented 3 years ago

I'm attempting to use the command provided in the README (sbt "runMain chiselucl.FirrtlToUclid $PATH_TO_FIRRTL_FILE") to convert a FIRRTL file to a uclid model, and encountering an error. The input I'm passing is GCD.fir from Treadle's examples, and I've tried a few other simple circuits as well and received the same result.

This is the invocation and error message:

% sbt "runMain chiselucl.FirrtlToUclid GCD.fir"
[info] Loading global plugins from /Users/jhshi/.sbt/1.0/plugins
[info] Loading project definition from /Users/jhshi/code/eecs219c/chiselucl/project
[info] Loading settings for project chiselucl from build.sbt ...
[info] Set current project to chiselucl (in build file:/Users/jhshi/code/eecs219c/chiselucl/)
[warn] Multiple main classes detected.  Run 'show discoveredMainClasses' to see the list
[info] running chiselucl.FirrtlToUclid GCD.fir
Generating UCLID5 models.
Computed transform order in: 165.8 ms
Total FIRRTL Compile Time: 470.5 ms
Computed transform order in: 176.2 ms
[error] (run-main-0) firrtl.FirrtlInternalException: Internal Error! Please file an issue at https://github.com/ucb-bar/firrtl/issues
[error] firrtl.FirrtlInternalException: Internal Error! Please file an issue at https://github.com/ucb-bar/firrtl/issues
[error]     at firrtl.Utils$.error(Utils.scala:453)
[error]     at firrtl.Utils$.throwInternalError(Utils.scala:166)
[error]     at firrtl.stage.phases.CatchExceptions.transform(CatchExceptions.scala:33)
[error]     at firrtl.stage.phases.CatchExceptions.transform(CatchExceptions.scala:13)
[error]     at firrtl.options.phases.DeletedWrapper.internalTransform(DeletedWrapper.scala:37)
[error]     at firrtl.options.phases.DeletedWrapper.internalTransform(DeletedWrapper.scala:15)
[error]     at firrtl.options.Translator.transform(Phase.scala:240)
[error]     at firrtl.options.Translator.transform$(Phase.scala:240)
[error]     at firrtl.options.phases.DeletedWrapper.transform(DeletedWrapper.scala:15)
[error]     at firrtl.options.DependencyManager.$anonfun$transform$3(DependencyManager.scala:267)
[error]     at scala.collection.LinearSeqOptimized.foldLeft(LinearSeqOptimized.scala:126)
[error]     at scala.collection.LinearSeqOptimized.foldLeft$(LinearSeqOptimized.scala:122)
[error]     at scala.collection.immutable.List.foldLeft(List.scala:91)
[error]     at firrtl.options.DependencyManager.transform(DependencyManager.scala:260)
[error]     at firrtl.options.DependencyManager.transform$(DependencyManager.scala:245)
[error]     at firrtl.options.PhaseManager.transform(DependencyManager.scala:424)
[error]     at firrtl.stage.FirrtlStage.run(FirrtlStage.scala:32)
[error]     at chiselucl.FirrtlCompiler$.generateModel(FirrtlCompiler.scala:26)
[error]     at chiselucl.FirrtlToUclid$.$anonfun$new$1(FirrtlToUclid.scala:25)
[error]     at chiselucl.FirrtlToUclid$.$anonfun$new$1$adapted(FirrtlToUclid.scala:23)
[error]     at scala.collection.TraversableLike.$anonfun$map$1(TraversableLike.scala:285)
[error]     at scala.collection.IndexedSeqOptimized.foreach(IndexedSeqOptimized.scala:36)
[error]     at scala.collection.IndexedSeqOptimized.foreach$(IndexedSeqOptimized.scala:33)
[error]     at scala.collection.mutable.ArrayOps$ofRef.foreach(ArrayOps.scala:198)
[error]     at scala.collection.TraversableLike.map(TraversableLike.scala:285)
[error]     at scala.collection.TraversableLike.map$(TraversableLike.scala:278)
[error]     at scala.collection.mutable.ArrayOps$ofRef.map(ArrayOps.scala:198)
[error]     at chiselucl.FirrtlToUclid$.delayedEndpoint$chiselucl$FirrtlToUclid$1(FirrtlToUclid.scala:23)
[error]     at chiselucl.FirrtlToUclid$delayedInit$body.apply(FirrtlToUclid.scala:16)
[error]     at scala.Function0.apply$mcV$sp(Function0.scala:39)
[error]     at scala.Function0.apply$mcV$sp$(Function0.scala:39)
[error]     at scala.runtime.AbstractFunction0.apply$mcV$sp(AbstractFunction0.scala:17)
[error]     at scala.App.$anonfun$main$1$adapted(App.scala:80)
[error]     at scala.collection.immutable.List.foreach(List.scala:431)
[error]     at scala.App.main(App.scala:80)
[error]     at scala.App.main$(App.scala:78)
[error]     at chiselucl.FirrtlToUclid$.main(FirrtlToUclid.scala:16)
[error]     at chiselucl.FirrtlToUclid.main(FirrtlToUclid.scala)
[error]     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[error]     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[error]     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[error]     at java.lang.reflect.Method.invoke(Method.java:498)
[error] Caused by: scala.MatchError: WRef(clock,ClockType,PortKind,SourceFlow) (of class firrtl.WRef)
[error]     at firrtl.passes.CInferTypes$.infer_types_e$2(InferTypes.scala:107)
[error]     at firrtl.passes.CInferTypes$.$anonfun$run$25(InferTypes.scala:121)
[error]     at firrtl.ir.DefRegister.mapExpr(IR.scala:291)
[error]     at firrtl.Mappers$StmtMagnet$$anon$4.map(Mappers.scala:35)
[error]     at firrtl.Mappers$StmtMap$.map$extension(Mappers.scala:49)
[error]     at firrtl.passes.CInferTypes$.infer_types_s$2(InferTypes.scala:121)
[error]     at firrtl.passes.CInferTypes$.$anonfun$run$30(InferTypes.scala:142)
[error]     at firrtl.ir.Block.mapStmt(IR.scala:410)
[error]     at firrtl.Mappers$StmtMagnet$$anon$3.map(Mappers.scala:32)
[error]     at firrtl.Mappers$StmtMap$.map$extension(Mappers.scala:49)
[error]     at firrtl.passes.CInferTypes$.infer_types_s$2(InferTypes.scala:142)
[error]     at firrtl.passes.CInferTypes$.$anonfun$run$36(InferTypes.scala:152)
[error]     at firrtl.ir.Module.mapStmt(IR.scala:891)
[error]     at firrtl.Mappers$ModuleMagnet$$anon$14.map(Mappers.scala:109)
[error]     at firrtl.Mappers$ModuleMap$.map$extension(Mappers.scala:122)
[error]     at firrtl.passes.CInferTypes$.infer_types$2(InferTypes.scala:152)
[error]     at firrtl.passes.CInferTypes$.$anonfun$run$38(InferTypes.scala:155)
[error]     at scala.collection.TraversableLike.$anonfun$map$1(TraversableLike.scala:285)
[error]     at scala.collection.mutable.ResizableArray.foreach(ResizableArray.scala:62)
[error]     at scala.collection.mutable.ResizableArray.foreach$(ResizableArray.scala:55)
[error]     at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:49)
[error]     at scala.collection.TraversableLike.map(TraversableLike.scala:285)
[error]     at scala.collection.TraversableLike.map$(TraversableLike.scala:278)
[error]     at scala.collection.AbstractTraversable.map(Traversable.scala:108)
[error]     at firrtl.passes.CInferTypes$.run(InferTypes.scala:155)
[error]     at firrtl.passes.Pass.execute(Pass.scala:12)
[error]     at firrtl.passes.Pass.execute$(Pass.scala:12)
[error]     at firrtl.passes.CInferTypes$.execute(InferTypes.scala:94)
[error]     at firrtl.Transform.transform(Compiler.scala:305)
[error]     at firrtl.Transform.transform$(Compiler.scala:305)
[error]     at firrtl.passes.CInferTypes$.transform(InferTypes.scala:94)
[error]     at firrtl.stage.transforms.ExpandPrepares.execute(ExpandPrepares.scala:17)
[error]     at firrtl.Transform.transform(Compiler.scala:305)
[error]     at firrtl.Transform.transform$(Compiler.scala:305)
[error]     at firrtl.stage.transforms.ExpandPrepares.transform(ExpandPrepares.scala:7)
[error]     at firrtl.stage.transforms.CatchCustomTransformExceptions.execute(CatchCustomTransformExceptions.scala:10)
[error]     at firrtl.Transform.transform(Compiler.scala:305)
[error]     at firrtl.Transform.transform$(Compiler.scala:305)
[error]     at firrtl.stage.transforms.CatchCustomTransformExceptions.transform(CatchCustomTransformExceptions.scala:7)
[error]     at firrtl.stage.transforms.UpdateAnnotations.$anonfun$internalTransform$1(UpdateAnnotations.scala:20)
[error]     at firrtl.Utils$.time(Utils.scala:171)
[error]     at firrtl.Transform$.runTransform(Compiler.scala:203)
[error]     at firrtl.stage.transforms.UpdateAnnotations.internalTransform(UpdateAnnotations.scala:20)
[error]     at firrtl.stage.transforms.UpdateAnnotations.internalTransform(UpdateAnnotations.scala:8)
[error]     at firrtl.options.Translator.transform(Phase.scala:240)
[error]     at firrtl.options.Translator.transform$(Phase.scala:240)
[error]     at firrtl.stage.transforms.UpdateAnnotations.transform(UpdateAnnotations.scala:8)
[error]     at firrtl.options.DependencyManager.$anonfun$transform$3(DependencyManager.scala:267)
[error]     at scala.collection.LinearSeqOptimized.foldLeft(LinearSeqOptimized.scala:126)
[error]     at scala.collection.LinearSeqOptimized.foldLeft$(LinearSeqOptimized.scala:122)
[error]     at scala.collection.immutable.List.foldLeft(List.scala:91)
[error]     at firrtl.options.DependencyManager.transform(DependencyManager.scala:260)
[error]     at firrtl.options.DependencyManager.transform$(DependencyManager.scala:245)
[error]     at firrtl.stage.TransformManager.transform(TransformManager.scala:14)
[error]     at firrtl.stage.phases.Compiler.$anonfun$internalTransform$5(Compiler.scala:107)
[error]     at firrtl.Utils$.time(Utils.scala:171)
[error]     at firrtl.stage.phases.Compiler.f$1(Compiler.scala:107)
[error]     at firrtl.stage.phases.Compiler.$anonfun$internalTransform$7(Compiler.scala:112)
[error]     at scala.collection.TraversableLike.$anonfun$map$1(TraversableLike.scala:285)
[error]     at scala.collection.mutable.ResizableArray.foreach(ResizableArray.scala:62)
[error]     at scala.collection.mutable.ResizableArray.foreach$(ResizableArray.scala:55)
[error]     at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:49)
[error]     at scala.collection.TraversableLike.map(TraversableLike.scala:285)
[error]     at scala.collection.TraversableLike.map$(TraversableLike.scala:278)
[error]     at scala.collection.AbstractTraversable.map(Traversable.scala:108)
[error]     at firrtl.stage.phases.Compiler.internalTransform(Compiler.scala:112)
[error]     at firrtl.stage.phases.Compiler.internalTransform(Compiler.scala:45)
[error]     at firrtl.options.Translator.transform(Phase.scala:240)
[error]     at firrtl.options.Translator.transform$(Phase.scala:240)
[error]     at firrtl.stage.phases.Compiler.transform(Compiler.scala:45)
[error]     at firrtl.stage.phases.CatchExceptions.transform(CatchExceptions.scala:26)
[error]     at firrtl.stage.phases.CatchExceptions.transform(CatchExceptions.scala:13)
[error]     at firrtl.options.phases.DeletedWrapper.internalTransform(DeletedWrapper.scala:37)
[error]     at firrtl.options.phases.DeletedWrapper.internalTransform(DeletedWrapper.scala:15)
[error]     at firrtl.options.Translator.transform(Phase.scala:240)
[error]     at firrtl.options.Translator.transform$(Phase.scala:240)
[error]     at firrtl.options.phases.DeletedWrapper.transform(DeletedWrapper.scala:15)
[error]     at firrtl.options.DependencyManager.$anonfun$transform$3(DependencyManager.scala:267)
[error]     at scala.collection.LinearSeqOptimized.foldLeft(LinearSeqOptimized.scala:126)
[error]     at scala.collection.LinearSeqOptimized.foldLeft$(LinearSeqOptimized.scala:122)
[error]     at scala.collection.immutable.List.foldLeft(List.scala:91)
[error]     at firrtl.options.DependencyManager.transform(DependencyManager.scala:260)
[error]     at firrtl.options.DependencyManager.transform$(DependencyManager.scala:245)
[error]     at firrtl.options.PhaseManager.transform(DependencyManager.scala:424)
[error]     at firrtl.stage.FirrtlStage.run(FirrtlStage.scala:32)
[error]     at chiselucl.FirrtlCompiler$.generateModel(FirrtlCompiler.scala:26)
[error]     at chiselucl.FirrtlToUclid$.$anonfun$new$1(FirrtlToUclid.scala:25)
[error]     at chiselucl.FirrtlToUclid$.$anonfun$new$1$adapted(FirrtlToUclid.scala:23)
[error]     at scala.collection.TraversableLike.$anonfun$map$1(TraversableLike.scala:285)
[error]     at scala.collection.IndexedSeqOptimized.foreach(IndexedSeqOptimized.scala:36)
[error]     at scala.collection.IndexedSeqOptimized.foreach$(IndexedSeqOptimized.scala:33)
[error]     at scala.collection.mutable.ArrayOps$ofRef.foreach(ArrayOps.scala:198)
[error]     at scala.collection.TraversableLike.map(TraversableLike.scala:285)
[error]     at scala.collection.TraversableLike.map$(TraversableLike.scala:278)
[error]     at scala.collection.mutable.ArrayOps$ofRef.map(ArrayOps.scala:198)
[error]     at chiselucl.FirrtlToUclid$.delayedEndpoint$chiselucl$FirrtlToUclid$1(FirrtlToUclid.scala:23)
[error]     at chiselucl.FirrtlToUclid$delayedInit$body.apply(FirrtlToUclid.scala:16)
[error]     at scala.Function0.apply$mcV$sp(Function0.scala:39)
[error]     at scala.Function0.apply$mcV$sp$(Function0.scala:39)
[error]     at scala.runtime.AbstractFunction0.apply$mcV$sp(AbstractFunction0.scala:17)
[error]     at scala.App.$anonfun$main$1$adapted(App.scala:80)
[error]     at scala.collection.immutable.List.foreach(List.scala:431)
[error]     at scala.App.main(App.scala:80)
[error]     at scala.App.main$(App.scala:78)
[error]     at chiselucl.FirrtlToUclid$.main(FirrtlToUclid.scala:16)
[error]     at chiselucl.FirrtlToUclid.main(FirrtlToUclid.scala)
[error]     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[error]     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[error]     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[error]     at java.lang.reflect.Method.invoke(Method.java:498)
[error] stack trace is suppressed; run last Compile / bgRunMain for the full output
[error] Nonzero exit code: 1
[error] (Compile / runMain) Nonzero exit code: 1
[error] Total time: 3 s, completed Mar 12, 2021 6:15:37 PM
noloerino commented 3 years ago

It seems that bumping the FIRRTL/Chisel versions (FIRRTL version was probably the culprit) to 1.4.2 and 3.4.2 did the trick. I'm leaving this issue open for now just to bring it to your attention.

d0cd commented 3 years ago

@noloerino Thanks for pointing that out! If you have a fix already, feel free to make a PR and I'll merge it in.