Chiselは、UC Berkeleyで開発されたオープンソースのhardware construction languageです。
descriptionではなく、constructionというところがポイントです。
descriptionではなく、constructionというところがポイントです。
以下のコードは、githubの説明にあるものです。
$ cat Hello.scala import Chisel._ class HelloModule extends Module { val io = new Bundle {} printf("Hello World!\n") } class HelloModuleTests(c: HelloModule) extends Tester(c) { step(1) } object hello { def main(args: Array[String]): Unit = { chiselMainTest(Array[String]("--backend", "c", "--compile", "--test", "--genHarness"), () => Module(new HelloModule())){c => new HelloModuleTests(c)} } }
Moduleを継承したHelloModuleを定義しています。
HelloModuleTestsは、Testerを継承して、HelloModuleをテストするためのコードです。
object helloの中にあるmainがプログラムの実行部分で、HelloModuleをCコードとして生成し、テストするようになっているようです。
HelloModuleTestsは、Testerを継承して、HelloModuleをテストするためのコードです。
object helloの中にあるmainがプログラムの実行部分で、HelloModuleをCコードとして生成し、テストするようになっているようです。