Skip to content

Commit

Permalink
fix deprecation for migration to newer chisel
Browse files Browse the repository at this point in the history
  • Loading branch information
sbeamer committed Mar 4, 2021
1 parent dcf194e commit ab422c7
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 38 deletions.
19 changes: 6 additions & 13 deletions src/main/scala/EssentBackend.scala
Original file line number Diff line number Diff line change
Expand Up @@ -13,22 +13,15 @@ import java.nio.file.{Files, Paths}
object EssentBackend {
val baseBuildAndTestDirName = "essent_run_dir"

def buildAndRun[T <: chisel3.Module](dutGen: () => T)(testerGen: T => PeekPokeTester[T]) = {
// emit firrtl
val circuit = chisel3.Driver.elaborate(dutGen)
// parse firrtl
val chirrtl = firrtl.Parser.parse(chisel3.Driver.emit(circuit))
val dut = (circuit.components find (_.name == circuit.name)).get.id.asInstanceOf[T]
// make output directory
val dir = new File(baseBuildAndTestDirName + "/" + dut.getClass.getName)
def buildAndRun[T <: chisel3.Module](dutName: String)(dutGen: () => T)(testerGen: T => PeekPokeTester[T]) = {
// set up buildDir
val dir = new File(baseBuildAndTestDirName + "/" + dutName)
dir.mkdirs()
val buildDir = dir.getAbsolutePath
val dutName = chirrtl.main
// emit .fir file for essent to read in
// get firrtl
val cs = new chisel3.stage.ChiselStage()
val dutFirrtl = firrtl.Parser.parse(cs.emitFirrtl(dutGen(), Array("--target-dir", buildDir)))
val firFile = new File(buildDir, s"$dutName.fir")
val firWriter = new FileWriter(firFile)
firWriter.write(chirrtl.serialize)
firWriter.close
// copy over needed headers
chisel3.iotesters.copyVerilatorHeaderFiles(buildDir)
val commWrapResource = essent.Driver.getClass.getResourceAsStream("/comm_wrapper.h")
Expand Down
50 changes: 25 additions & 25 deletions src/main/scala/Launcher.scala
Original file line number Diff line number Diff line change
Expand Up @@ -14,55 +14,55 @@ object Launcher {

def testDUT(dutName: String): Boolean = dutName match {
case "Accumulator" =>
EssentBackend.buildAndRun(() => new Accumulator())(c => new AccumulatorTests(c))
EssentBackend.buildAndRun(dutName)(() => new Accumulator())(c => new AccumulatorTests(c))
case "Adder" =>
EssentBackend.buildAndRun(() => new Adder(16))(c => new AdderTests(c))
EssentBackend.buildAndRun(dutName)(() => new Adder(16))(c => new AdderTests(c))
case "BigUInt" =>
EssentBackend.buildAndRun(() => new BigUInt(128))(c => new BigUIntTests(c))
EssentBackend.buildAndRun(dutName)(() => new BigUInt(128))(c => new BigUIntTests(c))
case "Counter" =>
EssentBackend.buildAndRun(() => new Counter())(c => new CounterTests(c))
EssentBackend.buildAndRun(dutName)(() => new Counter())(c => new CounterTests(c))
case "DynamicMemorySearch" =>
EssentBackend.buildAndRun(() => new DynamicMemorySearch(32, 8))(c => new DynamicMemorySearchTests(c))
EssentBackend.buildAndRun(dutName)(() => new DynamicMemorySearch(32, 8))(c => new DynamicMemorySearchTests(c))
case "Hello" =>
EssentBackend.buildAndRun(() => new Hello())(c => new HelloTests(c))
EssentBackend.buildAndRun(dutName)(() => new Hello())(c => new HelloTests(c))
case "LFSR16" =>
EssentBackend.buildAndRun(() => new LFSR16())(c => new LFSR16Tests(c))
EssentBackend.buildAndRun(dutName)(() => new LFSR16())(c => new LFSR16Tests(c))
case "Max2" =>
EssentBackend.buildAndRun(() => new Max2())(c => new Max2Tests(c))
EssentBackend.buildAndRun(dutName)(() => new Max2())(c => new Max2Tests(c))
case "MaxN" =>
EssentBackend.buildAndRun(() => new MaxN(2, 12))(c => new MaxNTests(c))
EssentBackend.buildAndRun(dutName)(() => new MaxN(2, 12))(c => new MaxNTests(c))
case "Memo" =>
EssentBackend.buildAndRun(() => new Memo())(c => new MemoTests(c))
EssentBackend.buildAndRun(dutName)(() => new Memo())(c => new MemoTests(c))
case "Mul" =>
EssentBackend.buildAndRun(() => new Mul())(c => new MulTests(c))
EssentBackend.buildAndRun(dutName)(() => new Mul())(c => new MulTests(c))
case "Mux2" =>
EssentBackend.buildAndRun(() => new Mux2())(c => new Mux2Tests(c))
EssentBackend.buildAndRun(dutName)(() => new Mux2())(c => new Mux2Tests(c))
case "Mux4" =>
EssentBackend.buildAndRun(() => new Mux4())(c => new Mux4Tests(c))
EssentBackend.buildAndRun(dutName)(() => new Mux4())(c => new Mux4Tests(c))
case "Mux8" =>
EssentBackend.buildAndRun(() => new Mux8())(c => new Mux8Tests(c))
EssentBackend.buildAndRun(dutName)(() => new Mux8())(c => new Mux8Tests(c))
// case "RealGCD" =>
// EssentBackend.buildAndRun(() => new RealGCD())(c => new RealGCDTests(c))
// EssentBackend.buildAndRun(dutName)(() => new RealGCD())(c => new RealGCDTests(c))
// case "RealGCD2" =>
// EssentBackend.buildAndRun(() => new RealGCD2())(c => new GCDPeekPokeTester(c))
// EssentBackend.buildAndRun(dutName)(() => new RealGCD2())(c => new GCDPeekPokeTester(c))
case "SingleEvenFilter" =>
EssentBackend.buildAndRun(() => new SingleEvenFilter(UInt(16.W)))(c => new SingleEvenFilterTests(c))
EssentBackend.buildAndRun(dutName)(() => new SingleEvenFilter(UInt(16.W)))(c => new SingleEvenFilterTests(c))
case "SIntLit" =>
EssentBackend.buildAndRun(() => new SIntLit(16))(c => new SIntLitTests(c))
EssentBackend.buildAndRun(dutName)(() => new SIntLit(16))(c => new SIntLitTests(c))
case "SoloReg" =>
EssentBackend.buildAndRun(() => new SoloReg())(c => new SoloRegTests(c))
EssentBackend.buildAndRun(dutName)(() => new SoloReg())(c => new SoloRegTests(c))
case "Stopper" =>
EssentBackend.buildAndRun(() => new Stopper())(c => new StopperTests(c))
EssentBackend.buildAndRun(dutName)(() => new Stopper())(c => new StopperTests(c))
case "VecShiftRegister" =>
EssentBackend.buildAndRun(() => new VecShiftRegister())(c => new VecShiftRegisterTests(c))
EssentBackend.buildAndRun(dutName)(() => new VecShiftRegister())(c => new VecShiftRegisterTests(c))
case "VecShiftRegisterParam" =>
EssentBackend.buildAndRun(() => new VecShiftRegisterParam(8,8))(c => new VecShiftRegisterParamTests(c))
EssentBackend.buildAndRun(dutName)(() => new VecShiftRegisterParam(8,8))(c => new VecShiftRegisterParamTests(c))
case "VecShiftRegisterSimple" =>
EssentBackend.buildAndRun(() => new VecShiftRegisterSimple())(c => new VecShiftRegisterSimpleTests(c))
EssentBackend.buildAndRun(dutName)(() => new VecShiftRegisterSimple())(c => new VecShiftRegisterSimpleTests(c))
case "VendingMachine" =>
EssentBackend.buildAndRun(() => new VendingMachine())(c => new VendingMachineTests(c))
EssentBackend.buildAndRun(dutName)(() => new VendingMachine())(c => new VendingMachineTests(c))
case "VendingMachineSwitch" =>
EssentBackend.buildAndRun(() => new VendingMachineSwitch())(c => new VendingMachineSwitchTests(c))
EssentBackend.buildAndRun(dutName)(() => new VendingMachineSwitch())(c => new VendingMachineSwitchTests(c))
case s: String => throw new Exception(s"Unknown testcase $s")
}

Expand Down

0 comments on commit ab422c7

Please sign in to comment.