diff options
| author | azidar | 2016-02-23 14:33:07 -0800 |
|---|---|---|
| committer | azidar | 2016-02-23 14:33:07 -0800 |
| commit | a7031e7b2d94d3f416346ff990d9ac51c4362e49 (patch) | |
| tree | 5a376aa97b75c0f30ac158286d7c10091ea645f0 /src | |
| parent | 7b34fb8e17b8447e6cdd644579e3a9e06843c5e7 (diff) | |
| parent | c48c691e94afe4919c20fa588a9897316c572447 (diff) | |
Merge branch 'master' of github.com:ucb-bar/firrtl
Diffstat (limited to 'src')
| -rw-r--r-- | src/main/resources/logback.xml | 2 | ||||
| -rw-r--r-- | src/main/scala/firrtl/Compiler.scala | 12 | ||||
| -rw-r--r-- | src/main/scala/firrtl/Driver.scala | 1 | ||||
| -rw-r--r-- | src/main/scala/firrtl/Utils.scala | 2 | ||||
| l--------- | src/test/resources/regress | 1 | ||||
| -rw-r--r-- | src/test/scala/firrtlTests/Regress.scala | 23 |
6 files changed, 36 insertions, 5 deletions
diff --git a/src/main/resources/logback.xml b/src/main/resources/logback.xml index 78360578..d2f8beae 100644 --- a/src/main/resources/logback.xml +++ b/src/main/resources/logback.xml @@ -30,7 +30,7 @@ MODIFICATIONS. <pattern>[%-4level] %msg%n</pattern> </encoder> </appender> - <root level="debug"> + <root level="warn"> <appender-ref ref="STDOUT" /> </root> </configuration> diff --git a/src/main/scala/firrtl/Compiler.scala b/src/main/scala/firrtl/Compiler.scala index 0bb7510f..782d43cb 100644 --- a/src/main/scala/firrtl/Compiler.scala +++ b/src/main/scala/firrtl/Compiler.scala @@ -38,9 +38,16 @@ trait Compiler extends LazyLogging { } object FIRRTLCompiler extends Compiler { + val passes = Seq( + CInferTypes, + CInferMDir, + RemoveCHIRRTL, + ToWorkingIR, + CheckHighForm + ) def run(c: Circuit, w: Writer) = { - FIRRTLEmitter.run(c, w) - w.close + val highForm = PassUtils.executePasses(c, passes) + FIRRTLEmitter.run(highForm, w) } } @@ -84,7 +91,6 @@ object VerilogCompiler extends Compiler { { val loweredIR = PassUtils.executePasses(c, passes) VerilogEmitter.run(loweredIR, w) - w.close } } diff --git a/src/main/scala/firrtl/Driver.scala b/src/main/scala/firrtl/Driver.scala index c2dc0b59..1e0d9cf1 100644 --- a/src/main/scala/firrtl/Driver.scala +++ b/src/main/scala/firrtl/Driver.scala @@ -48,6 +48,7 @@ object Driver extends LazyLogging { val parsedInput = Parser.parse(input, Source.fromFile(input).getLines) val writerOutput = new PrintWriter(new File(output)) compiler.run(parsedInput, writerOutput) + writerOutput.close } def main(args: Array[String]) diff --git a/src/main/scala/firrtl/Utils.scala b/src/main/scala/firrtl/Utils.scala index 251ae7b2..5fad46bc 100644 --- a/src/main/scala/firrtl/Utils.scala +++ b/src/main/scala/firrtl/Utils.scala @@ -558,7 +558,7 @@ object Utils { case s:DefNode => tpe(s.value) case s:DefMemory => { val depth = s.depth - val addr = Field("addr",DEFAULT,UIntType(IntWidth(ceil_log2(depth)))) + val addr = Field("addr",DEFAULT,UIntType(IntWidth(scala.math.max(ceil_log2(depth), 1)))) val en = Field("en",DEFAULT,BoolType()) val clk = Field("clk",DEFAULT,ClockType()) val def_data = Field("data",DEFAULT,s.data_type) diff --git a/src/test/resources/regress b/src/test/resources/regress new file mode 120000 index 00000000..3691434b --- /dev/null +++ b/src/test/resources/regress @@ -0,0 +1 @@ +../../../regress
\ No newline at end of file diff --git a/src/test/scala/firrtlTests/Regress.scala b/src/test/scala/firrtlTests/Regress.scala new file mode 100644 index 00000000..49c95590 --- /dev/null +++ b/src/test/scala/firrtlTests/Regress.scala @@ -0,0 +1,23 @@ + +package firrtlTests + +import org.scalatest._ + +import firrtl._ +import java.io._ +import scala.io.Source + +class RocketRegressionSpec extends FlatSpec with Matchers { + + // This test is temporary until we move to simulation-based testing + "CHIRRTL Rocket" should "match expected Verilog" in { + val firrtlSource = Source.fromURL(getClass.getResource("/regress/rocket.fir")) + val highCircuit = firrtl.Parser.parse("rocket.fir", firrtlSource.getLines) + val verilogSW = new StringWriter() + VerilogCompiler.run(highCircuit, verilogSW) + + val goldenVerilog = Source.fromURL(getClass.getResource("/regress/rocket-golden.v")) + + verilogSW.toString shouldEqual goldenVerilog.mkString + } +} |
